docs: correct the local image path to the socket #203

Merged
natsukium merged 1 commit from docs/shm-contradiction-194 into main 2026-09-07 22:01:16 +09:00
Owner

Fixes #194.

The IPC explanation justified deferring heavy-payload rendering suppression with "locally, image bytes already travel over shm", which the architecture overview's "No shared memory" section flatly contradicts and the code never implemented. Daemon-to-client pixels are ImageMsg::Chunk frames copied into every window subscriber's socket; the only shm in felis is the Kitty t=s producer-to-daemon transfer, which ends at the image store. The deferral itself survives, but now rests on an unmeasured local cost rather than an imagined zero one (principle 2).

Doc cascade: docs/explanation/architecture/ipc.md drops the false shm premise and names the real local cost; docs/explanation/architecture/overview.md makes the "No shared memory" section state where the one shm path begins and ends, so the two pages can no longer be read as contradicting each other. Docs-only change — no reference twin states the corrected fact, and no wire or config surface moves.

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

Follow-ups

  • #200 Issue #120 still rests on the false local-shm premise corrected by #194

Deferred

  • Apply the correction to the body of issue #120 (drop the "locally, image bytes travel over shm and the waste is marginal" clause; keep the deferral; add the same-host one-socket-copy-per-image cost as the second number to measure). Reason: both fj write paths to #120 were blocked by the local permission classifier, not by Forgejo. The prepared replacement body and an equivalent comment are staged locally and can be applied with one fj call; tracked as #200. #120's own scope is unchanged.
Fixes #194. The IPC explanation justified deferring heavy-payload rendering suppression with "locally, image bytes already travel over shm", which the architecture overview's "No shared memory" section flatly contradicts and the code never implemented. Daemon-to-client pixels are `ImageMsg::Chunk` frames copied into every window subscriber's socket; the only shm in felis is the Kitty `t=s` producer-to-daemon transfer, which ends at the image store. The deferral itself survives, but now rests on an unmeasured local cost rather than an imagined zero one (principle 2). Doc cascade: `docs/explanation/architecture/ipc.md` drops the false shm premise and names the real local cost; `docs/explanation/architecture/overview.md` makes the "No shared memory" section state where the one shm path begins and ends, so the two pages can no longer be read as contradicting each other. Docs-only change — no reference twin states the corrected fact, and no wire or config surface moves. 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 ## Follow-ups - #200 Issue #120 still rests on the false local-shm premise corrected by #194 ## Deferred - Apply the correction to the body of issue #120 (drop the "locally, image bytes travel over shm and the waste is marginal" clause; keep the deferral; add the same-host one-socket-copy-per-image cost as the second number to measure). Reason: both `fj` write paths to #120 were blocked by the local permission classifier, not by Forgejo. The prepared replacement body and an equivalent comment are staged locally and can be applied with one `fj` call; tracked as #200. #120's own scope is unchanged.
docs: correct the local image path to the socket
All checks were successful
darwin / detect relevant changes (pull_request) Successful in 3s
darwin / build felis (aarch64-darwin) (pull_request) Has been skipped
pr / nix flake check (pull_request) Successful in 25s
pr / cargo build / clippy / test / deny (pull_request) Successful in 1m56s
pr / wire schema is compatible with the base (pull_request) Successful in 11s
pr / frontend smoke (x86_64-linux) (pull_request) Successful in 1m4s
pr / publish felis (x86_64-linux) (pull_request) Has been skipped
windows / detect relevant changes (pull_request) Successful in 3s
darwin / darwin docs-only no-op (pull_request) Successful in 0s
windows / cargo clippy (Windows cross) (pull_request) Has been skipped
windows / cargo nextest (Windows) (pull_request) Has been skipped
windows / frontend smoke (Windows) (pull_request) Has been skipped
windows / package felis (x86_64-pc-windows-msvc) (pull_request) Has been skipped
windows / windows docs-only no-op (pull_request) Successful in 0s
darwin / detect relevant changes (push) Successful in 3s
darwin / build felis (aarch64-darwin) (push) Has been skipped
pr / nix flake check (push) Successful in 5s
pr / cargo build / clippy / test / deny (push) Successful in 1m39s
pr / wire schema is compatible with the base (push) Successful in 8s
pr / frontend smoke (x86_64-linux) (push) Successful in 5s
windows / detect relevant changes (push) Successful in 3s
windows / cargo clippy (Windows cross) (push) Has been skipped
windows / cargo nextest (Windows) (push) Has been skipped
windows / frontend smoke (Windows) (push) Has been skipped
windows / package felis (x86_64-pc-windows-msvc) (push) Has been skipped
darwin / darwin docs-only no-op (push) Successful in 0s
pr / publish felis (x86_64-linux) (push) Successful in 12s
windows / windows docs-only no-op (push) Successful in 0s
0a51853f29
The IPC explanation justified deferring heavy-payload suppression with
"locally, image bytes already travel over shm", which the architecture
overview's "No shared memory" section flatly contradicts and the code
never implemented: daemon-to-client pixels are ImageMsg::Chunk frames
copied into every window subscriber's socket, and the only shm in felis
is the Kitty t=s producer-to-daemon transfer that ends at the image
store. A downstream client author was already sent looking for a local
shm path that does not exist.

The deferral survives on its own terms, but resting on an unmeasured
local cost rather than an imagined zero one, per principle 2.

Refs #194
natsukium deleted branch docs/shm-contradiction-194 2026-09-07 22:01:17 +09:00
Sign in to join this conversation.
No description provided.