docs: bring the usage docs in line with the quality-run behaviour changes - #208
Merged
zoza1982 merged 1 commit intoSep 9, 2026
Merged
Conversation
…nges The 15 fix PRs each carried their own CHANGELOG entry, RFC updates and rustdoc, per the per-change rule. What none of them could carry well is the README's usage prose: it is cross-cutting, and fifteen fragments of it would have read worse than one pass. This is that pass. README: - **Transfers.** What a copy does and does not carry — symlinks and special files are skipped, a move never deletes what it did not copy, the destination is replaced atomically via a `.part` sibling (and what to do if you find one), both panes on one directory is refused. Quitting during a transfer now confirms. - **Capability gating.** Operations a backend cannot perform are refused before you commit to them, rather than failing afterwards. - **SSH host keys** — an entirely new section, and the largest gap: the policy table, and why "accept-new" means a host you hold *no* key for rather than a key you have not seen. That distinction is the vulnerability #198 closed, so it is documented rather than left implicit. Also covers `@revoked`/`@cert-authority`/wildcards/hashed entries, the algorithm preference, `~/.ssh` permissions, and the known gap that a rejected key still reports as a generic connection failure. - **Marks** — `Space`/`Insert`, that operations act on them, and that they clear when the listing is replaced (with the reason). - **AI assistant** — the confirm gate now shows the call that will actually run beneath each step's description, and why reviewing only the description is approving a claim rather than an action. LLD §3.3 gains how the UI actually reads capabilities and the one-directional rule; §5 gains the `Runtime`/`RuntimeCtx` split and the reap ordering invariant, including the one event that deliberately does not reap. IMPLEMENTATION_PLAN records the quality run as the current phase and adds a "Known gaps" row, so what is still open is on the dashboard rather than only in the report. Every factual claim was checked against the code rather than from memory — key bindings against `keymap.rs`, the plan overlay's hint string and bulk-approve rule against `render.rs`, the SSH policy names against `connect/mod.rs`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW
zoza1982
added a commit
that referenced
this pull request
Sep 9, 2026
…nges (#208) The 15 fix PRs each carried their own CHANGELOG entry, RFC updates and rustdoc, per the per-change rule. What none of them could carry well is the README's usage prose: it is cross-cutting, and fifteen fragments of it would have read worse than one pass. This is that pass. README: - **Transfers.** What a copy does and does not carry — symlinks and special files are skipped, a move never deletes what it did not copy, the destination is replaced atomically via a `.part` sibling (and what to do if you find one), both panes on one directory is refused. Quitting during a transfer now confirms. - **Capability gating.** Operations a backend cannot perform are refused before you commit to them, rather than failing afterwards. - **SSH host keys** — an entirely new section, and the largest gap: the policy table, and why "accept-new" means a host you hold *no* key for rather than a key you have not seen. That distinction is the vulnerability #198 closed, so it is documented rather than left implicit. Also covers `@revoked`/`@cert-authority`/wildcards/hashed entries, the algorithm preference, `~/.ssh` permissions, and the known gap that a rejected key still reports as a generic connection failure. - **Marks** — `Space`/`Insert`, that operations act on them, and that they clear when the listing is replaced (with the reason). - **AI assistant** — the confirm gate now shows the call that will actually run beneath each step's description, and why reviewing only the description is approving a claim rather than an action. LLD §3.3 gains how the UI actually reads capabilities and the one-directional rule; §5 gains the `Runtime`/`RuntimeCtx` split and the reap ordering invariant, including the one event that deliberately does not reap. IMPLEMENTATION_PLAN records the quality run as the current phase and adds a "Known gaps" row, so what is still open is on the dashboard rather than only in the report. Every factual claim was checked against the code rather than from memory — key bindings against `keymap.rs`, the plan overlay's hint string and bulk-approve rule against `render.rs`, the SSH policy names against `connect/mod.rs`. Claude-Session: https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
zoza1982
added a commit
that referenced
this pull request
Sep 9, 2026
) * docs(review): record the 2026-09-09 whole-workspace quality review The findings the current run of fixes comes from, kept in the repo so the ones we did not act on are visible rather than lost in a chat log. Method: 9 reviewers in parallel — software-architect over the whole workspace, qa-engineer over the app half and the data half, bug-bot over six crate partitions — each briefed to judge against a top-notch-software bar rather than "it compiles and CI is green". Every high finding and the first 14 mediums then went to an independent skeptic told to refute it; only what survived is marked confirmed, and the skeptics corrected severity on 17 of them. Remaining mediums and all lows are unchallenged reviewer claims and are labelled as such. 107 raw findings, 98 after folding cross-lens duplicates: 15 confirmed high, 16 confirmed medium, 53 unverified medium, 14 low. Nothing was refuted. The report groups them by theme, records each verifier's own reasoning, and ends with nine improvement tracks sized as PRs. Tracks A (transfer-engine data loss) and B (mock fidelity) are landing now; the rest are the backlog. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW * docs(review): record which PRs closed which findings The report was written before the fix run. Adding the outcome so it reads as a record of what was found *and done*, not a standing backlog — and so the findings that remain open are visibly the ones nobody has acted on. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW * docs: bring the usage docs in line with the quality-run behaviour changes (#208) The 15 fix PRs each carried their own CHANGELOG entry, RFC updates and rustdoc, per the per-change rule. What none of them could carry well is the README's usage prose: it is cross-cutting, and fifteen fragments of it would have read worse than one pass. This is that pass. README: - **Transfers.** What a copy does and does not carry — symlinks and special files are skipped, a move never deletes what it did not copy, the destination is replaced atomically via a `.part` sibling (and what to do if you find one), both panes on one directory is refused. Quitting during a transfer now confirms. - **Capability gating.** Operations a backend cannot perform are refused before you commit to them, rather than failing afterwards. - **SSH host keys** — an entirely new section, and the largest gap: the policy table, and why "accept-new" means a host you hold *no* key for rather than a key you have not seen. That distinction is the vulnerability #198 closed, so it is documented rather than left implicit. Also covers `@revoked`/`@cert-authority`/wildcards/hashed entries, the algorithm preference, `~/.ssh` permissions, and the known gap that a rejected key still reports as a generic connection failure. - **Marks** — `Space`/`Insert`, that operations act on them, and that they clear when the listing is replaced (with the reason). - **AI assistant** — the confirm gate now shows the call that will actually run beneath each step's description, and why reviewing only the description is approving a claim rather than an action. LLD §3.3 gains how the UI actually reads capabilities and the one-directional rule; §5 gains the `Runtime`/`RuntimeCtx` split and the reap ordering invariant, including the one event that deliberately does not reap. IMPLEMENTATION_PLAN records the quality run as the current phase and adds a "Known gaps" row, so what is still open is on the dashboard rather than only in the report. Every factual claim was checked against the code rather than from memory — key bindings against `keymap.rs`, the plan overlay's hint string and bulk-approve rule against `render.rs`, the SSH policy names against `connect/mod.rs`. Claude-Session: https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
One coherent pass over the user-facing docs for the behaviour the 15 fix PRs changed.
Why
Each of those PRs carried its own CHANGELOG entry, RFC updates and rustdoc, per §5. What none of them could carry well is the README's usage prose — it is cross-cutting, and fifteen fragments of it would read worse than one pass. So there was a real gap: a user reading the README today would not learn that a tree copy skips symlinks, that
qnow asks during a transfer, or anything at all about SSH host-key policy.How
README:
.partsibling and what to do if you find one left behind, both panes on one directory refused. Quitting during a transfer confirms.accept-newmeans a host you hold no key for rather than a key you have not seen: that distinction is the vulnerability fix(ssh): honour every known_hosts entry form when deciding a host is pinned #198 closed, so it is stated rather than left implicit. Covers@revoked/@cert-authority/ wildcards / hashed entries, the algorithm preference,~/.sshpermissions, and the known gap that a rejected key still reports as a generic connection failure.Space/Insert, that operations act on them, and that they clear when the listing is replaced (with the reason, because otherwise it reads as a bug).LLD — §3.3 gains how the UI reads capabilities and the one-directional rule; §5 gains the
Runtime/RuntimeCtxsplit and the reap-before-updateordering invariant, including the one event that deliberately does not reap.IMPLEMENTATION_PLAN — records the quality run as the current phase and adds a Known gaps row, so what is still open sits on the dashboard rather than only in the report.
docs/README.md — indexes
reviews/.Testing
Plus a relative-link check across the four edited documents — 0 broken (which is how I caught that
docs/reviews/only exists on #197, hence the stacking).Every factual claim was checked against the code, not written from memory: key bindings against
keymap.rs(Space/Insert→ToggleMark,Ctrl-A→AiPropose), the plan overlay's hint string and bulk-approve rule againstrender.rs, the SSH policy names and defaults againstconnect/mod.rs, and that marked entries drive operations againstop_targets.Checklist
main(stacked on docs(review): record the 2026-09-09 whole-workspace quality review #197)cargo fmt/clippy/test/doc— no code changed; test and doc run cleanCHANGELOG.md— intentionally skipped: the behaviour entries already landed with their own PRs; duplicating them here would double-report every changeDeliberate omissions
.parttemp-file note is deliberately in the user docs rather than only the CHANGELOG: it is the one change that leaves something visible on disk, and a user finding.notes.txt.cairn-1234-0.partdeserves to know what it is.Risk & rollback
Documentation only. The real risk is describing behaviour that does not merge — hence the stacking note at the top. Rollback: revert the single commit.
🤖 Generated with Claude Code
https://claude.ai/code/session_01SM3dDrioC5KntqjB6WDqjW