Skip to content

fix(frontend): validate persisted state and own UI lifecycles - #48

Merged
MrScripty merged 11 commits into
mainfrom
qualification/all-source-accepted-candidate
Oct 4, 2026
Merged

MrScripty merged 11 commits into
mainfrom
qualification/all-source-accepted-candidate

Conversation

@MrScripty

@MrScripty MrScripty commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Accepted candidate and registry-fixture qualification

Current published head: ee91e5d. Exact accepted tree: 5080b74e82e5ef7bb62741d7fc03cc4754ea1f4a. The original ea0378 frontend composition and all its ancestry are retained. Connector publication recreated only commit metadata: source78d35f9e maps to150efee067ed5bfb6773d0dc9cff9bbdc63fb4c6 (tree dfe5deaa446530866a0ea2075442ff6f1e1545f1, sole parent ea0378); documentation7cb06b73 maps to this head (sole parent150efee0). Both trees and ordered parents were verified before the non-force ref update.

Independent source review accepted the bounded test-fixture warm-up. All27 fixture builder sites are test-only, and reversing those references plus the cfg(test) module declaration restores all nine existing files byte-for-byte. Existing assertions, dependencies, production behavior and workflow gates are preserved. The once-only registry preparation retains a connection; API construction and test bodies still run concurrently, and initialization errors still fail tests.

Exact accepted-tree native qualification subsequently passed all456 embedded-runtime tests with zero failures/ignored. The required npm test gate passed258 node-engine tests plus168 workflow-nodes tests, with one inherited benchmark ignore. Existing official ORT1.24.2 and dedicated disposable registry paths were used. The earlier resource-limited attempt ran no tests; only the later complete run counts as native qualification. Earlier frontend composition evidence remains659 frontend and63 tooling passes, with exact blob/mode and disjoint-composition checks.

This is warm-registry fixture stabilization, not production cold-start qualification. The retained cold-open experiment reproduced the old pinned Pumas registry race, but the hosted failing SQL statement is unproven. Current Pumas already contains an independently reviewed WAL-startup repair absent from Pantograph's older pin. No dependency upgrade is included, and warm tests do not replace an eventual reviewed pin upgrade and retained cold-open tests. Repair source and historical investigation.

Current hosted and external gates

All three exact-head workflows completed successfully: Quality37187388027, Headless37187388013, and Runtime37187388014. The old ea0378 Quality failure remains historical evidence. The completed CodeRabbit full review selected all36 main-relative files through exact ee91e5d, generated no actionable findings, and left no review threads. The48.53% docstring warning is not a failing repository CI gate. Its noted pre-existing undo-history deletion authorization/recovery limitations remain a separate hardening scope; this change does not claim to resolve them.

Genuine GUI/WebKit, physical input, real browser cold reopen, current-tree native IPC/host/package/model loading and inference remain outside the executed local qualification. No release or end-to-end product completion is claimed. Exact hosted and external-review gates are now complete; this source is eligible for the authorized integration transition.

Earlier frontend composition and hosted failure

Malformed persisted undo/view records could enter frontend state or be overwritten during startup, and UI work could outlive teardown or newer navigation. This change validates owned records before application/writeback, preserves rejected bytes, and owns graph listeners, DeviceConfig initialization, navigation animations and persistence timers.

Valid legacy view records and local edits between persistence scopes remain supported. The view record retains its current unversioned format; no schema migration, recovery writes or new product limits are introduced.

Exact candidate

  • Head: ea0378defadebb8665bc964c352166f0fbb15bb7
  • Tree: f03ad681e6952266f48a1907e07cb39b05e00328
  • Branch: qualification/all-source-accepted-candidate
  • Base observed: main at b84d7ec49773ab306432b393b735e4aae2e027b1

The candidate preserves both accepted lineages: frontend fd1ace640ddb51ef906991a6d658707d5ef034f5 and native/scanner 41701d68fb3748f0b422b247427e4ca6d51ccbd5. Native/scanner changes are already on main and remain unchanged. The PR adds 24 accepted frontend paths plus one combined qualification report. Composition had no path intersections or conflicts, and the exact scanner gate is preserved.

Validation

Checks ran on composition 5eb2f087e36d1dec1377f78bed5b7afd067c282e, tree 2826057b536babcca9aeae7260fd25d46b50a9a3; the final successor only adds the report.

  • npm run test:frontend: 659 passed; zero failures/skips/cancellations.
  • node --test scripts/*.test.mjs: 63 passed.
  • npm run lint:full, npm run typecheck, npm run build, and cargo fmt --all -- --check: passed.
  • Critical checks, accessibility scan and all 27 exact scanner cases passed.
  • Explicit traceability passed for common ca9, native417, historical main4938 and merged mainb84 ranges. Final mainb84-to-head: 25 paths, zero mapped impacts.
  • Whitespace checks passed. The build retains the existing stale Browserslist-data notice.

Full qualification evidence

Review and limits

Independent composition review accepted this exact candidate. All 24 frontend blob identities and modes match accepted fd1ace6; all 10 native/scanner paths match reviewed 41701d6. The path sets are disjoint and the only additional file is the combined qualification report. Main b84d has the same source tree as 41701d. Fresh scanner/accessibility, traceability and whitespace checks passed; prior 659 frontend and 63 tooling results retain their unchanged-source scope. Final integration remains gated on exact hosted CI and external review.

These are frontend/tooling/static results. Genuine GUI/WebKit, actual native IPC, native package loading, C#/BEAM hosts, real browser cold reopen and model loading/inference were not executed here. Controlled GUI-wrapper fixtures do not establish genuine GUI acceptance. The parent reports GUI helper-layout preflight stopped on a read-only filesystem without a workaround; the CDN restriction remains.

Current hosted gate

Exact-head Quality Gates 37181984567 failed in embedded runtime unit tests: owner_api_projects_diffusers_package_facts_without_paths could not initialize Pumas because SQLite reported DatabaseBusy / database is locked at pumas_dispatch_package_facts.rs:340. The suite reported 454 passed and 1 failed. Other Quality jobs, including frontend tests, strict Clippy, dependency audit and traceability, passed. This failure remains under investigation; it is not waived or labeled harmless.

Runtime Separation 37181984577 passed; Headless Workflow Contract 37181984580 was still running at the latest check. No current-head aggregate or native-workflow pass is claimed. External review has not yet been requested; the coordinated repository allowance opens no earlier than 06:34 UTC on 2026-10-04.

This remains a draft. The previous PR44/47 source and metadata are not changed by this update.

Summary by CodeRabbit

  • New Features
    • Added persistent undo and redo history, including support for restoring valid saved history.
    • View settings now support configurable storage and shared, debounced persistence.
  • Bug Fixes
    • Invalid or unreadable saved data no longer overwrites existing browser data.
    • View animations and component initialization now handle cancellation and cleanup more reliably, preventing late results from changing inactive views.
  • Documentation
    • Added guidance on view navigation, persistence, and lifecycle behavior.

Jeremy added 9 commits October 4, 2026 03:27
Implement the admitted FE-A05 subset on exact ca9edde. Decode the existing
unversioned record from unknown, checking nested actions, opaque nonblank IDs,
nonnegative safe millisecond timestamps, the existing 32-entry bound and valid
cursor relationships. Keep the omitted-position legacy fallback.

Reject invalid/oversized records as a whole, log UNDO_STORE_LOAD_FAILED, and
preserve their bytes. Unavailable or rejected storage disables writes for that
store instance, including later in-memory pushes and clear; skipped persistence
reports UNDO_STORE_SAVE_FAILED. No schema migration or recovery writes.

Move unchanged operation bodies into an injected store factory, with per-store
callback ownership. Keep the app singleton and exported action/entry types.
No timeline or Git cleanup implementation changes. Rejected entries never reach
an aging callback; fresh user actions retain their existing in-memory behavior.

Validation on pinned Node 24.12.0/npm 11.6.2:
- 35 focused decoder/store tests and 582 aggregate frontend tests pass.
- Full lint, TypeScript, production build, staged critical/a11y/traceability
  gates and diff whitespace pass.
- Existing stale Browserslist data notice remains; no dependency changes.
- Source comparison confirms all operation bodies preserved after logger and
  constant renaming. Tests use recording callbacks, never permanent Git deletion.

The evidence report records exact policy and limits. This does not qualify GUI,
native/model execution, cold browser reopen, other persistence owners or full
FE-A05 schema/version migration. Separate scanner/fixture branches are preserved;
write sets are disjoint. Independent review remains required before integration.
Resolve FE-A02 stale animation completions by cancelling and settling superseded
navigation, reset, and immediate breadcrumb timers. Share persistence subscriptions
and debounce timers across independently released enablePersistence owners.

Validation: 15 focused timer tests; 562 aggregate frontend tests; TypeScript,
full lint, production build, staged critical/a11y/traceability, whitespace pass.
Regression fails against ca9 before repair. GUI/native/model checks not executed.
Base: ca9edde (full ancestry retained).
Prevent deferred device initialization from creating refresh intervals or applying
read results after component destruction. Share initialization across duplicate
starts and observe active/late failures with a mount-owned lifecycle helper.
Keep backend requests settling and preserve existing configuration policies.

Validation: 10 focused lifecycle tests, actual-script before/after deferred probe,
557 aggregate frontend tests, full lint, TypeScript, production build, staged
critical/a11y/traceability and whitespace pass. GUI/native/model checks not run.
Base: ca9edde (full ancestry retained).
Return synchronous cleanup from application and package graph mounts. Preserve
six listener identities/options and existing registrar exports. The shared graph
mount owner guards late definition application and observes live/late rejection.

Validation: 12 tests execute actual component mount callbacks plus the existing
listener identity test; both synchronous-cleanup regressions fail against ca9.
All 559 frontend tests, full lint, TypeScript, production build, staged
critical/a11y/traceability and whitespace pass. GUI/native/model checks not run.
Base: ca9edde (full ancestry retained).
Record exact ancestry-preserving composition of accepted undo, view, device and
graph mount repairs. Combined focused 73 and aggregate 619 frontend tests pass,
as do full lint, TypeScript, build, explicit ca9-to-composition critical/a11y/
traceability and whitespace checks. Preserve native/visual/IPC/model limits.

Post-base fixture/scanner branches are excluded; no PR44/47 ref changes.
Record a controlled malformed-view-record probe as the next bounded candidate,
without implementing or accepting additional persistence policy.
Decode the existing unversioned view record before applying any owned field.
Retain malformed/unavailable bytes and close instance writeback on rejection.
Initialize before the first persistence scope; validate later enables without
replacing local edits. Suppress synchronous restore-time writes and recheck
storage/outgoing values before each write. Preserve shared timer ownership,
partial legacy records, serialization and existing public action return types.
No schema migration, recovery writes or new product limits are introduced.

Validation: 55 focused cases, including all 15 accepted view lifecycle tests;
659 aggregate frontend tests; full lint, TypeScript, build, critical/a11y/
traceability (7 paths, 0 mapped impacts), whitespace pass. Two defect regressions
fail against exact bb45; two restart compatibility controls pass on base/repair.
GUI, actual native IPC, model and real cold-reopen checks were not executed.
Base: bb45b81; accepted source ancestry retained.
Qualify the exact fd1ace frontend lineage composed with native/scanner integration
41701d6. Preserve both accepted parents and every admitted blob; no path overlaps
or conflict resolution. Preserve exact scanner 5590b4a and unchanged Svelte markup.

Combined 659 frontend tests and 63 tooling tests pass; full lint, TypeScript,
build, Rust formatting, critical/a11y (27 scanner tests), whitespace and explicit
traceability pass. Common ca9 range: 34 paths/0 impacts; native417 range: 24/0;
historical main4938 range: 251/1 with declared legacy-map adoption.

Qualified source: 5eb2f08, tree
2826057. This successor adds evidence only.
No native/WebKit/model/release execution or PR44/47 updates/bot requests.
@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a9a7f179-118a-4a54-8121-fc313d5d71b6
📥 Commits

Reviewing files that changed from the base of the PR and between b84d7ec and ee91e5d.

📒 Files selected for processing (36)
  • crates/pantograph-embedded-runtime/src/lib.rs
  • crates/pantograph-embedded-runtime/src/lib_tests.rs
  • crates/pantograph-embedded-runtime/src/lib_tests/edit_session_execution_tests.rs
  • crates/pantograph-embedded-runtime/src/lib_tests/workflow_run_execution_tests.rs
  • crates/pantograph-embedded-runtime/src/pumas_dispatch_package_facts.rs
  • crates/pantograph-embedded-runtime/src/pumas_test_support.rs
  • crates/pantograph-embedded-runtime/src/runtime_host_execution_port.rs
  • crates/pantograph-embedded-runtime/src/task_executor_tests/puma_lib.rs
  • crates/pantograph-embedded-runtime/src/technical_fit.rs
  • crates/pantograph-embedded-runtime/src/workflow_service_composition.rs
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-all-source-candidate-qualification.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-device-config-lifecycle.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-frontend-accepted-composition.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-pr48-pumas-registry-startup.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-undo-persistence-validation.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-view-record-validation.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-view-store-lifecycle.md
  • docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-workflow-graph-mount-lifecycle.md
  • packages/svelte-graph/README.md
  • packages/svelte-graph/src/components/WorkflowGraph.svelte
  • packages/svelte-graph/src/index.ts
  • packages/svelte-graph/src/stores/createViewStores.persistence.test.ts
  • packages/svelte-graph/src/stores/createViewStores.test.ts
  • packages/svelte-graph/src/stores/createViewStores.ts
  • packages/svelte-graph/src/stores/viewStatePersistence.test.ts
  • packages/svelte-graph/src/stores/viewStatePersistence.ts
  • packages/svelte-graph/src/workflowGraphWindowListeners.ts
  • src/components/DeviceConfig.svelte
  • src/components/WorkflowGraph.svelte
  • src/components/deviceConfigLifecycle.test.ts
  • src/components/deviceConfigLifecycle.ts
  • src/components/frontendLifecycleContract.test.ts
  • src/stores/createUndoStore.ts
  • src/stores/undoPersistence.test.ts
  • src/stores/undoPersistence.ts
  • src/stores/undoStore.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

This change adds lifecycle helpers for device configuration and workflow graph mounts. It also updates view-store animation and persistence behavior, adds a persisted undo store, coordinates Pumas registry preparation in tests, and adds qualification reports.

Changes

Pumas registry test startup

Layer / File(s) Summary
Prepare the registry before concurrent test work
crates/pantograph-embedded-runtime/src/lib.rs, crates/pantograph-embedded-runtime/src/pumas_test_support.rs, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-pr48-pumas-registry-startup.md
A test-only helper initializes and retains the platform registry in a OnceLock. A regression test runs eight cold starts with 32 concurrent owners each.
Use the shared test builder in fixtures
crates/pantograph-embedded-runtime/src/lib_tests/*, crates/pantograph-embedded-runtime/src/pumas_dispatch_package_facts.rs, crates/pantograph-embedded-runtime/src/runtime_host_execution_port.rs, crates/pantograph-embedded-runtime/src/task_executor_tests/puma_lib.rs, crates/pantograph-embedded-runtime/src/technical_fit.rs, crates/pantograph-embedded-runtime/src/workflow_service_composition.rs
Pumas test fixtures use the test-support builder instead of the library builder. Their later setup and assertions remain unchanged.

Device configuration lifecycle

Layer / File(s) Summary
Scope initialization and cleanup to the mount
src/components/DeviceConfig.svelte, src/components/deviceConfigLifecycle.ts, src/components/deviceConfigLifecycle.test.ts, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-device-config-lifecycle.md
A mount-scoped lifecycle manages device loading, refresh cleanup, and embedding-mode loading. It skips later work after stop and reports failures only while active. Tests cover stops during asynchronous steps and cleanup.

Workflow graph mount lifecycle

Layer / File(s) Summary
Coordinate listeners and definition loading
packages/svelte-graph/src/workflowGraphWindowListeners.ts, packages/svelte-graph/src/components/WorkflowGraph.svelte, packages/svelte-graph/src/index.ts, src/components/WorkflowGraph.svelte, src/components/frontendLifecycleContract.test.ts, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-workflow-graph-mount-lifecycle.md
Both graph components use the mount helper for listener registration, definition loading, and cleanup. Tests cover late results, failures, and remounting.

View navigation and persistence

Layer / File(s) Summary
Own and cancel navigation animations
packages/svelte-graph/src/stores/createViewStores.ts, packages/svelte-graph/src/stores/createViewStores.test.ts, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-view-store-lifecycle.md
Navigation actions share an animation controller. Superseding navigation, breadcrumb changes, and resets cancel active animations.
Decode persisted view records
packages/svelte-graph/src/stores/viewStatePersistence.ts, packages/svelte-graph/src/stores/viewStatePersistence.test.ts, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-view-record-validation.md
A decoder validates stored view fields and leaves absent fields unset. Tests cover accepted and rejected record shapes.
Manage restore and writeback ownership
packages/svelte-graph/src/stores/createViewStores.ts, packages/svelte-graph/src/stores/createViewStores.persistence.test.ts, packages/svelte-graph/README.md, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-frontend-accepted-composition.md
Persistence supports injected storage, validated restore and writeback, and shared debounced subscriptions. Invalid or unavailable storage blocks writeback.

Undo history persistence

Layer / File(s) Summary
Define and validate persisted undo state
src/stores/undoPersistence.ts, src/stores/undoPersistence.test.ts
The decoder validates undo entries, the history limit, and cursor positions. It defaults an omitted cursor to the final history entry or -1 for empty history.
Build and configure the undo store
src/stores/createUndoStore.ts, src/stores/undoStore.ts, src/stores/undoPersistence.test.ts, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-undo-persistence-validation.md
The store factory implements persistence, push, aging, undo, redo, and clearing. The exported store supplies browser storage and logging adapters.

Source composition qualification reports

Layer / File(s) Summary
Record composition and qualification evidence
docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-all-source-candidate-qualification.md, docs/plans/domain-architecture-and-multimodal/reports/2026-10-04-frontend-accepted-composition.md
The reports record source composition details, selected check results, exclusions, and qualification limits.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant DeviceConfig
  participant Lifecycle
  participant DeviceAPI
  participant RefreshScope
  DeviceConfig->>Lifecycle: start initialization
  Lifecycle->>DeviceAPI: list devices
  Lifecycle->>RefreshScope: start refresh
  Lifecycle->>DeviceAPI: load embedding mode
  DeviceConfig->>Lifecycle: stop on destruction
  Lifecycle->>RefreshScope: run cleanup
Loading
sequenceDiagram
  participant WorkflowGraph
  participant MountScope
  participant WindowListeners
  participant DefinitionLoader
  participant GraphStore
  WorkflowGraph->>MountScope: create mount scope
  MountScope->>WindowListeners: register handlers
  MountScope->>DefinitionLoader: load definitions
  DefinitionLoader-->>MountScope: return definitions
  MountScope->>GraphStore: apply definitions while active
  WorkflowGraph->>MountScope: stop on cleanup
  MountScope->>WindowListeners: remove handlers
Loading
sequenceDiagram
  participant ViewStore
  participant Storage
  participant PersistenceScope
  ViewStore->>PersistenceScope: enable persistence
  PersistenceScope->>Storage: read and validate stored record
  PersistenceScope-->>ViewStore: restore valid fields
  ViewStore->>PersistenceScope: publish state change
  PersistenceScope->>Storage: write validated state after debounce
  ViewStore->>PersistenceScope: release persistence handle
Loading

Merge Risk: ⚪ Minimal · up to ee91e

The change adds lifecycle ownership and validation for persisted view and undo state, plus test-only registry preparation. No concrete merge-blocking problem was found. Before merging, wait for the exact-head hosted workflows to finish.

Security Architecture Review

Security architecture risk: 🔵 Low · up to ee91e

The change strengthens saved-state validation and limits work after teardown or navigation supersession. No introduced or worsened security issue was established. Permanent history deletion already existed, but trust in saved undo records and recovery after deletion failures remain incompletely established.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • observed — The existing deletion sink rewrites generated history beneath the resolved project root using reset and cherry-pick operations. It can also synchronize working files when deleting the current commit. The inspected path establishes local project-history and file effects, not broader tenant or service exposure.

Security Findings and Attack Paths

  • inferred — An actor able to alter the browser undo record could supply a syntactically valid hash that later reaches aged-action deletion. That conditional path predates this PR. Browser-record influence and effective native authorization remain unresolved, so this is not a verified introduced vulnerability.

Trust Boundaries and Controls

  • observed — Malformed undo records are rejected before restore. The deletion command remains registered in the native invocation handler, and inspected command registration, capability configuration, and CSP are unchanged from base. Registration and schema validation do not establish ownership authorization for an accepted hash.

Resilience and Maintainability Implications

  • observed — Existing destructive-cleanup recovery is incomplete: an aged undo entry is discarded even when hardDelete returns false, and overlapping pushes can publish state derived from the same snapshot. Native cherry-pick failure aborts the in-progress operation without an evidenced restoration of the original history tip. These failure-containment limitations predate this PR.

Hardening Proposals

  • proposed — As separate hardening work, establish commit provenance at the destructive boundary and retain cleanup ownership until deletion succeeds. Serialize history-changing transitions and define recovery to the original repository state after partial failure.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 48.53% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 68 functions across 24 files. (12 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main frontend changes: validating persisted state and managing UI lifecycles. The supporting Pumas test-fixture changes do not make it misleading.
Full details: Docstring Coverage

Explanation

Docstring coverage is 48.53% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 68 functions across 24 files. (12 skipped: 12 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

Please review this main-relative36-file change at current head ee91e5d (tree5080b74e82e5ef7bb62741d7fc03cc4754ea1f4a) against main b84d7ec. No earlier review of PR48 has been requested.

The accepted frontend composition validates persisted records without overwriting rejected bytes and owns graph listeners, DeviceConfig initialization, animation and persistence lifetimes. The successor adds test-only shared registry warm-up while preserving existing assertions, production code, dependencies and parallel test bodies. Independent review accepted the exact composition and source; the accepted tree passed456 embedded tests and the required258+168 npm tests (one inherited benchmark ignore). Prior unchanged frontend/tooling coverage is659+63.

Please check correctness and regression coverage without treating warm-registry tests as production cold-start qualification. Current Pumas has an upstream WAL-startup repair absent from this older pin, and the original hosted failing SQL statement is unproven. Exact-head hosted Quality37187388027, Headless37187388013 and Runtime37187388014 are still running; no aggregate pass is claimed yet. Genuine GUI, native IPC/hosts and model acceptance remain outside scope.

Use one included review only; no paid review or upgrade. Report actual source range/file coverage and any actionable findings.

@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@MrScripty
MrScripty marked this pull request as ready for review October 4, 2026 08:14
@MrScripty
MrScripty merged commit 11b046f into main Oct 4, 2026
21 checks passed
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