Repository navigation
docs(devlog): open phase 2 of the post-2.60.0 consolidation batch #5259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| # Phase 2 — the ten consolidation bundles | ||
|
|
||
| Status: OPEN. Phase 1 (items 1-6) runs in lanes A and B under [000_plan.md](000_plan.md). This file | ||
| opens items 7-16 of the post-2.60.0 assessment. These are **not ten new pull requests**. Each bundle | ||
| is a unit of existing issues and pull requests to reuse, with only the shared part reviewed | ||
| together. | ||
|
|
||
| ## Delivery topology is unchanged | ||
|
|
||
| One branch, ordered commits, one pull request to `dev` per lane. No native stack, no child pull | ||
| request chain. Carried contributor work needs a `Co-authored-by` trailer in a branch commit; | ||
| superseded pull requests are closed by the coordinator only after the lane lands. | ||
|
|
||
| ## Why these groupings and not one bundle per lane | ||
|
|
||
| Bundles 7 and 14 both want the same substrate. Item 7 divides a failure into pre-header, | ||
| headers-only, protocol prelude, semantic output, side effect and terminal, and decides resend | ||
| permission per stage. Item 14 wants a logical request to attempt to physical send to terminal | ||
| record with one cause dictionary. Two lanes defining that separately would typecheck on each branch | ||
| and contradict each other in the merge — the exact class that blocked 2.60.0. They stay in one lane. | ||
|
|
||
| Bundles 8 and 9 are the same question asked twice: an observation attributed to an account or | ||
| credential generation must not survive its replacement. A refusal learned from the previous account | ||
| and a warm cache binding dropped on a threshold hint are the same attribution defect at different | ||
| layers. | ||
|
|
||
| Bundle 13 consumes the request-scoped route decision that lane B is building for #5087. Starting it | ||
| before lane B lands would fork that authority, so it is scheduled after. | ||
|
|
||
| ## Lanes | ||
|
|
||
| | Lane | Bundles | Existing items to reuse | | ||
| | --- | --- | --- | | ||
| | C | 7 retry stage table, 14 one event model | #4942, #4989, #5245, #2366, #3748, #3983, #5063; issues #4191, #5180 | | ||
| | D | 8 account and credential generation, 9 cache affinity and diagnostics | #5214, #5145, #5229, #5209, #4793; issues #3375, #5178, #3433, #3765 | | ||
| | E | 10 Devin output budget, 11 adapter queue memory, 12 per-key permission | #5189, #5182; issues #5190, #5049 | | ||
| | F (after B) | 13 per-provider egress, 15 CodeBuddy and native wire | #3901, #5148, #5147, #5188; issues #2894, #5146, #5097, #5096 | | ||
| | G (after B) | 16 onboarding, update and screen consolidation | #5016, #4560, #5068; issues #2811, #5215, #5216 | | ||
|
|
||
| ## Ownership boundaries between concurrent lanes | ||
|
|
||
| These exist because the lanes share a checkout-independent surface and would otherwise collide. | ||
|
|
||
| - Lane C owns send accounting: `sendCount`, request-wide send budget and the stage and cause | ||
| vocabulary. Lanes D and E consume it and do not redefine it. | ||
| - Lane D owns #4793 and every per-model cache view. Lane C derives cache projections from the | ||
| recorder without editing that surface. | ||
| - Lane E owns the adapter event queue budget and the Devin and coding-agent limits. It does not | ||
| touch retry classification. | ||
| - A collision that cannot be resolved inside these boundaries goes to the coordinator rather than | ||
| being settled unilaterally in one branch. | ||
|
|
||
| ## Acceptance that is easy to fake and must not be | ||
|
|
||
| Each bundle has a completion condition that a passing request does not demonstrate. | ||
|
|
||
| - 7: an uncertain resend after output or a side effect is never automatically permitted; 429, quota, | ||
| policy refusal and ciphertext refusal stay distinguishable; the provider's stated reason and the | ||
| actual send count agree, with no duplicated parent and child counter. | ||
| - 8: a refusal or capability observation from a replaced account does not transfer; a cancelled | ||
| request's late refresh does not overwrite another request's binding; false, unknown and absent | ||
| stay distinct. | ||
| - 9: passing a threshold alone does not drop a warm binding, while real exhaustion does; input | ||
| change, account change and transformation change are distinguishable; a prefix fingerprint never | ||
| becomes a public or durable correlation key. | ||
| - 10: with the caller omitting a limit, the configured effective output cap reaches the wire, and an | ||
| explicit small cap survives; the history ceiling keeps its own meaning. | ||
| - 11: slow consumers, one large event, accumulated coalescing and a cancel race all stay bounded | ||
| with no unreleased counter, and a normal long stream is not capped by total length. | ||
| - 12: an alias, combo child, fallback or compact route cannot reach a forbidden model or provider; | ||
| filtering `/models` is not completion; an inference key never gains management authority. | ||
|
Comment on lines
+70
to
+71
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This OPEN plan records unfixed authorization-bypass scenarios—alternate routes reaching forbidden providers and inference credentials gaining management authority—in a tracked public directory. These details are unreleased security and bypass planning, which must remain in scratch space until the fix has shipped; move the security-sensitive acceptance notes out of AGENTS.md reference: AGENTS.md:L124-L130 Useful? React with 👍 / 👎. |
||
|
|
||
| ## Release shape | ||
|
|
||
| The first stabilization release carries items 1-6 plus only the small, reproduced fixes from 8, 10 | ||
| and 11. Items 7, 9, 12, 13 and 14 form the second group. Items 15 and 16 are the optional extension | ||
| and do not precede the fidelity work. A new large control plane, a full manager rewrite and a | ||
|
Comment on lines
+75
to
+77
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The release grouping cannot be implemented with the topology above: lane D's single PR contains both 8 and 9, lane E contains 10/11/12, and lane F contains 13/15, while these lines assign those items to different releases. Because releases promote the integrated AGENTS.md reference: AGENTS.md:L351-L353 Useful? React with 👍 / 👎. |
||
| multi-tenant conversion stay out of this stabilization and are not closed as unwanted. | ||
|
|
||
| ## Execution constraints | ||
|
|
||
| Unchanged from phase 1: no local suites, individual tests, typecheck, build, install or live `ocx` | ||
| execution; verification is static source review plus exact-head hosted CI; pushes use | ||
|
Comment on lines
+82
to
+83
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When these lanes change the listed runtime behavior, forbidding even individual tests prevents contributors from running the focused regression checks required for each affected subsystem. Exact-head hosted CI does not replace the prescribed focused checks, particularly for dependencies expressed through subprocesses or source files read as data; revise this constraint to allow the relevant focused test files during implementation. AGENTS.md reference: AGENTS.md:L215-L224 Useful? React with 👍 / 👎. |
||
| `--no-verify`; only the coordinator merges and closes issues. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Despite stating that each bundle has a completion condition, this section stops after bundle 12 and provides none for 13, 14, 15, or 16. Consequently lanes F and G—and bundle 14 in lane C—have no documented criterion preventing completion based only on a passing request, defeating the purpose of this section; add explicit acceptance conditions for all four omitted bundles.
Useful? React with 👍 / 👎.