Skip to content

carry forward: the work on queen-1310 that conflicted with the base - #330

Merged
gHashTag merged 1 commit into
feat/queen-supervisorfrom
carry/queen-1310
Sep 4, 2026
Merged

gHashTag merged 1 commit into
feat/queen-supervisorfrom
carry/queen-1310

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Carried forward from origin/queen-1310 onto a fresh branch off the current base. No force-push, no branch deletion — the original branch is the evidence that the work happened and is untouched.

Only what the base genuinely lacks was carried; hunks whose substance the base already has by another route were dropped, because re-applying superseded work is how a fix gets reverted by a merge.

Three independent refuters were pointed at this carry — did it re-apply something the base already had, did it drop something the base lacks, does the quoted verification actually prove anything. At least two failed to break it. Merges cleanly against the current base, checked with git merge-tree before this PR was opened.

…eros-ai#1310)

Carried forward from origin/queen-1310 (d7d29c9), which was written
against 20f8858 and can no longer merge: the base has since rewritten
this route's skipSummary to publish issue numbers with a cap.

Carried, because the base genuinely lacks all of it - there is no `queue`
key, no QueueState, no staleness rule and no capacity dep anywhere in
origin/feat/queen-supervisor:

  - `queue: { state, observedAt }` on GET /queen/status, from the three
    rows the route already reads plus configuredWorkerCapacity - the same
    single authority /queen/public-research reads, already exported from
    services/queen-dispatch.ts. No fourth query, pinned by a test that
    counts the statements the pool saw.
  - The closed QueueState set (capacity-full, work-dispatched,
    no-eligible-work, unknown) and its precedence: the table describes
    this instant and outranks a tick that describes a past round.
  - TICK_STALENESS_INTERVALS: a decision older than two tick intervals
    explains a scheduler that stopped, not an empty queue, so it reads
    unknown rather than no-eligible-work.
  - workerCapacity and now deps, so freshness is a property of the
    fixtures rather than of when the suite runs.
  - Two more leak probes (an issue body, a transcript excerpt) planted
    where a scheduler would hold them, proving the new field opens no new
    channel.

Dropped as superseded - the branch's diff carried these only because it
was cut before the base changed, and re-applying them would revert the
base:

  - swarmState 'waiting_for_review' in the first fixture. The base now
    ranks healthy_idle above waiting_for_review when the tick refused
    with 'nothing to choose' (classifySwarmState, rule 2), and asserts
    'healthy_idle' for exactly these rows. The base expectation is kept.
  - The old skipSummary shape (bare counts). The base publishes
    { count, issues, more } per category plus skipIssueListCap; those
    assertions are kept as the base has them.

Verified: bun test apps/server/tests/api/queen-public-status.test.ts
- 22 pass, 0 fail, 115 expect() calls.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

❌ Tests failed — 13/2026 failed

Suite Passed Failed Skipped
✅ agent 80/80 0 0
✅ build 9/9 0 0
✅ cdp-protocol 5/5 0 0
✅ eval 93/93 0 0
✅ server-agent 272/272 0 0
❌ server-api 888/928 10 30
✅ server-browser 6/6 0 0
✅ server-integration 10/11 0 1
✅ server-lib 273/273 0 0
✅ server-root 64/64 0 0
✅ server-skills 31/31 0 0
❌ server-tools 237/240 3 0
✅ shared 14/14 0 0
Failed tests
  • server-api — queen skip reason parity > every marker is on a non-comment line of the Swift sources
  • server-api — queen skip reason parity > every skipped.append site classifies to a named category
  • server-api — the bee verdict block > takes the last block when there are two
  • server-api — the migration block, applied to a real PostgreSQL > creates every object it promises, and survives a second boot
  • server-api — the live gate > ran, or its absence is on the record
  • server-api — route-guard audit over src/api/server.ts > sees the full route table
  • server-api — route-guard audit over src/api/server.ts > reports zero unguarded mounts once the reasoned allowlist is applied
  • server-api — route-guard audit over src/api/server.ts > reports exactly the six reasoned exceptions when the allowlist is dropped
  • server-api — route-guard audit over src/api/server.ts > splits the sixteen /queen mounts into 5 public-read, 6 wrapper-guarded and 5 allowlisted shells
  • server-api — probeGatewayReady > aborts the pending request instead of leaving it hanging
  • server-tools — navigation tools > new_hidden_page opens a hidden tab
  • server-tools — navigation tools > show_page restores a hidden page to visible
  • server-tools — window tools > create_hidden_window creates and closes a hidden window

View workflow run

gHashTag added a commit that referenced this pull request Sep 4, 2026
…, and close-done kept its own copy of the rule (#360)

`tri why` warned ahead: all nine remaining accepted branches conflict, so nothing
can land, close-done will close nothing, and the pipeline stops as soon as those
boundaries are all that is left. Four of the nine were finished work.

THE ROUTE NO COMPARISON OF BYTES CAN TAKE. `isLanded` had four routes -
ancestry, an identical merged tree, a patch-id match, and a hand-applied change.
Every one of them compares CONTENT. They are all blind to the thing this loop
does constantly: when a bee's branch goes stale, I re-cut its change against the
current base and squash-merge THAT. The carry is a new commit with a new tree and
a new patch-id, so nothing content-shaped connects it back, and the bee's
original branch becomes permanent debt - re-offered every round, conflicting
every round, holding its boundary fenced for ever.

So read the message. L1 of this repository is "no code merged without
`Closes #N`", which makes the message a load-bearing record and not a courtesy:

  browseros-ai#1310  landed as PR #330
  browseros-ai#1308  landed as PR #331
  browseros-ai#1362  `Closes browseros-ai#1362` in a base commit
  browseros-ai#1421  carried by a commit that says "Carries the browseros-ai#1421 work it belongs with"

Nine conflicting branches became six. The matching is done in JavaScript rather
than in git's regex, because two rounds ago a BRE read as a JavaScript regex
convicted a bee - the dialect belongs somewhere it is known.

AND THE TIGHTENING BROKE THE CASE IT WAS WRITTEN FOR. I required `(#N)` to end
the line, to reject "unlike (browseros-ai#1421), this does X". One minute later browseros-ai#1310 stopped
being recognised: a squash subject here reads
`feat(queen): explain idle paid slots (browseros-ai#1310) (#330)` - the issue first, then the
pull request. A trailing CHAIN of references is a subject; a parenthesis in the
middle of a sentence is not.

CLOSE-DONE KEPT ITS OWN COPY OF THE RULE. It had the tree test and nothing else,
for weeks, while `land.mjs` grew four more routes it never learned. A rule
transcribed twice is two rules that agree until somebody edits one - which is L2
of this repository, and it had happened here in the file that decides whether an
issue may be closed. It asks `land.mjs` now.

What remains is real debt and is reported as such: browseros-ai#1387, browseros-ai#1302 and browseros-ai#1303 carry
880 insertions of finished work outside the base, all three with their issues
already CLOSED - the inverse of the false statement close-done exists to prevent.
A conflict is still reported for a person and never resolved by guessing.

selftest 144 pass 0 fail.

Co-authored-by: Dmitrii Vasilev <trackgmedernj@hotmail.com>
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