Skip to content

docs(handoff): the arc closes — five PRs merged, one regression shipped and fixed, three items left that need your decision - #600

Merged
ZacxDev merged 5 commits into
mainfrom
docs/handoff-513-arc-close
Sep 14, 2026
Merged

ZacxDev merged 5 commits into
mainfrom
docs/handoff-513-arc-close

Conversation

@ZacxDev

@ZacxDev ZacxDev commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Updates the arc handoff. main @ 7467c62, make ci rc=0 / 22 package lines / 0 FAIL / golangci-lint 0 issues — measured on main itself, not on a branch.

Merged, all verified by content

what sha
cli#590 — download line-forgery (3 audit rounds) 3b222c6
cli#591 — the 429 exit-code contract (4 rounds; merged by a concurrent session) 2c6fc4a
cli#592 · cli#595 — handoff, refs demotion, the dispatched-vs-scheduled correction e39250b · e9c51b1
cli#585 — submit-body ceiling + --allow-oversize 61be65e
cli#598restores a regression I shipped in 61be65e 7467c62
devdocs#80 — the last two drifts (7 rounds) cced3e2

The three lessons worth the doc's space

🔴 A clean merge still drops the other side's edits in regions that never conflicted — it fired three times and shipped once. #585's merge dropped #591's two Troubleshooting rows onto main, restoring the exact 🔴 that PR existed to fix while the generated section thirty lines above still said the opposite. The remedy is mechanical: after resolving, diff <(git show origin/main:<file>) <file> and require the "lines main has that we lack" set to be empty. The one drop I caught was caught by exactly that; I had not run it on the first merge. Spot-checking a merge is sampling; the diff is the measurement.

🔴 I asserted "nothing unique" about a branch while the git diff --stat I had just printed showed five lines different — and deleted it. The object survived locally and those five lines were the regression fix.

🔴 "It reproduces both measured points" is vacuous when the number sits inside the bracket those points define. I published that argument for MaxSubmitBodyBytes in two surfaces. 10485760 ÷ 4/3 is a 7,864,320-byte zip, inside (2.32 MB, 8.20 MB] — every number in that bracket agrees with both observations. Provenance was the whole argument.

Three things need YOUR decision, not more work

  • Rank 3 — civitai/civitai#4768 is not blocked, it is UNROUTED. 0 comments since 09-11. Of the objectives named at kickoff, the only one where progress is available and not taken; routing it is outward-facing so I have not.
  • Rank 12 — cli#575 R2/R3/R4 need a written decision from a named reader, not code. R6 has engineering.
  • Rank 19 — developer-docs#5 has been open since 2026-07-13. Needs a yes/no.

Also newly filed, with closing conditions

cli#593 (a closedLoopbackAddr race that flakes two positive controls), devdocs#81, devdocs#82. Rank 22 is the one real piece of engineering left: cli#591's header-before-message ordering is a published 🔴 contract that can be inverted with the whole suite green — diagnosed in the doc's investigation block, fix unwritten.

⚠ Rank 9 is deliberately still open: the drift streak's end is inferred from a dispatched run. The cron is 37 6 * * * and no scheduled run has fired against the fixed tree yet.

ZacxDev and others added 4 commits September 14, 2026 16:36
…not just routed

rank 22 — DONE. cli#601 merged (b727a83). The published header-before-message
ordering is now pinned TWICE: the sentinel in pkg/civitai/retry_test.go and the
exit code in cmd/civitai/read_error_stderr_test.go. Round 0 of the audit ran
before the merge decision and found the first guard was one hop short — the
requirement of record and the 🔴 bullet are about an `rc`, and nothing composed
cap-body + Retry-After -> exitCode(). That is the durable finding: a
classification test and an exit-code test are two claims.

rank 9 — DONE, and closed in the terms it was stated in. The streak's end was
INFERRED from a workflow_dispatch run; it is now OBSERVED in scheduled run
34848144324 (2026-09-14T13:15 UTC): drift=success, 0 failing steps and 15
EXECUTED, notify=success. The step count is the load-bearing half — a run that
skipped its steps reports success too.

rank 3 — no longer "unrouted". An agent is dispatched against civitai/civitai to
fix the Meilisearch-side coercion and open a PR; the brief's constraint is
recorded here because it is the easy mistake: a boundary String(...) cast is NOT
the fix, since "0222" is already 222 by the time the read path sees it. New rank
25 carries the outcome check so the next session does not re-dispatch it.

rank 26 — cli#602's merged-tree re-run is recorded as DELIBERATELY SKIPPED
(operator's call), not absent. The mechanical check is posted on that PR.

State now: main moved 7467c62 -> 426288f (#601, #596, #603). Flags that this
repo has a SECOND live handoff doc maintained by a concurrent session, with its
own ranked list — "rank 23 closes" in a commit subject may not mean this doc's.

Four new lessons, all from this session's own mistakes: a timed-out mutation
battery leaves the mutant in the tree (the restore line is the one that dies); a
grep for "the old text is gone" cannot distinguish REMOVED from QUOTED-IN-THE-
RETRACTION; `| head` ate grep's exit status again; and the merge drop-check has a
premise — it reported 103 "dropped" lines that were this PR's own replacements,
because main had not touched that path at all.

Doc: 64,635 B of the 65,536 B ceiling.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013JQ4B1VHew33RNX5Ck7ELS
…er, not Meilisearch

The agent dispatched under rank 3 refuted the attribution this doc recorded as
fact. Every MEASUREMENT in that block holds; the mechanism does not.

The Meilisearch index document's user.username never reaches the response —
getImagesFromFeedSearch -> ImagesFeed.populatedQuery builds `user` from the
Postgres-backed userData REDIS cache and spreads it AFTER the doc, overriding it.
The coercion is in event-engine-common/caches/base.ts: a Redis hash stores only
strings, so createCache serialised each field on write and GUESSED the type back
on read — `isNaN(Number(value)) ? value : Number(value)`. Number('0222') is 222.
It also read a stored `false` back as the truthy string 'false'.

The discriminating observation, cache-busted with cf-cache-status MISS on every
row: ?username=0222&limit=11 -> "username":"0222" (Redis MISS, raw Postgres row),
then limit=12..16 -> "username":222 (Redis HIT, decoded). A Meilisearch document
cannot change between two requests seconds apart. The original probe never varied
anything that would make the two mechanisms disagree.

New gotcha, which is the transferable part: `via: code` means "I read code", not
"I read the code that RUNS". That tag made a reading of one file on the path look
like a derivation, and it sat here for three days.

rank 25 now carries the two open fix PRs (civitai#4839 + event-engine-common#13),
their MERGE ORDER (#13 first, then re-pin #4839), that neither has been audited,
and what nobody has verified — nothing was exercised against a real Redis or a
deploy, and `pnpm typecheck` does not cover apps/event-engine.

Also: cli#575 R2/R3/R4 accepted in writing (issue rests on R6 alone; R3's
"points at gatePreSanitised" clause was stale — #578 deleted that state, verified
on main). devdocs#5 merged (23c6d46) after re-verifying its claim live: query=a
totals grow 4 -> 7 -> 10 across pages while the unfiltered listing is a stable
88,901, which is exactly what it documents.

Doc hit its 65,536 B ceiling twice during this edit. Evicted VERBATIM to
claudedocs/refs/: the devdocs#76 resolved block and the devdocs#80 ladder block,
each leaving a headline pointer. Three superseded interim round-0 ledger lines
dropped — the CLOSED line and this session's line both survive. Now 65,036 B.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013JQ4B1VHew33RNX5Ck7ELS
@ZacxDev
ZacxDev merged commit 0d25f7b into main Sep 14, 2026
13 checks passed
@ZacxDev
ZacxDev deleted the docs/handoff-513-arc-close branch September 14, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant