Skip to content

config: one effective configuration in both processes, one digest on every event - #469

Merged
r3dbars merged 1 commit into
mainfrom
claude/tilde-autocomplete-strategy-c88fd9
Sep 2, 2026
Merged

r3dbars merged 1 commit into
mainfrom
claude/tilde-autocomplete-strategy-c88fd9

Conversation

@r3dbars

@r3dbars r3dbars commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Step 3 of the ruler work: the settings split-brain.

  • Four objects instead of one enum. TildeProductProfile keeps only build identity. GeneratorProfile, DecisionPolicy, InteractionPolicy hold behaviour, with .conservative and .tuned9B presets; TildeEffectiveConfiguration assembles them and exposes digestSHA256 (canonical JSON).
  • No behaviour change. The enum's old properties delegate to the presets, so ProfileSceneOptionsTests, TildeProductProfileTests, the display-filter and H01 pins pass unchanged. Production with Qwen stays: tuned generation and decision, conservative interaction, now stated explicitly.
  • One configuration in both processes. The app stamps configurationDigest and interaction on every response line (partials included); the keyboard adopts the served interaction policy (ServedConfiguration) instead of reading its own bundle. The app's wire check for punctuation boundaries reads the served policy too.
  • Digest on every event. TextFreeOnlineEvent.configurationDigestSHA256, through the Lab allowlist, event, and bridge, so a report can slice by exact behaviour. Three built-in digests: production+Gemma, production+Qwen, 9B preview.

Docs: sixth rule in docs/tilde-lab.md, next-on-device.md, lab log.

Test plan

  • TildeConfigurationTests: production pinned, tuned stack pinned, three distinct deterministic digests, keyboard adoption, stamp composition
  • Bridge and contract tests extended for the digest
  • ./script/proof.sh fast green
  • Install on the daily driver; confirm events carry the digest

🤖 Generated with Claude Code

…action policies with one digest

TildeProductProfile now names only the build; behaviour lives in
GeneratorProfile, DecisionPolicy, and InteractionPolicy, assembled by
the app into TildeEffectiveConfiguration with a canonical-JSON SHA-256.
The app stamps the digest and the interaction policy on every response
line; the keyboard adopts the served interaction policy instead of its
bundle's; every outcome event carries the digest into the Lab. The enum's
behaviour properties delegate to the presets, so production is unchanged
by construction and every existing pin passes untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@r3dbars
r3dbars merged commit eb4116d into main Sep 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant