Skip to content
Merged
Show file tree
Hide file tree
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
65 changes: 65 additions & 0 deletions devlog/_plan/260806_disposition_sweep/000_plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# 000 — Plan: 10-item disposition sweep (2026-08-06)

## Objective

Dispose of exactly the ten items surfaced in the 2026-08-06 triage report
(user steering: "모든 pr은 아니고 너가 제시한 것만 처리"), record every
action in this unit, and open the unit as a PR. **Nothing merges to dev in
this loop** — code changes and the devlog land via an open PR only.

## Base

| Fact | Value |
|------|-------|
| `origin/dev` | `b3a1d90a8` (bfbc9a405 + devlog-only ledger commits; re-frozen after audit finding 1) |
| Worktree | `/Users/jun/.codex/worktrees/37e6/opencodex`, branch `codex/260806-disposition-sweep` |
| Scope freeze | the 10 items below; later arrivals (e.g. #1092) are OUT |

## Disposition rules (user authorization 2026-08-06)

| Rule | Bucket | Action |
|------|--------|--------|
| R1 | INCOMPLETE | close with a detailed defect list + "complete and reopen" guidance |
| R2 | NON-BUG | comment evidence, close, invite reopen with repro |
| R3 | OWN-PR | rebase onto dev, terra-verify, push to the PR branch — **no merge** |
| R4 | ABSORBED | close with source-level evidence (file:line or merge SHA) |
| R5 | STALE-CLEAR | complete-quality code but undecided intent → stale-mark comment, keep open |
| R6 | SHELL | non-compiling / no-op / cosmetic-only → close |

No merges this loop. Own-PR lanes end at "pushed, CI running, PR open".

## The ten items

| # | Item | Rule | Planned action |
|---|------|------|----------------|
| 1 | #1017 + PR #1036 (Cursor apply_patch) | R1-review | request-changes comment: synthetic-tool name provenance + final-catalog gaps; PR stays open (author active) |
| 2 | #919 (socket reset vs affinity) | R2 | close as intended-policy/enhancement with maintainer rationale; do NOT cite #914 as the successor (closed, pre-header scope only — audit finding 2); reopen path = concrete attribution-policy proposal or new repro |
| 3 | #1090 + #1091 (base_url injection) | R4-partial | #1090: regression test for the external-provider path on sweep branch + comment distinguishing attempt 1 (fixed, `inject.ts:74,636-658`) from attempt 3 (`model_provider="opencodex"` re-runs injection by design, `inject.ts:701-747`); close ONLY if attempt-3 scope proves by-design/resolved after full read — else keep open with status. #1091: status comment, keep open |
| 4 | #994 + PR #1068 (DeepSeek reasoning replay) | R1-review | comment: rebase required (CONFLICTING), Zen slice credible, Claude-path gap stays open |
| 5 | #936 (own, trust boundaries) | R3 | rebase onto dev, terra security audit, push — PR stays open for human security review |
| 6 | #1059 (Windows suite) | keep-open | status comment defining shard-by-shard burn-down expectation |
| 7 | #1008 (own, usage rollup) | R3 | rebase, triage 29 threads → fix-now vs redesign, implement fix-now, push — no merge |
| 8 | #1019 (account picker lifecycle, 106 files) | R5-adjacent | comment: split request into reviewable slices; hygiene gate noted; stays open |
| 9 | agentHits campaign: PRs #1084/#1083/#1081/#1079/#1077 | R6/R1 | close each with tailored, verified defect list + explicit "complete and reopen" guidance (user rule R1; author is active — audit finding 5 noted, tone must be respectful and specific). Linked issues #1062/#1063/#1060/#1058/#1076/#1082 are IN SCOPE as part of item 9: one policy comment each, stay open. Verified defects: #1084 cooldown no-op (`oauth-account-routes.ts:374` → `clearAnthropicAccountCooldown` Anthropic-only `anthropic-routing.ts:117`), #1081/#1079 invalid TS in six locales (bare string after value) |
| 10 | #1085 + #997 (easy rebases) | R5-adjacent | comment asking authors to rebase; note READY verdict; stay open |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Synchronize the PR #1085 disposition across all ledgers.

The plan and matrix require a rebase-request comment. The GitHub ledger records a security-pass comment, and the draft says the branch is current against dev. Confirm the intended action, then update every affected record.

  • devlog/_plan/260806_disposition_sweep/000_plan.md#L44-L44: update the planned action if #1085 is security-pass-only.
  • devlog/_plan/260806_disposition_sweep/001_disposition_matrix.md#L23-L23: align the matrix with the selected action.
  • devlog/_plan/260806_disposition_sweep/010_github_dispositions.md#L31-L44: record the same action and evidence in the ledger.
  • devlog/_plan/260806_disposition_sweep/011_comment_drafts.md#L165-L171: keep the posted comment consistent with the plan and ledger.
📍 Affects 4 files
  • devlog/_plan/260806_disposition_sweep/000_plan.md#L44-L44 (this comment)
  • devlog/_plan/260806_disposition_sweep/001_disposition_matrix.md#L23-L23
  • devlog/_plan/260806_disposition_sweep/010_github_dispositions.md#L31-L44
  • devlog/_plan/260806_disposition_sweep/011_comment_drafts.md#L165-L171
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@devlog/_plan/260806_disposition_sweep/000_plan.md` at line 44, Confirm
whether PR `#1085` is security-pass-only using the authoritative GitHub evidence,
then synchronize the disposition across all records: update the planned action
in devlog/_plan/260806_disposition_sweep/000_plan.md:44-44, align the matrix in
devlog/_plan/260806_disposition_sweep/001_disposition_matrix.md:23-23, record
the same action and evidence in
devlog/_plan/260806_disposition_sweep/010_github_dispositions.md:31-44, and make
the posted draft consistent in
devlog/_plan/260806_disposition_sweep/011_comment_drafts.md:165-171.


PR state re-verified post-audit: #936 CONFLICTING (rebase required), #1068
CONFLICTING, #1036 now MERGEABLE/CLEAN.

## Work-phase map

| Phase | Doc | Content |
|-------|-----|---------|
| wp0 | 000-001 | this plan + per-item disposition matrix (docs-only cycle) |
| wp1 | 010 | GitHub dispositions for items 1,2,3(comment),4,6,8,9,10 |
| wp2 | 020 | #1090 regression test on sweep branch; close #1090 only if the attempt-3 scope proves by-design/resolved, else status comment + keep open |
| wp3 | 030 | #936 rebase + terra security audit + push (no merge) |
| wp4 | 040 | #1008 rebase + thread triage + bounded fixes + push (no merge) |
| wp5 | 050 | closeout ledger + open sweep PR + live end-state snapshot |

## Out of scope

Any merge into dev, main/preview promotion, releases, new feature
implementation, PRs/issues outside the ten items (incl. #1092, #557,
provider-preset drafts), the user's usage-log 500k cap edits,
account/identity actions.
47 changes: 47 additions & 0 deletions devlog/_plan/260806_disposition_sweep/001_disposition_matrix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 001 — Disposition matrix (audited, terra PASS)

Scope: exactly the ten items from the 2026-08-06 triage report. User rules:
incomplete → close + resubmit guidance; non-bug → close with evidence; own
PRs → rebase + terra audit + push (NO MERGE); absorbed → close with
evidence; complete-but-undecided → stale-mark; shell → close.

Base: `origin/dev` = `b3a1d90a8`. Audit trail: initial terra audit FAIL
(7 findings), amended, FAIL (wp2 contradiction), amended, PASS.

| # | Target | Bucket | Action | Executor phase |
|---|--------|--------|--------|----------------|
| 1 | PR #1036 (+#1017) | R1-review | request-changes: synthetic-tool provenance, final-catalog derivation; stays open | wp1 |
| 2 | issue #919 | R2 close | close as intended-policy/enhancement; no #914 citation; reopen = attribution proposal or new repro | wp1 |
| 3a | issue #1090 | R4-partial | wp2 test first; close only if attempt-3 (`model_provider="opencodex"`) proves by-design; else status comment | wp2 |
| 3b | issue #1091 | comment | status comment: legitimate ask, security-sensitive design (config.ts:1253 gate), keep open | wp1 |
| 4 | PR #1068 (+#994) | R1-review | comment: rebase required (CONFLICTING), Zen slice credible, Claude-path gap remains; stays open | wp1 |
| 5 | PR #936 (own) | R3 | rebase onto b3a1d90a8+, terra security audit, push; PR stays open, NO merge | wp3 |
| 6 | issue #1059 | keep-open | status comment: shard-by-shard burn-down plan expectation | wp1 |
| 7 | PR #1008 (own) | R3 | rebase, triage 29 threads fix-now/redesign, implement fix-now, terra audit, push; NO merge | wp4 |
| 8 | PR #1019 | R5-adjacent | comment: split into reviewable slices, hygiene gate noted; stays open | wp1 |
| 9 | PRs #1084/#1083/#1081/#1079/#1077 + issues #1062/#1063/#1060/#1058/#1076/#1082 | R1/R6 close (PRs) + comment (issues) | close each PR with verified defect list + reopen invitation; issues get policy comment, stay open | wp1 |
| 10 | PRs #1085, #997 | R5-adjacent | rebase-request comments, READY verdict noted; stay open | wp1 |

## Verified defect evidence for item 9 closes

- #1084: cooldown endpoint permits `google-antigravity` but calls
`clearAnthropicAccountCooldown` which only clears the Anthropic health map
(`src/server/management/oauth-account-routes.ts:374`,
`src/oauth/anthropic-routing.ts:117`) — functional no-op for the new
provider; no pool-routing consumer for the added config.
- #1083: selector changes a badge only; metrics remain provider-aggregated.
- #1081: six locale files contain a bare string literal after a value
(`"prov.expiresAt": "...", "Accounts ({n})",`) — invalid TS, does not
compile; token expiry mislabeled as subscription expiry.
- #1079: same six-locale breakage; promised daily breakdown absent;
"yesterday" is a rolling window.
- #1077: closest to viable, but accepts refresh tokens via argv (leaks into
shell history/process lists), missing required GUI evidence, credential
surface needs security review.

## Constraints

- NO merge into dev anywhere in this loop.
- All sweep-branch changes (devlog + #1090 test) land via an open PR only.
- #919 close and agentHits closes are owner-policy decisions recorded here;
comments must be respectful, specific, and carry explicit reopen paths.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 010 — wp1: GitHub dispositions (items 1,2,3b,4,6,8,9,10)

All writes are comments/closes/reviews; no code, no merges. Every action
records its comment id in the ledger table at the bottom.
Comment on lines +3 to +4

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Make the ledger evidence rule match the recorded rows.

Line 4 says every action records its comment ID. The PR #1036 row has only a date, and the close rows contain only gh issue close or gh pr close. Record the actual comment or close-state evidence, or revise the rule to distinguish comment IDs from close evidence.

Also applies to: 35-49

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@devlog/_plan/260806_disposition_sweep/010_github_dispositions.md` around
lines 3 - 4, Update the ledger evidence rule and corresponding rows in the
disposition plan so they agree: record actual comment IDs for comment/review
actions and explicit close-state evidence for issue or PR closures, including PR
`#1036` and the close rows in the referenced section. If comment IDs are
unavailable, revise the rule to explicitly distinguish comment evidence from
close evidence.


## Planned actions

1. PR #1036: review comment (request changes): (a) conversion keys on bare
tool name — a client-owned `edit_file` would be mistranslated; needs a
per-request synthetic-name set; (b) structured-edit availability derived
from the original request instead of the final prompt-filtered catalog.
Approach endorsed; stays open.
2. Issue #919: close (not-planned) — behavior is intended account-health
policy; reclassified enhancement; reopen path: concrete attribution
policy proposal or new repro isolating non-network cause.
3. Issue #1091: status comment — valid request; blocked on security design
(pool-eligibility gate at `src/config.ts:1253` is deliberate); keep open.
4. PR #1068: comment — rebase onto dev required (CONFLICTING); Zen registry
slice credible with tests; end-to-end Claude Messages continuation
regression still missing; #994 stays open either way.
5. Issue #1059: status comment — dispatch-only stands; expectation:
shard-by-shard burn-down, gate restored only after full green run.
6. PR #1019: comment — split request into reviewable slices (settings
schema / selector init / catalog convergence / GUI), hygiene gate must
pass; stays open.
7. agentHits PR closes (verified defects in 001): #1084, #1083, #1081,
#1079, #1077 — each closed with its specific defect list + explicit
"complete and reopen" invitation. Linked issues #1062/#1063/#1060/
#1058/#1076/#1082: one policy comment each (ideas retained; small
independently-testable slices invited), stay open.
8. PRs #1085/#997: rebase-request comments; READY verdicts noted.

## Ledger (filled during execution)

| Target | Action | Comment/close id | Verified |
|--------|--------|------------------|----------|
| PR #1036 | review REQUEST_CHANGES | posted 2026-08-06 (gh pr review) | pending C |
| issue #919 | closed not-planned + comment | close via gh issue close | pending C |
| issue #1091 | status comment, open | 5199487703 | pending C |
| PR #1068 | rebase-request comment, open | 5199487780 | pending C |
| issue #1059 | status comment, open | 5199487879 | pending C |
| PR #1019 | split-request comment, open | 5199488679 | pending C |
| PR #1085 | security-pass comment, open | 5199488762 | pending C |
| PR #997 | rebase-request comment, open | 5199488854 | pending C |
| PR #1084 | closed + defect comment | gh pr close | pending C |
| PR #1083 | closed + defect comment | gh pr close | pending C |
| PR #1081 | closed + defect comment | gh pr close | pending C |
| PR #1079 | closed + defect comment | gh pr close | pending C |
| PR #1077 | closed + defect comment | gh pr close | pending C |
| issue #1062 | policy comment, open | 5199492623 | pending C |
| issue #1063 | policy comment, open | 5199492696 | pending C |
| issue #1060 | policy comment, open | 5199492785 | pending C |
| issue #1058 | policy comment, open | 5199492864 | pending C |
| issue #1076 | policy comment, open | 5199492948 | pending C |
| issue #1082 | policy comment, open | 5199493056 | pending C |
Loading
Loading