Repository navigation
Conversation
- Delete adapter-replacement.ts and its test. Nothing imported it, and deleting another plugin's registry entry is not a host API; the engineering notes record why, and what the plugin does instead. A gate fails the build if src/ writes the llm registry map directly. - Delete the stream hook's `prepared` handling: the host passes the prepared dispatch as its own argument and never reads options.prepared. - Untrack .freebuff/ and ignore it. - The settings partition test walks Config.dict, which is how debugFile went missing from it; a manifest test checks cordis.patch.yml against the schema and the field registry, and the manifest's phantom showUsagePrice, wrong marker text and incomplete lists are fixed. - utils/retry.ts takes its timer and logger as parameters, and the utils purity gate now also rejects console and global timers, walking the folder recursively. - tool-fallback reads free-tier ids from the request's own plane (Go iff opencode-go or opencode-go-*) and loses its unreachable Anthropic branch. A Zen-only free model is no longer treated as free on Go. - test/support/src.ts is the one door tests use into src/, so later module moves touch one file; CONTRIBUTING.md states the rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
This was referenced Oct 23, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase P1b of
docs/improvement-plan.md. It is stacked on #106 (P1a), which is stacked on #105.Hygiene only. It removes dead code and adds gates; besides one free-tier fix (see Behaviour change), no user-facing behaviour changes.
adapter-replacement.tsand its test are deleted. Nothing imported them.docs/engineering-notes.mdgains a section on two points. First, deleting another plugin's registry entry is not a host API:registerAdapteris all-or-nothing, and only the owner'shandle.replacemoves routes. Second, the plugin keeps pi-ai from claiming the planes through the config waterfall instead (D13).architecture.test.tsfails the build if anything insrc/'s import graph writes the llm registry map (adapters.set/delete/clear, including optional chaining).preparedhandling is gone. In the host'sllm/src/index.ts,stream(options)passes the prepared dispatch as a separate argument, which onlyprepareCall's one-shot stream supplies.options.preparedis never read..freebuff/is untracked and ignored. It held a per-machine agent workspace id.Config.dict. It usedConfig({}), which drops keys with no default, and that is howdebugFilewent missing from it.debugFileis now registered as config-only. A new manifest test checkscordis.patch.ymlagainst the schema and the field registry. That surfaced the phantomshowUsagePrice, the wrongfreeModelMarker: ''text and the incomplete field lists, all now fixed.utils/retry.tstakes its timer and logger as parameters. The utils purity gate now also rejectsconsoleand global timers: called or passed as values, bare or throughglobalThis./window./global./self.. It walksutils/recursively.tool-fallbackreads free-tier ids from the request's own plane. Go meansopencode-goor anopencode-go-*route. Its unreachable Anthropic branch is gone.big-pickle.test/support/src.tsis the one door tests use intosrc/, so later module moves touch one file. This phase converts the files it touches, P2 converts the rest, andCONTRIBUTING.mdstates the rule.Behaviour change
Free-tier detection is now plane-correct. A model the catalog marks free only on Zen, such as
big-pickle, no longer gets the core-tool schema fallback on the Go plane. On Zen, and for a request with no route, nothing changes.Review
The change went through three review lenses (correctness and host contracts, tests, repository rules). Two independent skeptics checked each finding. Over three rounds:
Verification
All run locally:
pnpm run checktest:mockscripts/check.tstest:mockThe diff contains no local paths.
Generated by Claude Code