docs(spec): reconcile spec with shipped wire + front-door README + ADR-0034#139
Merged
Conversation
…E + ADR-0034 Make the spec docs match the shipped code and refresh the project front door, no Rust changes. Spec/code coherence: - CONCEPTS.md: protocol version 0.3.0 -> 0.5.0 (matches PROTOCOL_VERSION in phux-protocol) and drop the dead "current reality" paragraph now that the collection-tier dissolution has shipped. - proto.md: version 0.4.0 -> 0.5.0; document a leaf str/bytes length prefix as u32 big-endian (matching Encoder::write_bytes / Decoder::read_bytes), distinct from the TLV envelope's varint; reconcile the ErrorCode catalog with the #[non_exhaustive] shipped enum (OUT_OF_TIER and UNSAFE_PASTE marked reserved/not-yet-emitted; 102/103 carry the shipped SESSION_NOT_FOUND / WINDOW_NOT_FOUND names). - appendix-encoding.md: add the u32-BE leaf length-prefix rule (§2.1) and clarify the varint-vs-u32 split. - CHANGELOG.md: 0.5.0-draft.7 clarification entry; core version stays 0.5.0 so spec-version-sync stays green. No wire bytes change. ADRs: - ADR-0015 / ADR-0021: amendment/superseded banners pointing at ADR-0030 (L2 collection tier dissolved), matching the ADR-0002/0006/0007 convention. - ADR-0034 (Proposed, design only): kitty graphics / image passthrough through the cell renderer. Server forwards APC _G verbatim but the client re-renders cells only, so images drop; prefer the Unicode-placeholder approach with an APC re-emit fallback, with snapshot-replay and pixel-size prerequisites noted. - ADR/README.md: add the missing 0031-0034 index rows. README: top-tier OSS front door keeping the deadpan/peer-thesis voice and the "What phux won't do" section: centered banner with logo placeholder, only badges that resolve today (CI + license), HTML-comment TODOs for crates.io/version/brew, demo placeholder, and honest install tiers (from source today; prebuilt + Homebrew marked coming; no fake cargo install). architecture/module-structure.md: vocabulary note aliasing the legacy PANE_* frame names to the canonical TERMINAL_* frames. Co-Authored-By: Claude Opus 4.8 (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.
Docs/markdown only — no Rust changes. Brings the spec docs back into agreement with the shipped code, refreshes the project front door, and adds one design ADR.
Spec / code coherence
0.3.0->0.5.0(verified againstPROTOCOL_VERSIONincrates/phux-protocol/src/lib.rs). Dropped the now-dead "current reality" paragraph — the collection-tier dissolution has shipped, so the leaked-verb caveat no longer holds.0.4.0->0.5.0. Documented the leafstr/byteslength prefix as au32big-endian count (matchingEncoder::write_bytes/Decoder::read_bytes), kept distinct from the varint the field-tagged TLV envelope uses. Reconciled theErrorCodecatalog with the shipped#[non_exhaustive]enum:OUT_OF_TIER = 5andUNSAFE_PASTE = 203marked reserved / not-yet-emitted;102/103now read under the shippedSESSION_NOT_FOUND/WINDOW_NOT_FOUNDnames.u32-BE leaf prefix vs the envelope varint.0.5.0-draft.7clarification entry. Core version stays0.5.0, sospec-version-syncstays green. No wire bytes change — this corrects the spec to the code.ADRs
APC _Gverbatim (phux-server::downsample::handle_apc) but the client re-renders cells only (attach::render), so images drop on repaint/reattach. Prefers the Kitty Unicode-placeholder approach with an APC re-emit fallback; notes the snapshot-replay and pixel-size-reporting prerequisites. No code in this ADR.0031-0034index rows.README
Top-tier OSS front door in the existing deadpan / peer-thesis voice: centered banner with a logo placeholder (HTML comment), wordmark + tagline, only badges that resolve today (CI + license), HTML-comment TODOs for crates.io / version / Homebrew, a demo placeholder pointing at
docs/assets/demo.gif, and honest install tiers — from source works today, prebuilt binary and Homebrew marked coming, no fakecargo install. The "What phux deliberately won't do" section is preserved.Architecture (vocabulary only)
PANE_*frame names to the canonicalTERMINAL_*frames per ADR-0016.Verification
just docs-check: green (83 files, 0 violations).PROTOCOL_VERSION,write_bytes/read_bytes(u32 BE), and theErrorCodeenum were read directly to confirm the spec now matches the shipped bytes.crates/**,docs/consumers/tui.md, ordocs/CONFIG.mdtouched.🤖 Generated with Claude Code