docs: name the Point-diagnostic verb class #163
No reviewers
Labels
No labels
priority/P0
priority/P1
priority/P2
release/v0.1.0
status/blocked
status/planned
type/bug
type/design
type/test-gap
type/tracker
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!163
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/point-diagnostic-145"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #145.
Two changes, one contract: the exit code a caller sees is a function of
error.kind, and every wire refusal reaches that kind through one table.cli: map every wire refusal through one ErrorKind table—from_attach_failureandfrom_refusaljoinfrom_stream_reasonas the whole wire-to-kind surface, replacing the split decisions incli_sessions, the bridge,conn.rsandcli_bridge. The kinds are declared through a macro that emits the enum, the roster, the tokens and the exit map together, and a golden fixture (crates/felis-cli/tests/golden/error_kinds.txt) is rendered from those maps plusexit_code.at_capacity_detailwidens torefusal_detailso the dial sites can reach the reason, not just the capacity detail.docs: name the Point-diagnostic verb class—config check,config show-effectiveanddoctorread exit1as "here are the diagnostics you asked for", which is a different answer fromsessions list's1. They get their own row in the classification and exit-code tables instead of a paragraph after the fact.daemon statusgains the sentence sayingworker_threadsis runtime identity, not a resource row.Doc cascade
docs/reference/cli.md: Point-diagnostic row in the verb-classification and exit-code tables; the bridge's pipe-failure exception stated where the rule is; thedaemon statusshape note.docs/explanation/architecture/control-surfaces.md: the argument for the new class.skills/felis/SKILL.md: the scripting example follows the reference's exit table.tests/cli_exit_table.rs: a workspace guard checks the reference's two kind lists against the golden the CLI renders, so the frozen table is derived rather than hand-synced.Verified: just check green (fmt, clippy, nextest, deny, proto-compat); reviewed by pi luna + pi sol; docs proofread by Gemini gemini-3.8-flash-high
Deferred
CHANGELOG.mdentry — no user-visible contract change: same kinds, same exit codes, same JSON.ErrorKind::ALLis#[cfg(test)]and hand-listed — a kind missing from it is caught by the count assertion inevery_kind_is_listed_once.