docs: state what the attach, placement, and icon-name code actually does #353
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
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!353
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/issue-349-reference-vs-code"
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?
Reference-only corrections. Each of the three claims in #349 is resolved the way the triage comment recommends: the reference states what the code does, and no behavior changes.
1.
SessionAttach.id_prefix(docs/reference/ipc.md)The
Attachbullet said a prefix that "is not 1-32 hex digits" is refused at decode and that an attach, unlike theOpsverbs, "cannot answer a malformed prefix withNoMatch". Neither holds:attach_target_from_wire(crates/felis-protocol/src/convert/session.rs) buildsAttachTarget::Prefixfrom the wire string unvalidated, andtake_attach_handle(crates/felis-daemon/src/serve.rs) resolves it withfelis_protocol::session_prefix::resolve_session_prefix, which returnsResolvedId::NoMatchfor an empty, overlong, or non-hex prefix. The bullet now says the daemon answersAttachFailure::NoMatch, on the same resolver everyOpsprefix field uses.The unset-target half of the sentence is kept:
attach_target_from_wiredoes answer a missingtargetwithWireError::MissingOneof, pinned byan_attach_naming_no_target_at_all_is_rejected.No explanation page repeated the old rationale (grep for "hex digits" and "NoMatch" under
docs/finds only unrelated pages).2. Kitty placement
X,Y(docs/reference/protocols/kitty-graphics.md,support-matrix.md)upsert_placement(crates/felis-daemon/src/graphics.rs) readsc,r,z,C,q,p, and the lowercase source rectangle, andfelis_grid::images::Placementhas no destination-offset field; uppercaseX/Yare read only bya=cframe composition, as the source offset. The "Pixel offset within destination cell" line is gone, replaced by a sentence stating that the offsets parse and are ignored (the image lands at the cell origin) and pointing at thea=cuse of the same pair.The
a=prow stays ✅ — the action works — and the Display / lifecycle table gains anX=/Y=row marked ⚠️, which is the legend's marker for consumed without effect.3. OSC 1 icon name (
docs/reference/protocols/support-matrix.md)crates/felis-grid/src/sink.rsrecords the icon name andCSI 20 treports it back on the session's own PTY, butfelis.protohas no icon field (onlytitle, whichGridTitleandSessionInfocarry) and no client crate consumes one, so nothing is ever displayed. The row moves from ✅ to ⚠️ and names the two halves: recorded and answered byCSI 20 t, not carried to a client.Verified
just fmt-check— cleanjust lint— cleanjust prose-check— 0 hitsjust docs-links— 0 errorsNo Rust, proto, config, or CLI surface changed, so
just proto/just schema/just golden/just testdo not apply.Closes #349