Decode OSC 7501 program status reports #105
No reviewers
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis!105
Loading…
Reference in a new issue
No description provided.
Delete branch "vt/osc7501-decoder"
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?
First step of #67: a decode-only OSC 7501 (Program Status Protocol) decoder in
felis-vt. Nothing calls it yet, so there is no behavior change and no protocol doc. The support-matrix row and the reference/explanation twins land with the daemon records, when support becomes observable.What it does
felis_vt::program_status::parse_osc7501(body, Terminator)turns one sequence into aQuery, aReport, aClear { id }, or aDropped(reason). It implements spec revision 0.4 (2026-10-10). The issue was written against 0.3; 0.4 only adds optionalstates=/kinds=to the?reply and removes the terminfo section, so the decoder is unaffected.appfollowed by a valid one would pass.id: a malformed or over-limitiddrops the report instead of falling back to the root record.StateandKindare closed enums here; IPC will carry them as open strings. A new state from a later revision fails to compile until the daemon decides its lifetime.Not in this PR
The parser dispatches an OSC on any ESC, not only on ST, so
ESC ] 7501;state=done ESC [0mwould look complete. The decoder takes a terminator with no "interrupted" value. A separatefelis-vtparser PR will distinguish ST from an interrupting ESC before the grid wiring calls this decoder.Tests
program_statustarget with seeds; 200,000 runs, no panics.718bf1331c7fdeef30d1