Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions devlog/_plan/260920_meaning_preservation_batch/010_phase2.md
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Define completion conditions for bundles 13 through 16

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 👍 / 👎.


- 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Move open authorization triage out of devlog

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 devlog/ and commit only the published outcome.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align release groups with the atomic lane pull requests

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 dev branch, merging a lane necessarily carries every item in its PR; split the mixed lanes or place all items from each lane in the same release group.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Permit focused regression tests during implementation

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.
Loading