-
Notifications
You must be signed in to change notification settings - Fork 873
devlog: WP8 execution and the program's closing reconciliation #2391
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,99 @@ | ||
| # 081 — WP8 execution and the program's closing reconciliation | ||
|
|
||
| Four candidates reviewed at their current heads, and a final count that is honest about | ||
| a backlog which never stopped moving. | ||
|
|
||
| | PR | Verdict | Why | | ||
| |----|---------|-----| | ||
| | #2083 image relay | **FAIL** | its own test file cannot parse | | ||
| | #2366 usage timeline | **FAIL** | nothing persists; commit claims `closes #1217` | | ||
| | #2368 nested delimiters | **FAIL** | 35 commits behind, unrelated test still bundled | | ||
| | #2033 sidecar status | **FAIL** | 615 commits behind, four recorded blockers still open | | ||
|
|
||
| ## #2083 — the most mergeable PR, and still not mergeable | ||
|
|
||
| This was the strongest remaining candidate: APPROVED, mergeable, and with genuinely | ||
| complete security work. Reverting hunks in a throwaway worktree confirmed the aggregate | ||
| relay budget, the empty-edit 400 before any Imagine POST, `redirect: "manual"` with 3xx | ||
| rejection, and sanitized upstream errors are all load-bearing. | ||
|
|
||
| Then the runner said: | ||
|
|
||
| ``` | ||
| $ bun test tests/images/z-fulfill.test.ts | ||
| SyntaxError: Export named 'resolveXaiAspectRatioLiteral' not found in module 'src/images/xai-client.ts' | ||
| 0 pass, 1 fail | ||
| ``` | ||
|
|
||
| The test file mocks `xai-client` and exports only `callXaiImages`, while `fulfill.ts` now | ||
| also imports `resolveXaiAspectRatioLiteral`. The isolate runner therefore fails before a | ||
| single assertion runs — **the new `aspect_ratio` regression never executes**. | ||
|
|
||
| The approval also predates this head by four substantive commits, and cross-platform CI | ||
| has never run on this SHA. A one-line mock fix makes it landable. | ||
|
Comment on lines
+32
to
+33
Contributor
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. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Do not call Lines 28-30 establish one parse blocker. Lines 32-33 also state that the approval is four substantive commits behind and that cross-platform CI has not run on this SHA. The one-line edit removes the reproduced parser failure, but it does not establish current mergeability. State that the edit makes the isolated test runnable, then require fresh review and full cross-platform validation before calling the PR landable. 🤖 Prompt for AI Agents |
||
|
|
||
| ## #2366 — a schema nothing writes | ||
|
|
||
| ``` | ||
| addRequestLog(... five fields ...) -> {streamTimeline:null, failureSide:null, ... } | ||
| appendUsageEntry directly -> round-trips fine | ||
| requestLogEntryFromPersistedUsage -> projects all five back to null | ||
| ``` | ||
|
|
||
| `RequestLogEntry` was never extended, and the function `GET /api/request-history/:id` | ||
| projects through copies none of the fields. Live `/api/logs` can show `transportPhase` | ||
| until restart; durable history can never show any of it. There is no runtime producer at | ||
| all — `rg` finds the field names only in `src/usage/log.ts` and its test. | ||
|
Comment on lines
+43
to
+46
Contributor
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. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
rg -n -C 8 \
'streamTimeline|failureSide|failureStage|requestLogEntryFromPersistedUsage|addRequestLog|appendUsageEntry' \
. --glob '*.ts' --glob '*.tsx'Repository: lidge-jun/opencodex Length of output: 50376 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- declarations and field references ---'
rg -n -C 5 \
'type RequestLogEntry|interface RequestLogEntry|type PersistedUsageEntry|interface PersistedUsageEntry|streamTimeline|failureSide|failureStage|transportPhase|requestLogEntryFromPersistedUsage|addRequestLog\(|addFinalRequestLog\(' \
src/server/request-log.ts src/usage/log.ts src/server/relay.ts src/server/responses.ts src --glob '*.ts' --glob '*.tsx' \
| sed -n '1,260p'
printf '%s\n' '--- converter and persistence sections ---'
sed -n '1,90p' src/server/request-log.ts
sed -n '230,430p' src/server/request-log.ts
sed -n '850,930p' src/server/request-log.ts
printf '%s\n' '--- persisted entry definition ---'
rg -n -C 25 'PersistedUsageEntry' src/usage/log.tsRepository: lidge-jun/opencodex Length of output: 50375 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- plan section ---'
sed -n '35,50p' devlog/_plan/260822_backlog_disposition_program/081_wp8_execution_and_reconciliation.md
printf '%s\n' '--- exact field-name inventory ---'
rg -n \
'streamTimeline|failureSide|failureStage|transportPhase|terminalSource|streamAborted|failureReason|failureCode' \
. --glob '*.ts' --glob '*.tsx' --glob '*.md' \
| sed -n '1,240p'
printf '%s\n' '--- RequestLogEntry fields ---'
sed -n '95,185p' src/server/request-log.ts
printf '%s\n' '--- persisted-entry fields and normalizer ---'
sed -n '70,127p' src/usage/log.ts
sed -n '429,510p' src/usage/log.ts
printf '%s\n' '--- final-log construction ---'
sed -n '930,990p' src/server/request-log.ts
printf '%s\n' '--- relay production sites ---'
sed -n '790,820p' src/server/relay.ts
sed -n '1135,1165p' src/server/relay.tsRepository: lidge-jun/opencodex Length of output: 28238 Correct the The repository defines 🤖 Prompt for AI Agents |
||
|
|
||
| Its first commit says `closes #1217`. Also, one of its two new tests passes with the | ||
| source reverted, because the allowlist rebuild already dropped unknown keys. | ||
|
|
||
| ## What the four have in common | ||
|
|
||
| Every one is *good work that is not finished*, and in three of four cases the gap is | ||
| invisible from the diff: a mock missing an export, a persist path that silently drops | ||
| fields, a branch 615 commits behind whose file has since changed underneath it. None | ||
| would have been caught by reading the patch. | ||
|
|
||
| ## Reconciliation, and the honest count | ||
|
|
||
| ``` | ||
| 45 open at unit open -> 45 open now | ||
| ``` | ||
|
|
||
| That number looks like nothing happened, and it is the most useful thing in this | ||
| document. **Ten PRs merged and eight closed during the program**, while roughly the same | ||
| number arrived — three of them (#2387, #2388, #2390) after this phase's own inventory | ||
| was taken. | ||
|
|
||
| A backlog with an active contributor base is not a queue that drains; it is a flow. The | ||
| useful measure is not the open count but whether each item carries a recorded, evidenced | ||
| disposition — and every PR this program touched now does. | ||
|
|
||
| ## Program totals | ||
|
|
||
| **Merged (10):** #2309, #2313, #2335, #2339, #2359, #2361, #2371, #2310, #2301 (rebuilt), | ||
| plus the record PRs. | ||
| **Closed with reasons (8):** #2360, #2357, #2041, #2222, #2302, #2303, #2304, and #2033's | ||
| predecessor lane. | ||
|
Comment on lines
+75
to
+78
Contributor
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. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win Reconcile the program totals with exact PR identifiers. The merged row lists nine numbered PRs and then says “plus the record PRs,” while claiming ten merged PRs. That wording does not identify the missing item and could refer to more than one PR. 🤖 Prompt for AI Agents |
||
| **Left open with reproduced blockers (9):** #2350, #2351, #2355, #2362, #2363, #2364, | ||
| #2083, #2366, #2368. | ||
| **Issues closed (4):** #2316, #2356, #2330, plus #2308 addressed via #2309. | ||
| **Deferred with evidence (2):** #1049 (needs a publisher phase), #2221 (needs a | ||
| fingerprint decision). | ||
|
|
||
| ## The recurring defect class | ||
|
|
||
| Six PRs this program held back shared one shape: **the code does something the | ||
| description denies, and the tests pass either way.** | ||
|
|
||
| - #2350 deletes non-empty tool outputs while claiming to annotate empty ones. | ||
| - #2351 records the admission secret while claiming never to record secrets. | ||
| - #2355 clears its own staleness warning. | ||
| - #2363's tests pass with the feature disconnected. | ||
| - #2364's second commit deleted the validation its first commit added. | ||
| - #2366 persists nothing while claiming a durable timeline. | ||
|
|
||
| Not one was visible from the diff. Each needed the same move: revert the hunk, re-run, | ||
| and watch what does *not* go red. That is the single most transferable finding here. | ||
|
Comment on lines
+97
to
+98
Contributor
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. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Qualify the universal “not visible from the diff” claim. The document identifies cross-file mismatches, including the 🤖 Prompt for AI Agents |
||
|
|
||
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.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add language tags to the fenced blocks.
markdownlint-cli2reports MD040 at lines 22, 37, and 60. Usetextor another suitable language tag for the command output, data-flow diagram, and count excerpt.Also applies to: 37-37, 60-60
🧰 Tools
🪛 markdownlint-cli2 (0.23.2)
[warning] 22-22: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Source: Linters/SAST tools