Develop Icod.DCurses 1.4.0 interaction routing - #29
Merged
Merged
Conversation
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.
Develops
Icod.DCurses 1.4.0interaction routing from the publishedv1.3.0baseline.Objective
Add deterministic, application-owned interaction routing over the existing semantic input, geometry, panel, and Terminal ownership foundations: bounded interaction regions, deterministic hit testing, logical focus/traversal/repair, semantic key gestures and command identities, panel-aware precedence, and curses-shaped pointer preferences/leases.
The release deliberately does not become a widget framework, hidden event loop, automatic layout owner, callback dispatcher, or raw terminal protocol layer.
Qualified progress
d70b6a9892812a624c810ae115daaafd636d2192, workflow #722 /34712277620, all seven green.3da87891c88be225bbc4ac71312ecf66cdbee5ff, workflow #731 /34713008427, all seven green.137261e9417077734c0e4006cd3ea28920022f2b, workflow #736 /34718054041, all seven green.7ab6ab0ba20ac5e8e6107bccb13a7ce0cab5be02, workflow #740 /34720084187, all seven green.bf57ed9b87a40d762b969c09c88d44a0bbd0678b, workflow #744 /34720691390, all seven green.6652e211934256def436c032d0117aa24f803197, workflow #754 /34729934304, all seven green.83a636cf8b4192394cb6c25bf0b6322eb06003e4, workflow #763 /34732179437, all seven green.1fca652d9a7a6ba32ccf01274a7e4dff1135f785, workflow #765 /34732542836, all seven green.021a040d0a76bb168e3e88b0f71c4401baf3b10c, workflow #780 /34762612934, all seven green.69072508e90b3e21c6dfa58b277610e90867f683, workflow #785 /34763523520, all seven green.570715e0764f9791fe197462a953df6eccf6105a, workflow #797 /34773668892, all seven green withIcod.Terminal 1.13.0andIcod.TermInfo 1.12.0.1.4.0-rc.1head7f6bcedf70b9cd5cd15bf2a2a53437e23dac3c2fpassed workflow #802 /34774226736across all seven jobs after a test-only timeout hardening correction. Stable-source1.4.0then passed workflow #808 /34774590867; the final release-facing documentation head267f633e323f732ed041735210a86eda608a4697passed workflow #810 /34774819745across all seven jobs.The frozen 1.4 interaction API is:
T1405 adds the immutable
CursesKeyGestureidentity and terminal-independent matching semantics. T1406 addsCursesCommand, bounded local/global gesture registries, immutableCursesInteractionResult, and deterministic Text/Key/Paste/Mouse routing without application callbacks. T1407 adds the 30-value DCurses pointer-shape vocabulary, region/hit pointer preferences, and a DCurses lease wrapper which delegates reversible state ownership toIcod.Terminalwithout exposing Terminal pointer types publicly. T1408 proves resize/panel/lifecycle coherence. T1409 adds the public-DCurses-only interaction acceptance sample. T1410 freezes hot-path allocation/performance ceilings, maximum-capacity churn, deterministic replay, failure atomicity, and the no-callback/no-hidden-I/O boundary. T1411 completes the stable-API/package/docs/licensing regret review and refreshed dependency qualification without an API correction. T1412 promotes the accepted implementation/API through RC and stable-source identity and finishes exact-head release qualification.During RC qualification, Windows ARM64 exposed a nondeterministic acceptance-test timeout: one rich-input test reused a single five-second cancellation token across seven sequential event reads. The unchanged RC job passed on rerun, confirming no production regression; the test was then hardened to use one bounded timeout per read. No production implementation or public API changed as part of that correction, and the hardened final RC and stable-source matrices are fully green.
Release evidence
Icod.DCurses-Development-Roadmap.mdIcod.DCurses-1.1.0-to-1.4.0-Development-Roadmap.mdIcod.DCurses-1.4.0-Development-Roadmap.mddocs/Public-API-Fingerprint-1.4.jsondocs/T1401-Interaction-Contract-and-Public-API-Candidate.mddocs/T1405-Semantic-Keyboard-Gestures.mddocs/T1406-Command-Bindings-and-Structured-Routing.mddocs/T1407-Pointer-Shape-Integration.mddocs/T1408-Resize-Panel-Disposal-and-Lifecycle-Coherence.mddocs/T1409-Interaction-Acceptance-Sample.mddocs/T1410-Interaction-Performance-Allocation-and-Adversarial-Hardening.mddocs/T1411-Public-API-Package-Documentation-and-Regret-Gate.mddocs/T1412-RC-and-Stable-1.4.0-Closure.mdDevelopment sequence
Baseline and final source identity
v1.3.0resolves toc10ca043a666b85225f2d3b8955a1ac2075b0d31.Published 1.3 contract:
Final 1.4 source identity:
PR #29 final qualified head is
267f633e323f732ed041735210a86eda608a4697. It is release-ready source pending explicit merge approval. Merge,mainRelease qualification, tagv1.4.0, GitHub Release creation, and NuGet publication remain separate explicit actions.