Skip to content

fix(tree): stop drawing a retired Bot, and list it in Archived - #1796

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev/3-tree-retired-not-archived
Oct 30, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev/3-tree-retired-not-archived

Conversation

@HugoXK

@HugoXK HugoXK commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #1793

What

archive_bot writes fields['flybot-tree'].retired = true, and the sidebar's own tree (forestOf, plugins/tree/client.js:289) already skipped such a Bot — but the tree panel's treeOf (:17) never read retired, so the Bot stayed drawn as a working member, while archivedOf (:491) only looked at archived or a 归档-/Archive- name, so it was in neither list. Retiring a Bot from the core looked like it did nothing in the tree UI, and its chat had no way back from the Archive.

treeOf now takes the same one-line retired === true skip as forestOf; archivedOf also accepts a retired Bot, and statusOf gives it the retired tag (a record that also carries archived keeps its archived/archived · merged into <name> tag). plugins/tree/ is outside the patch chain: git status shows no patches/ change and node scripts/ds-bot-patches.mjs generate was not run.

Tip

  • head b6e72873e0dd005295d0147aa21860c806989579
  • tree 4bbb000f991a9ae879585347c4cc9892278525aa
  • base 7b8f81e15a803d54a13fe32d2c0bc2119e7f9333 (live main at push time — main moved twice while this branch was being built, and the branch was rebuilt on the newest tip each time with no file overlap; the pushed head's tree is 4bbb000f, the same tree verified below). The issue names 92a4cf262cb8, which is no longer in the upstream object store (git cat-file -t 92a4cf26 fails, origin/main is now past 7b8f81e1) — main was rewritten upstream and the merge commit at that sha is gone, so the branch is cut from the current live tip.
  • 4 files, +49/−2: plugins/tree/client.js +9/−2, plugins/tree/test/archived-section.test.js +37, docs/subsystems/tree.md +1/−1, changelog.d/1793-tree-retired-archived.fixed.md +1 (new).

Red first

On live main (2213b4ca), with a probe over the existing archived-section.test.js harness (plugins/tree/test/probe-retired.test.js, carried only until the committed cases replaced it), node --import ./test/resolve.mjs --test test/probe-retired.test.js:

# Archived section lists: []
# Tree panel draws: ["Chief","Retired Dev"]
not ok 1 - probe: a Bot retired by archive_bot leaves the tree and is listed as retired

With the fix the same probe lists ["Retired Dev"] and draws ["Chief"]. The committed cases are #1793: a retired Bot leaves the tree and opens from the Archived section with a retired tag (the panel and forestOf agree, the row carries retired, and clicking it opens that chat) and #1793: retired and archived stay distinct, and both are listed.

Gates at this head

enqueue-guard at this tip says, verbatim:

do not enqueue #1796: no Verifier report names the tip b6e72873e0dd

Its summary adds the line: the head lives in a fork: the issue reference and agent-pr rules are not asked of it — so only the missing Verifier report refuses this head.

What I ran, at tree 4bbb000f99 (local commit 16ed9ee1, parent 7b8f81e1; the pushed head b6e72873 carries that same tree, checked through GET /commits/b6e72873):

  • TZ=UTC ARCH_DOCS_BASE=7b8f81e15a80 npm run verify — exit 0: core 2141, social 539, tree 127, timeline 129, workflow 289, .github 549, interop 37, live-e2e 24, 0 failures; arch-docs: OK (4 changed file(s)); build-client --check clean
  • git status — only the four files above; no patches/ change and no generate run

Not run: the smoke bench, the CI package job, and any push other than this branch.

maintainer_can_modify: true.

…archived (ThinkFlowLab#1793)

`archive_bot` writes `retired: true`, and `forestOf` already skipped that Bot,
but `treeOf` kept drawing it as a working member and `archivedOf` looked only at
`archived` or a 归档-/Archive- name, so retiring a Bot changed nothing in the tree
UI and its chat had no way back. The panel now skips it like the sidebar does, and
the Archived section lists it with a `retired` tag.
@HugoXK
HugoXK force-pushed the dev/3-tree-retired-not-archived branch from 4855797 to b6e7287 Compare October 30, 2026 05:25
@HugoXK

HugoXK commented Oct 30, 2026

Copy link
Copy Markdown
Contributor Author

Review request for this tip: b6e72873e0dd005295d0147aa21860c806989579 needs a Verifier verdict naming it. At this head tests-ok is success, merge-gate passes; enqueue-guard refuses for exactly one reason — no Verifier report names the tip b6e72873e0dd. 4 files +49/-2, base 7b8f81e1, maintainer_can_modify: true, not a draft. Fixes #1793.

@github-actions github-actions Bot added the risk:T2 Risk tier T2 (host/plugin code or an unnamed path), set by the controller from the diff label Oct 30, 2026
@Birfy

Birfy commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator

Verdict: PASS at b6e7287
Written-by: Reviewer
Attestation: b6e7287 role=Reviewer

Ran at this tip:

$ tar xzf 1796tip.tgz -C 1796tip --strip-components=1
$ cd 1796tip/plugins/tree && TZ=UTC npm test
# tests 127  # pass 127  # fail 0
$ cp 1796base/plugins/tree/client.js 1796red/plugins/tree/client.js && cd 1796red/plugins/tree && TZ=UTC npm test
# tests 127  # pass 125  # fail 2

Red first, at the same suite: with plugins/tree/client.js back at its base blob (7b8f81e1) and the tip's tests kept, not ok 5 - #1793: a retired Bot leaves the tree and opens from the Archived section with a retired tag and not ok 6 - #1793: retired and archived stay distinct, and both are listed are the only two failures (125/127). With the tip source it is 127/127.

  • Scope: 7b8f81e1…b6e72873 is ahead 1 / behind 0, over exactly the 4 files the body names (+49/−2): plugins/tree/client.js, the new plugins/tree/test/archived-section.test.js, docs/subsystems/tree.md, changelog.d/1793-tree-retired-archived.fixed.md. Nothing under patches/, no CHANGELOG.md, no version bump.
  • The fix is the one behaviour it claims: treeOf skips fields['flybot-tree'].retired === true the way the sidebar's forestOf already did, statusOf gives such a record the retired tag (an archived record keeps its archived/merged tag, since that branch is read first), and archivedOf now lists a retired Bot too, so its chat stays reachable from the Archived section. Test 5 pins the panel and forestOf to the same drawn set, the retired row tag and the click that opens the chat; test 6 pins retired vs archived · merged into <name> and that both are listed.
  • Checks at this tip: 15 runs, all completed. The only failure is enqueue-guard, whose stated reason is exactly no Verifier report names the tip b6e72873e0dd — this report is that subject. tests-ok, merge-gate, package, plugins (tree|social|timeline|workflow), Node 24 · DSH 0.2.0-rc.2, risk tier (report only), reviewed tip (report only) and the agent-audience runs are success. mergeable: true, not a draft, maintainer_can_modify: true.
  • Fork head (HugoXK/FlyBot): the guard asks neither Fixes # nor agent-pr of it, and the checkpoint/Owner/Reviewer body checks are exempt; the body carries Fixes #1793.
  • Not run: the full npm run verify — the change touches only plugins/tree/, and that plugin's own suite is the affected suite, run both ways above. Smoke bench not applicable (no host boot path changed).

@github-actions github-actions Bot added the pass label Oct 30, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 30, 2026
Merged via the queue into ThinkFlowLab:main with commit d4f1b24 Oct 30, 2026
15 checks passed
@Birfy
Birfy deleted the dev/3-tree-retired-not-archived branch October 30, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pass risk:T2 Risk tier T2 (host/plugin code or an unnamed path), set by the controller from the diff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The tree panel still draws a retired Bot, and the Archived section does not list it

2 participants