task-43: the scene door is hung; synthesized touch is the bridge still owed
This commit is contained in:
parent
b2ce5d7cb0
commit
4476d48d56
1 changed files with 25 additions and 5 deletions
|
|
@ -279,11 +279,31 @@ it. See TASK-18.
|
|||
is unreachable. The engine owns shell geometry and publishes a region
|
||||
layout; inventing rectangles before it does would be a second, drifting idea
|
||||
of where the pill is. Wire it with the region layout, not before.
|
||||
- **Nothing dispatches `ToCompositor`.** The four touch intents round-trip and
|
||||
`touch_down` already takes `Origin::Agent`, so the receiving end is built —
|
||||
but the wire→compositor bridge is shell-host's. Annie's door is framed, not
|
||||
hung, and until it is she reaches touch only through uinput, which is the
|
||||
thing `input.rs` exists to replace.
|
||||
- ~~**Nothing dispatches `ToCompositor`.**~~ **Landed 2026-08-02** (`276bb3e`).
|
||||
`control.rs` carries `wire::ToCompositor` verbatim under a `scene` verb, and
|
||||
a test walks `verbs::INTENTS` asserting every advertised intent parses
|
||||
through the socket — an intent the table advertises and the door cannot take
|
||||
is a verb she cannot reach.
|
||||
|
||||
Real: `focus`, `close`, `place`, `pose`, `raise`, `lower`, `set_visible`,
|
||||
`expose`. Pose and exposure are not settings nothing draws — the render
|
||||
applies scale about the **pivot** (a shrink happens in place instead of
|
||||
collapsing toward the top-left) and exposure as **alpha**, which the render
|
||||
path was already passing `1.0` into.
|
||||
|
||||
The authority split lives in the dispatch rather than in a comment: geometry
|
||||
is honoured with no clamping (a window half off the screen is composing, not
|
||||
erring); exposure is clamped *down* by the gate and the reply carries what
|
||||
was **granted**, so a caller cannot paint against a level it did not get;
|
||||
`RequestLock`/`LockPresented` are refused explicitly so the refusal reads as
|
||||
a decision rather than an oversight.
|
||||
|
||||
Still refused with `unavailable`, and saying what is missing: navigation
|
||||
(policy built in `navigation.rs`, no bridge) and **synthesized touch** —
|
||||
`input::Origin::Agent` and the disjoint slot namespace are built and nothing
|
||||
feeds them, so she still reaches touch only through uinput, which is the
|
||||
thing `input.rs` exists to replace. That is the highest-value remaining
|
||||
bridge.
|
||||
- One refusal arm in `input::Router::resolve` is unreachable, pinned by
|
||||
`the_lock_claims_a_furniture_hit_before_the_reveal_check_can`. It goes live
|
||||
the moment any furniture is `Credential` or a step-up reveals chrome on a
|
||||
|
|
|
|||
Loading…
Reference in a new issue