Repository navigation
Conversation
…anding The impact rule was "pre-step downward velocity >= 1.2 m/s", so a ball thrown sideways at a wall or a target never fired On Impact. A contact now also counts when the two bodies close along the contact normal (rapier's manifold) at >= 1.2 m/s. The downward test stays as its own channel with its own cooldown: On Impact gains `direction: any | down` — new nodes are seeded 'any', a node saved without the key reads 'down' (param `legacy`, honoured by the Flow panel), so old scenes fire exactly as before; emitters' "On impact" keep the landing rule. impactSpeed.js is the leaf (closingSpeed / impactStrengthFor), unit-tested; e2e flow-impact-any (red on 4cd3daf: the 'any' nodes never fire on the wall/target hit). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… 150 % on the folded N6 Profile circle (53-int Q5): it opened on focus, so Tab walked the whole panel. Now the ARIA menu-button pattern: Tab passes it, Enter / Space / Down open it with focus on the first row, Escape closes and returns focus to the circle. Compact header (53-int Q4): at a large UI scale a WindowChrome header wrapped before it ellipsized (flex lines break on hypothetical sizes). The title enters line-breaking at its minimum, header buttons stop growing at 120 %, the panel icon and the back label's text step aside (still the accessible name). The object list header's shed thresholds follow the scale and its search narrows. Settings / Inspector / object list headers are one row at 150 % folded. Rows: a11y-axe (profile menu keys + axe on the open panel), a11y-scale (three one-row header checks on the folded N6 at 150 %). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…le, HUD Rows, HUD Set Input; HUD Timer honours start Orchestrator add (docs-1 Q1). flowSockets typed these inputs and the runtime read them, but the cards drew no socket, so they could not be wired by hand (hudActions' own 'trigger' wires had nowhere to land): Set Game State (trigger) and Set Variable (trigger, value) gain catalog `inputs`; HudNode draws HUD Rows (trigger, text) and HUD Set Input (trigger, value, options). HUD Timer drew `start` but triggerStampFor only counted an unnamed/`trigger` wire — it now takes `start` as an alias. The audit (scripts/graph-audit.cjs) gains an undrawn-input guard for the two generic cards; it found Device Param (value) and Note Trigger (trigger, note, velocity) with the same gap, fixed here too. Unit guard red on 257e8f6 with exactly those six; e2e flow-sockets-wire wires each by mouse and checks the effect (11 red on 257e8f6). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…r start, not the clock's origin docs-1 CORE BUGS (verified): the rotor's ramp and an autostart HUD Timer both measured from t = 0 of the clock they are handed, and the synced clock is seconds since UTC midnight — every wheel was past its spin-up from the first frame (full speed at once) and an autostart timer read 0 the moment it appeared. The rotor now counts from the moment this peer saw it switch on (off -> rests and spins up again from rest); an autostart timer from when this peer first saw it. Both re-base when the clock goes back (midnight, a session clock adopted on join) instead of freezing. e2e flow-clock-origin: 4 red on 4cd3daf (rotor 4.70 of 5.22 rad/s in its first half-second; timer 0), branch: 0.55 vs 4.67 rad/s, timer 59 -> 55. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Each checked against the node's catalog entry and runtime before rewriting: Sequence fires all four steps from one pulse (not one per pulse, no wrap); Move Input is WASD x/y only (no stick, no jump); All Players is a group gate, not an iterator; Character Controller sets the player's own movement model; Move Speed writes on `set`; Camera Follow has no distance/height; Gamepad Axis is the two sticks (L2/R2 are buttons); HUD Screen acts per pulse (show / hide / toggle); HUD List names the element, title and row cap; HUD Rows and Leaderboard write a HUD List element; HUD Timer a HUD Timer element; HUD Input also reads sliders, toggles, dropdowns and tabs. These lines feed the palette tooltip, the info pane and the docs-site node pages. Unit guard tests/unit/nodeDocsClaims.test.js: 6/6 red on 4cd3daf. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rd card width docs-1: at the 150 px card a "wait" word on every row plus a 48 px step label left each field's input 12 px wide — the values read as empty boxes. "wait (s)" is now said once as the column heading (each field keeps an accessible name, "wait before step N (seconds)"), the step label is a fixed 36 px so the field does not jump when the ● lights, and the field takes the rest: 68 px, "10.50" fits. e2e sequence-card: base 4cd3daf 12 px fields, all four values clipped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The two pose tests called applyRotor once at t = 1 and expected the angle from the clock's origin; they now switch the wheel on at t = 0 first. New: a wheel switched on at t = 51 300 (mid-day on the synced clock) spins up from rest, off -> on spins up again, and a clock that goes back re-bases — red on 4cd3daf's motionNodes.js. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…1 s back) Follow-up to 10111ec: a frame of jitter before the switch-on time no longer moves the start; only a jump back of more than a second (midnight, a session clock adopted on join) re-bases. Unit test covers the jitter case. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Collaborator
Author
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.
Lane fix-batch-1: small fixes from the plans review (owner, 2026-10-24) plus one item the orchestrator added (docs-1 Q1). One commit per item (eight in all, including two test/guard follow-ups). Base:
feat/52(4cd3daf).#14 On Impact fires on a hit from any side (b727168)
direction: any | downoption (shown on the card as "From").any.down, so old scenes fire exactly as before. This uses a newlegacyfield on the param, which the Flow ⚙ panel also reads.src/lib/impactSpeed.jsis a new leaf module with unit tests.flow-impact-any: a ball rolled into a static wall and into a kinematic target.#23 Accessibility leftovers from 1.41 (257e8f6)
WindowChromeunderdata-ui-large.a11y-axe(the profile-menu keys, plus an axe scan of the open panel) anda11y-scale(three one-row header checks).Node sockets the runtime already reads (677d369, docs-1 Q1)
triggeredges hudActions creates had no handle to attach to either.inputs.start, buttriggerStampForonly counted an unnamed ortriggeredge.startis now accepted as an alias.scripts/graph-audit.cjsnow fails when a node reads an input that AnimationNode or HudNode never draws. It found Device Param (value) and Note Trigger (trigger,note,velocity) with the same gap; both are fixed here too.flow-sockets-wirewires each input with a real mouse drag in the node editor, then checks the input takes effect.Round 2 (docs-1 CORE BUGS, 2026-10-25)
duration - time= 0.flow-clock-origin: 0.78 vs 6.04 rad/s (first half-second vs after the ramp); timer 59 → 55. On 4cd3daf: 4.70 vs 5.22 rad/s, timer 0.motionNodes: switched on at t = 51 300, the wheel spins up from rest; plus the off/on and clock-jump cases.sequence-cardchecks every value fits.nodeDocsClaimsfails all 6 checks on 4cd3daf.Proof
Counterfactual = the suite run against the code before the fix, expected to fail.
impactSpeed(10)nodeCatalogAuditundrawn-input guardflow-impact-anya11y-axe,a11y-scaleflow-sockets-wireflow-clock-originsequence-cardmotionNodesswitch-on casenodeDocsClaims(6)Round 2 gates: vitest 213 files (2686 tests) pass; svelte-check 299 / 39; check:tokens clean;
npm run buildexit 0; e2eflow-node-docs,game-shell,flow-impact-staticand every suite above pass on the final code.Regression, all passing:
flow-impact-static,particles-impact,flow-contact-filter,menu-keyboard-tab,avatar-customise,phone-sheets,hud-actions,hud-content,game-shell,flow-unknown-node,audio-devices. vitest: 212 files pass. svelte-check holds at 299 errors / 39 warnings. check:tokens is clean.Known red, not from this branch:
keyboard-walkfails 5 checks in its "Ctrl+S names an unnamed scene" section; it fails 6 on 4cd3daf.fluid-flowsfails its recycling-river checks, the same way on 4cd3daf. Its rotor paddle check passes.hud-content's "only nodetrigger on the wire" check also sees anodesyncmessage, on 4cd3daf too.logic-nodesis timing-sensitive: a different check failed on each loaded run, and it passed completely when run alone.Changelog (1.44.0)
Left for later
start.Handover and evidence:
~/.code/handovers/done/STATUS-fix-batch-1-*.md,~/.code/lanes-30/after-52/fix-batch-1/.🤖 Generated with Claude Code