Repository navigation
host: the diagnostics report names the team file it counts - #2396
Conversation
…Lab#2394) The report behind Report on GitHub counts the team and then says nothing about the file that team is saved in. It now prints `state file:` right after the table, built from lstat alone: size and last write for a plain file, a named absence before the first save, and one refusal line for a directory, a link or a file with a second name. state.json holds the members, the messages and the saved keys, so the report describes it and never opens it.
|
Verdict: PASS at b33e1fb Ran at this tip: Both runs in Review at the tip
Not run: the smoke test ( |
Fixes #2394
Owner: Dev-1
Reviewer: Birfy
What changed
The diagnostics report behind Settings → Feedback's Report on GitHub counted the team (Bots, Main Bots, group chats) and then said nothing about the file that team is saved in.
state file:now follows that table:<path, home as ~> (<N> bytes, last written <ISO UTC>)for a plain file,none yet (this computer has not saved the team)before this computer has one, andnot a plain file (nothing is read or written)when the path is a directory, a link, a file with a second name (nlink > 1) or a check that cannot run.The line is built from
lstatalone.state.jsonholds the members, the messages and the saved keys, so the report may describe the file and never opens or reads it; the new test writes a 0-byte, mode-000state.jsonand still gets its size and mtime back..dsh/state.jsongoes through the same home redaction, a read-only window draws the same line (it is read information, not a write action), andstate journal:,journal file:and theRead-onlyrow keep their wording, position and values — the two older journal tests and the whole previous suite are untouched and green.cleanPathandjournalFilecollapse into onefileFact(path, { missing }), so the single plain-leaf rule (real/ absent / not-a-plain-leaf) has one implementation instead of two.Ran
core/src/host/diagnostics.js+ this branch's test file →55 tests / 51 pass / 4 fail(each new case+ undefinedwhere the line was expected); fix in place →55 tests / 55 pass / 0 failTZ=UTC ARCH_DOCS_BASE=be10ea26 npm run verify→ exit 0; 4813 tests, 0 fail, 0 cancelled (core 2826, social 570, tree 132, timeline 140, workflow 411, root 671, interop 37, live-e2e 26);arch-docs: OK (6 changed file(s)); core lint 76 warnings / 0 errorsnode scripts/ds-bot-patches.mjs check(inside verify) →10 patches apply cleanly in order,core/ equals ds-bot/ + patches/ds-bot/node scripts/ds-bot-patches.mjs canonical(inside verify) →generate is a no-opnode core/scripts/build-client.mjs --check(inside verify) → green (no client file touched)node scripts/ds-bot-patches.mjs generatetwice → same bytes both runs (00018e6bdb23f0d1b3aa1efb62f7827647932ee54bc90fbc8747207605aeccc15907,0007fd4a4ff3b205b23299b5401fb7503d88dc1869d4142caef9651a42ca4e347d92),git status --porcelainempty after eachnode .github/scripts/changelog.mjs check→25 fragment(s) in changelog.d/ are well formednode .github/scripts/check-empty-catch.mjs→ exit 0node .github/scripts/check-mojibake.mjs --check→0 occurrences of U+FFFD in 1453 text file(s)node .github/scripts/risk-gate.mjsjudge over the livebe10ea26rules and this diff →risk-tier: T2(128 changed lines, 4 non-generated files)Not run
dev/bench.sh smoke …): needs a../deepseek-harnesscheckout this bench does not have; the change is one report line incore/src/host/diagnostics.jsand no host wiring.Tip
Tip:
b33e1fb8aa9ec26882e087bf2df40f78f26e6399(remote refdev/1-state-file; the push path built it from the local verified commit8fe191e6…with the same treedc2cac09…)Tree:
dc2cac093779114f9219756c6757c9f0ff5a0570Base:
be10ea26a375920d0969366051c7f54870c765f5Diff: 6 files, +236/−31 (4 hand-written, 128 changed lines, +115/−13; 2 generated, +121/−18)
Tier: T2 —
risk-tier: T2; basis: core/src/host/diagnostics.js=T2, changelog.d/2394-state-file.fixed.md=T1, core/test/diagnostics.test.js=T1, patches/ds-bot/0001-core-fixes.patch=T1, patches/ds-bot/0007-version-and-tooling.patch=T1, docs/subsystems/core-host.md=T0Files
changelog.d/2394-state-file.fixed.mdcore/src/host/diagnostics.jscore/test/diagnostics.test.jsdocs/subsystems/core-host.mdpatches/ds-bot/0001-core-fixes.patchpatches/ds-bot/0007-version-and-tooling.patchCheckpoint
{
"pr": 2396,
"claim": "Dev-1",
"issue": 2394,
"summary": "The Report on GitHub output counted the team and said nothing about the file that team is saved in.
state file:now follows the table, with size and last write for a plain file, a named absence before the first save, and one refusal line for a directory, a link or a file with a second name. The line is built fromlstatalone, so the report describes state.json without ever opening it, and a read-only window draws the same line.","files": [
"changelog.d/2394-state-file.fixed.md",
"core/src/host/diagnostics.js",
"core/test/diagnostics.test.js",
"docs/subsystems/core-host.md",
"patches/ds-bot/0001-core-fixes.patch",
"patches/ds-bot/0007-version-and-tooling.patch"
],
"checks": {
"ran": "TZ=UTC ARCH_DOCS_BASE=be10ea26 npm run verify",
"result": "green",
"at": "b33e1fb8aa9ec26882e087bf2df40f78f26e6399"
},
"next": "none — ready for review"
}