Skip to content

29-s3-followup: collectible group edit is one undo step (setNodesData) - #7

Merged
AlexZ005 merged 2 commits into
devfrom
feat/29-s3-collectible
Sep 19, 2026
Merged

AlexZ005 merged 2 commits into
devfrom
feat/29-s3-collectible

Conversation

@AlexZ005

Copy link
Copy Markdown
Contributor

Roadmap 29, lane 29-s3-followup, scope 3 of plans/core/pending/module-node-data-undo-and-batch.md.

Stacked on #4 (feat/29-sdk-collectible, S4) — merge #4 first. Needs core theprototype-app/core#227 (and #224) for the batched path; without them the module falls back to per-node writes.

What landed

  • 25ccc1a collectible's group edit (bulkApply) hands the members that differ to api.flow.setNodesData in one call → one Ctrl+Z undoes a whole group change. Feature-detected; an older core writes per node as before. Wire unchanged (one nodedata per member). README updated; v1.1.1 (manifest, module.js, index.json).
  • module-collectible-signals §12: a 20-member group press = one flownodes data entry of 20 items attributed to collectible, replicated, one undo restores all twenty on both peers; the 1.14-shaped api (no setNodesData) still flips the whole group.

Flights (against core feat/29-s3-followup on :5213)

flight base now
module-collectible-signals 14/14 21/21
module-collectible 130/130 130/130 (441 s — close to the 480 s cap, as before)

Counterfactual: batch call disabled → 3 red (17 → 37 entries; one undo restored one member).

🤖 Generated with Claude Code

AlexZ005 and others added 2 commits September 19, 2026 15:17
…n, radius on the form

- the manager redraws on api.flow.onChange + api.game.onChange (core PR #224) instead
  of a 500ms interval; a clock runs only while a respawn countdown is on screen, an
  older recipe chain's latch value is re-read once 300ms after a change, and the
  panel re-reads on pointerenter (a rename in the viewport is not an event)
- the recipe asks api.flow.freeRegion once per pair, so pairs stack under whatever is
  in the graph instead of on a row derived from collectibles.length (DEVX #16)
- both seams are FEATURE-DETECTED: on a 1.14.0-shaped api the module keeps its 500ms
  poll and fixed rows (asserted by registering the same source against an api with
  the seams removed)
- S4 plan items: the touch radius is on the form (disabled with the reason under a
  click trigger); a group header whose counts include older recipe chains says
  "+N older recipe chain(s) counted here (edit in the node editor)"
- version 1.1.0 (manifest, module, index.json); DEVX-REQUESTS #16/#17 marked SHIPPED
- flights: module-collectible 130/130 (+1 legacy-copy check; the R29 checks moved
  to their own file because the main flight sits near the runner's 8-minute cap —
  it was killed at 480s with them in), new module-collectible-signals 14/14,
  against core feat/29-sdk-polish on :5213
- counterfactual: forcing the poll branch -> "redraws on change signals" and "an
  idle manager touches nothing" red (12 DOM mutations in 2.5s)
- S3 measured here too: one group press over 60 members = 60 nodedata messages,
  7.1ms, 0 undo entries -> the batch seam stays held (see core PR #224)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…tNodesData

- bulkApply collects the members that differ and hands them to core's
  api.flow.setNodesData (core R29 S3b) in one call: one Ctrl+Z undoes the
  whole group change. Feature-detected - on a core without it the module
  writes per node exactly as before. Members that already agree are still
  skipped; the wire is unchanged (one nodedata per member).
- README: the group-edit paragraph and the toolbox row say so. v1.1.1.
- module-collectible-signals section 12: a 20-member group press is ONE
  flownodes data entry of 20 items attributed to `collectible`, replicates to
  the peer, one undo restores all twenty on both peers; the 1.14-shaped api
  (setNodesData removed) still flips the whole group per node.
- Counterfactual: batch call disabled (forced fallback) -> 3 red (17 -> 37
  entries, one undo restored one member).
- module-collectible-signals 21/21 (base 14/14); module-collectible 130/130
  (base 130), against core feat/29-s3-followup on :5213.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant