Skip to content

docs: record what the diagnostics report abbreviates, and a nested home - #2955

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev/5-docs-home-abbrev
Nov 12, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev/5-docs-home-abbrev

Conversation

@HugoXK

@HugoXK HugoXK commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #2953

Owner: Dev-5
Written-by: Dev-5
Bot: Dev-5
Reviewer: Birfy
Claim-Id: 9c42f6eeabfe410281ba1412a766d213
Base: 54054fb

What was missing

#2947 made the diagnostics report abbreviate every home it prints, not only the process's, and put that abbreviation before the length bound so the two reload sentences keep their tail. Nothing on the docs side said so, and the page said nothing about the usual layout, where the DSH home sits under the OS home and the same longest-first rule collapses it: ~/.dsh/bot/state.json now prints ~/state.json, so two different files in one report can render identically.

What changed

docs/subsystems/core-host.md, Diagnostics section, docs only:

  • one new bullet in the ### Diagnostics block recording what is abbreviated (the OS home and this host's own), where it shows (Read-only row, the entry lines the report prints, state file: / journal file:, the journal and log-state sentences, the browser fields), that the line written to logs/diagnostics.jsonl and stderr still goes through clean (the process's home alone), and that abbreviation still runs before cut, so the row's 200 measures the shortened text and both reload sentences keep their tail (… fix or move the file and reload. / … close the other one and reload.).
  • the nested case, honestly: /home/me/.dsh/bot/state.json prints ~/state.json, so a report naming the team file in the DSH home and one at the OS home's root draws ~/state.json twice; that collapse is today's behaviour and whether it stays is a separate decision, which the bullet says.
  • one stale call site corrected in the existing Read-only bullet: the page still described that row as clean(cut(answer, 200)), while #2947 put it on show(answer, { max: 200 }).

No code, no tests, no client bundle, nothing under channels/. Behaviour described is what main does at the tip.

Base

The branch started at 2d81af3658e9 and main moved to 54054fbba0cb while the card was open; the push overlaid the one changed path onto the new base (upstream's move was #2950, a social client and test change, and does not touch docs/subsystems/core-host.md). The pull request against 54054fbb is one file, +2/−1.

Tier

T0 — docs/** is a T0 path in .github/agent/risk-rules.json; the T3 diff patterns are read only on codeExt files, so prose that names .dsh does not move the tier (that is why #2947 was T3 from its core/src/host/diagnostics.js diff, not from the docs line it also touched).

Ran at the local tip

Local commit 478cd7c3a1d25fb091c8c1a823e953efd7074104 on base 2d81af36; its docs/subsystems/core-host.md blob 3d174f78 is the same blob at the pushed head e83e302cc9, so the checks below measured exactly the text this pull request carries.

  • TZ=UTC npm run verify (TMPDIR=/tmp): core lint OK; arch-docs: OK (1 changed file(s)); plugin lint OK; build-client.mjs --check OK; ds-bot-patches.mjs check + canonical OK; core 3178/3178; social 626/626; tree 149/149; timeline 172/172; workflow 531/531; project 147/147; .github + policy 674/675.
  • The one local red is #749: the repository classifies every test file and every workflow. It names untracked scratch paths only — tmp/… leftovers in this worktree and .cache/wt-2547/…, another bot's git worktree — and no file in this commit; a clean checkout has neither.
  • npm run lint:interop + test:interop 37/37; npm run lint:live-e2e + test:live-e2e 34/34.

Not run: the smoke bench — this machine has no DSH checkout (DSH_HARNESS unset, ../deepseek-harness absent). It does not exercise a docs page.

Checkpoint

{
"pr": 2955,
"claim": "Dev-5",
"issue": 2953,
"summary": "The Diagnostics page records that the report abbreviates every home it prints, not only the process's, and does so before the length bound, so both reload sentences keep their tail; the log line and stderr still go through the process home alone. It records the nested case too: with the DSH home under the OS home the longest-first rule prints ~/state.json, so two different files can render alike, and says whether that collapse stays is a separate decision. One stale call site in the Read-only bullet now reads show(answer, { max: 200 }). Docs only: no code, no tests, no bundle.",
"files": [
"docs/subsystems/core-host.md"
],
"checks": {
"ran": "TZ=UTC npm run verify (log: tmp/verify-2953.log)",
"result": "green",
"at": "478cd7c3a1d25fb091c8c1a823e953efd7074104"
},
"next": "T0 (docs/**): green tests-ok is the gate; ready for review"
}

ThinkFlowLab#2947 made the report shorten every home it prints, not only the process's,
and put the abbreviation before the length bound so the two reload sentences
keep their tail. The usual layout nests the DSH home under the OS home, so
that same longest-first rule turns `~/.dsh/bot/state.json` into
`~/state.json` and two different files can render alike. The page that
describes the report said none of this.

Describe the shipped behaviour only (main `2d81af36`); whether the nested
collapse stays is a separate decision. Also names the call site the
`Read-only` bullet still described as `clean(cut(answer, 200))`.

Fixes ThinkFlowLab#2953
Bot: Dev-5
@HugoXK

HugoXK commented Nov 12, 2026

Copy link
Copy Markdown
Contributor Author

@Birfy merge request — tip e83e302cc9ce2b3dab928daf35239ec306069670 (T0)

Docs-only: docs/subsystems/core-host.md +2/-1, no code, no tests, no client bundle. enqueue-guard at this tip reads enqueue #2955: no hold and the gate passes / no PASS needed: computed tier T0, 14 checks green, mergeable: clean, maintainer_can_modify: true, not draft, auto_merge: null.

What it records: the diagnostics report abbreviates every home it prints (OS home and this host's home) on the Read-only row and on entry lines, and it abbreviates before the length bound, so the trailing instruction survives; and in the normal layout the nested DSH home collapses onto ~, so two different files in one report can render identically — one follow-up will decide whether that collapse stays.

@github-actions github-actions Bot added the risk:T0 Risk tier T0 (docs only), set by the controller from the diff; never by hand label Nov 12, 2026
@Birfy
Birfy added this pull request to the merge queue Nov 12, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 12, 2026
@HugoXK

HugoXK commented Nov 12, 2026

Copy link
Copy Markdown
Contributor Author

@Birfy queue re-entry request — head e83e302cc9ce2b3dab928daf35239ec306069670 unchanged (T0, docs-only).

The queue entry 147d359287e6 (entered 07:07:36Z) left the queue because its Test run failed 07:10:31Z on a flake unrelated to this diff: run 43172999189, job 131030530798 —

test at test/room-external.test.js:83:1
✖ a stop is asked for on the protocol before the signal, and a shell is not a program (#198)
  Error: ENOTEMPTY, Directory not empty: '/tmp/flybot-external-aESfJ0'
      at rmSync (node:fs:1282:18)
      at TestContext.<anonymous> (core/test/room-external.test.js:27:40)   // the fixture's own t.after cleanup

On that same entry merge-gate, enqueue-guard, policy-sign, package and all four plugin jobs were green; tests-ok is red only through this job. This PR changes one file, docs/subsystems/core-host.md (+2/−1), and touches no core/**.

At the head: every check name green (latest run per name), mergeable: clean, auto_merge: null, maintainer_can_modify: true.

Please re-enqueue this same head (or re-run the entry). We keep our hands off the queue and auto-merge. The teardown race itself is now tracked as #2957.

@Birfy
Birfy added this pull request to the merge queue Nov 12, 2026
Merged via the queue into ThinkFlowLab:main with commit cdf74a5 Nov 12, 2026
15 checks passed
@Birfy
Birfy deleted the dev/5-docs-home-abbrev branch November 12, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:T0 Risk tier T0 (docs only), set by the controller from the diff; never by hand

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(subsystems): record what the diagnostics report abbreviates, and what a nested home now looks like

2 participants