docs(mc-host): document managed lifecycle architecture - #67
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Review summaryThis PR is docs + generated task-tracking data only ( Doc-quality notes below (left as inline comments too):
Everything else (payload_manifest_digest now required + validated, the two-lock lifetime-fence model, the |
| @@ -518,7 +531,23 @@ Both languages MUST produce identical bytes: UTF-8 pass-through for non-ASCII, t | |||
|
|
|||
| ### 7.6 `host.shutdown` | |||
There was a problem hiding this comment.
This section heading is still ### 7.6 \host.shutdown`but now documentshost.statusfirst (lines 534-543) before getting tohost.shutdown. Consider retitling to ### 7.6 `host.status` and `host.shutdown`so the heading matches the content, and so a reader scanning the TOC/section list can findhost.status`'s home.
| ### 7.4 Operation classification | ||
|
|
||
| `route.open`, `catalog.list`, `host.shutdown` (Section 7.6), and `transport.negotiate` (Section 7.7) are the only required channel-0 operations. Every other operation receives terminal `unsupported_operation`; host stays connected if framing remains valid. `transport.activate` and `transport.commit` are candidate-channel-only (Section 7.7): on a bootstrap connection they are unrecognized operations and receive terminal `unsupported_operation` like any other. A client health operation MUST NOT proxy handler health, which remains host-internal. | ||
| `route.open`, `catalog.list`, `host.shutdown` (Section 7.6), `host.status`, and `transport.negotiate` (Section 7.7) are the only required channel-0 operations. Every other operation receives terminal `unsupported_operation`; host stays connected if framing remains valid. `transport.activate` and `transport.commit` are candidate-channel-only (Section 7.7): on a bootstrap connection they are unrecognized operations and receive terminal `unsupported_operation` like any other. `host.status` reads the last completed host-owned health snapshot; it never invokes a handler callback on the requesting connection and exposes only closed component states and sanitized metrics, never handler detail text. |
There was a problem hiding this comment.
route.open, catalog.list, and transport.negotiate each cite their defining section in this sentence, and so does host.shutdown (Section 7.6), but the newly-added host.status has no section pointer even though it's documented in that same Section 7.6. Suggest host.status (Section 7.6)`` for consistency.
| | `reason` | Meaning | | ||
| | --- | --- | | ||
| | `unavailable` | an installed, statically eligible non-TCP offer is dynamically unavailable: provider readiness (`Recovering`/`Quarantined`) or admission pressure. Permanent absence of a provider and statically ineligible offer parameters are NOT `unavailable`; they select TCP with no `reason` | | ||
| | `unavailable` | no installed provider serves an offered non-TCP transport | |
There was a problem hiding this comment.
This flattens the previous distinction between dynamic unavailability (provider Recovering/Quarantined, admission pressure) and permanent absence (previously: selects TCP with no reason at all), and the paragraph below no longer mentions the client's "automatic re-upgrade probe" that used to be authorized specifically by this unavailable reason. Since this is a docs-only PR, can you confirm the re-upgrade-probe behavior was actually removed from the client/host implementation (in an earlier layer of this stack) rather than just undocumented here? If the probe still exists in code, this doc change would silently misdocument real behavior.
Summary
Documents the shipped
ck-mc-hostlifecycle owner, fixed three-component composition, immutable Broca closures, managed demand behavior, CLI commands, and Synapse package contract. Commits the Beads task export used for this work.Generated machine-specific mc-host qualification evidence is now ignored:
docs/evidence/mc-host-installed-release-evidence.jsondocs/evidence/mc-host-release-qualification.jsondocs/evidence/mc-host-synapse-smoke.jsonVerification
bun run test:release: 136 passedcargo test -p mc-host --test protocol_vectors: 18 passedgit diff --checkStack
Layer 9 of 9 above #46. Parent: #66.