knowledge: 3 insights — greedy-regex adjacent tokens in extractor fixtures (1 new page), subagent model-scoped 429 → per-invocation model override (+1 merge, 2 same-batch duplicates folded, Sonnet-limit drift fixed) - #191
Open
choiyounggi wants to merge 1 commit into
Open
choiyounggi wants to merge 1 commit into
choiyounggi wants to merge 1 commit into
Conversation
…regex adjacent fixture tokens; subagent model-scoped 429 → per-invocation model override
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.
Knowledge flush — 3 insight(s)
3 claimed candidates → 2 distinct insights: 1 new page, 1 merge into an existing page (2 duplicate candidates folded into it), 0 drops.
8c0693fbeb1dca30testing-data-adjacent-tokens-in-extractor-fixturesfe22774ea41d523fmodeloverrideinfrastructure-agent-orchestration-usage-limit-paused-workers2f27db59be18d9c2fe22774ea41d523f, from a second sessionVerified best-practice
1. Adjacent tokens in fixture text for a greedy pattern extractor (
8c0693fbeb1dca30) —confidence: verified\d[\d\s.\-()]{6,18}\d) greedily merges two occurrences separated only by class-member characters into one span capped at the repeat's maximum, whose digits match neither original. So the test should assert the extractor's own spans first, and per-occurrence fixtures should use a separator outside the class.re.finditerreturns non-overlapping matches, scanned left-to-right.?matches as few times as possible.rethis session."- 1900068889\n- 1900068889"→ one match'1900068889\n- 1900068'(20 chars = 1 + 18 + 1)."090 123 4567 028 3822 1234"→ one merged match.+merges both numbers (20 digits).{6,18}?truncates090 123 4567to090 123 4, and pipe-separated1900068889to19000688.2. Subagent failing on a model-scoped limit → per-invocation model override (
fe22774ea41d523f+2f27db59be18d9c2) — mechanismverified; the Fable-specific 429 text isfield-testedrate_limit/HTTP 429 naming one model (claude-fable-5-1), re-issue the identical call withmodel: "sonnet". The subagent definition's model is independent of the session's model, and the limit is scoped to that model..mdfetched). Resolution order: "1. The per-invocationmodelparameter 2. The subagent definition'smodelfrontmatter 3.CLAUDE_CODE_SUBAGENT_MODEL4. The main conversation's model". Before v2.1.251 the env var ranked first..mdfetched): "The session and weekly limits are shared across all models … The Opus and Sonnet limits each apply only to requests to that model family, so switching to a model outside the family with/modelkeeps you working". Also theFable limit reached · continuing on Fable 5.1 uses usage credits … nothing was sentmessage for unattended sessions.agents/test-quality-auditor.mdandagents/integration-reviewer.mdboth declaremodel: fable. That explains why only the subagent failed while the session kept working.You've reached your Fable limit … model sent to the API429 text. That wording is cited only as a field observation (2 independent sessions on 2026-09-14, both of which succeeded after the override).verifiedbecause its directive rests on the documented resolution order and model-family scoping.Existing-layer check
Pages read: infrastructure-agent-orchestration-usage-limit-paused-workers, testing-quality-tests-that-cannot-fail, testing-data-test-data-and-isolation
Also read:
INDEX.md,wiki/testing/index.md(every quality/data/strategy load-when line), and theagent-orchestrationrows ofwiki/infrastructure/index.md. I also greppedwiki/forgreedy|regex|finditer|adjacent,rate.?limit|429, andmodel override|subagent.*model|fable.source-text-wiring-assertions,completion-predicates,checks-that-cannot-pass.testing-data-test-data-and-isolation(fixture construction) andtesting-quality-tests-that-cannot-fail(a test green for the wrong reason).usage-limit-paused-workersowns model-scoped limits and the/modelswitch → merged. Changes:CLAUDE_CODE_SUBAGENT_MODELon CLI < v2.1.251; auditor model substitution +availableModels.You've hit your Sonnet limit, scoped to the Sonnet family. I updated the marker row, the "only one worker stopped" edge row, and the Instead-of "Why" cell, and bumpedlast_verifiedto 2026-09-14.Lint results on this branch:
node scripts/wiki-structure-checks.js wiki→pages: 277, indexes: 13, findings: 0.wiki-lint-prohibitions.js→ 2 violations. Both predate this PR and sit outsidewiki/(plans/harvest-dedupe-processed/...,tests/fixtures/prohibitions/bad.md). Neither changed page is flagged.wiki-lint-model-era.js:usage-limit-paused-workersis reported asmodel-coupled, no verified_model. It was already flagged that way onmain, since the page mentions Claude/Opus and no wiki page carriesverified_model.verified_model: claude-opus-5(the model this flush ran on). The lint rejected it as "not in current set" because the script'sDEFAULT_CURRENTis still['opus-4', 'fable-5'].DEFAULT_CURRENTis a separate owner decision.Open-PR check
Listed open
knowledge/*heads withgh pr list --repo choiyounggi/dev-loop --state open --search "head:knowledge/": #190, #189, #188, #187, #186, #185, #183, #182, #181, #180, #179. For each, I diffed its own changes withgit diff origin/main...origin/<head> -- wiki/and grepped the added lines forgreedy|finditer|adjacent|regex merge|model-scoped|Fable limit|subagent model|per-invocation. No added lines matched.8c0693fbeb1dca30) — verdict new.backend/common/integrations/contact-details-from-scraped-pages.md, which covers where to read phone numbers (tel:links, header/footer vs main content), not how a regex tokenizes adjacent numbers. That's a different trigger, so no overlap.fe22774ea41d523f,2f27db59be18d9c2) — verdict new (merge into the main-branch page).usage-limit-paused-workers.md, but only itsrelated:line (it addslogin-expiry-during-unattended-turns). No content overlap.related:line unchanged, so the two PRs should not conflict on that line.2f27db59be18d9c2duplicatesfe22774ea41d523fwithin this batch, so it is folded into the same merge rather than dropped.testing/data/test-data-and-isolation.md, and knowledge: 21 insights — fork-PR secret gates, review-bot exit codes, dict-subclass copy loss, iterative DFS, citation sweep, plugin-prose identity leak, xcodegen regen loss, narration ordering tests, autouse shadowing, stub contracts, real-CLI spot checks (+8 merges, 1 fold onto #183) #188/knowledge: 9 insights — fresh-context review, gate parser/executor split, coordinator under tmux, sun_path limit, REPL sentinel await, allowlist bypass reproduction, version-drift gate, mock ts at emit (+3 folds onto #180/#181, 1 stale drop) #183 edittests-that-cannot-fail.md. This PR only appends one id to each page'srelated:list, so any conflict is a one-linerelated:union.Routing decision
testing/data/ new pagewiki/testing/data/adjacent-tokens-in-extractor-fixtures.md.datacategory ("tests need fixture data and you are choosing how to create it").qualitywas the runner-up (a test that passes for the wrong reason). It is linked throughrelated:instead, because the directive acts on the fixture, not the assertion strategy.infrastructure/agent-orchestration/ existing pagewiki/infrastructure/agent-orchestration/usage-limit-paused-workers.md.platforms/processeswas rejected: the fix is a model-routing decision inside the orchestrator, not an OS/CLI invocation difference.