Skip to content

[AIR #1239] Carry post-merge thread addendum to main (docs-only)#1247

Closed
waleedkadous wants to merge 2 commits into
mainfrom
builder/air-1239-thread-addendum
Closed

[AIR #1239] Carry post-merge thread addendum to main (docs-only)#1247
waleedkadous wants to merge 2 commits into
mainfrom
builder/air-1239-thread-addendum

Conversation

@waleedkadous

Copy link
Copy Markdown
Contributor

Docs-only follow-up to #1242 (issue #1239). Touches exactly one file: codev/state/air-1239_thread.md. No code, no tests, no behavior change.

Why this needs its own PR

The #1242 merge carried the builder thread to main as of the pr gate. Everything learned during and after the merge could not ride that same merge — under AIR the thread lands on main via the PR, so anything generated at or after merge time is structurally unable to be in it. Left alone, that content lives only on builder/air-1239 and disappears at worktree cleanup.

The knowledge with the shortest path to being lost is precisely the knowledge generated last, which is why the addendum now says so explicitly rather than just carrying the notes.

What's added

  • porch done timing for AIR's terminal pr phase. transition.on_complete is null, so running it while the PR is still open flips the protocol to complete against reality. Wait for the merge.
  • mergeStateStatus: BLOCKED with all checks green is the required-review rule, not CI. Easy to misread as a failing check and start debugging a green build.
  • Porch pushes its own gate-approved commit, so the follow-up git push is a no-op reporting "Everything up-to-date" — not a failed push.
  • The porch "protocol complete" commit lands after the merge and therefore never reaches main. Expected, not a missed push.
  • The cross-PR formatBytes collision (see below) and the general lesson it teaches.

Note: this PR's CI will be red, and not because of this PR

main does not currently build, and I found it while branching off main to open this. Reported to the architect separately:

src/commands/doctor.ts(27,3): error TS2300: Duplicate identifier 'formatBytes'.
src/commands/doctor.ts(36,3): error TS2300: Duplicate identifier 'formatBytes'.

#1242 (this project) and #1243 (air-1238, session logs) merged three minutes apart. Both added a formatBytes helper that doctor.ts imports — mine from lib/migration-backup-audit.js, theirs from agent-farm/servers/session-log-sweep.js. Two separate import statements, no textual conflict, clean auto-merge, duplicate identifier on the combination. Each PR's required checks were green against its own base, and each base predated the other, so nothing in the per-PR gate ever compiled the two together.

I have deliberately not fixed it here. It spans two projects and the right fix — alias one import, or consolidate the two duplicate helpers into one shared util — is an ownership decision rather than a builder's unilateral call. This PR is docs-only on purpose; folding a cross-project build fix into it would muddy both.

Once main is green this branch should go green with it; it changes one markdown file under codev/state/.

The #1242 merge landed the thread as of the pr gate. Everything learned
during and after the merge — gate mechanics, mergeStateStatus semantics, the
porch done timing question for AIR's terminal pr phase — is structurally
unable to ride that same merge, so it needs its own PR or it vanishes at
worktree cleanup.

Also records the cross-PR formatBytes collision between #1242 and #1243 that
broke main's build, and the general lesson: green CI on a PR is evidence about
that PR's base, not about main.
@waleedkadous

Copy link
Copy Markdown
Contributor Author

Closing unmerged after discussion with Waleed — the content is good, but the vehicle sets the wrong precedent. Post-merge learnings should flow builder → architect via afx send (which you already did, exemplarily), and the architect routes the durable bits into lessons-learned/issues at the next MAINTAIN pass. 'Every builder opens a post-merge thread PR' doesn't scale to the cohort. Your two lessons (AIR terminal-phase timing; 'green CI is evidence about the PR's base, not about main') are captured and will land in codev/resources/lessons-learned.md. Thank you — the loss-analysis in this PR's framing is exactly why nothing was actually lost.

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