Skip to content

Bound runtime resources and fix debugger, validation, and mobile controls - #24

Merged
rendis merged 4 commits into
mainfrom
fix/runtime-controls
Oct 4, 2026
Merged

rendis merged 4 commits into
mainfrom
fix/runtime-controls

Conversation

@rendis

@rendis rendis commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Summary

Unbounded invoke launches, retained event/history data, and synchronous callback reentry could exhaust resources or block execution. Add configurable runtime budgets, a shared invoke manager, cooperative cancellation/shutdown, cancellable lock waiting, and context-aware reentry checks. Zero-value options preserve existing policies and mandatory interfaces remain unchanged.

  • Bound invoke concurrency across machine constants, universe constants, and reality/transition invokes; optionally cancel work on exit, restoration, or positioning. Add lifecycle and contextual snapshot capabilities.
  • Limit accumulator entries, tracking, and bot history; preserve bounded history during rollback. Add optional strict observer registration checks and propagate bot snapshot/cancellation errors.
  • Fix CLI reflection panics and empty selections, and test real-machine event history, rollback, and checkpoint loading.
  • Return structured errors for malformed Studio definitions and resolve references through own properties, preserving explicitly declared names such as constructor.
  • Support multiple Web Component tag names; cover attributes/properties, mounting, reconnection, and DOM events. Fit header, search, machine panel, and bottom controls on mobile.
  • Expand and complete mutation campaigns; fix incompatible Babel overrides and exclude mutation sandboxes from normal test discovery. Add a reproducible history benchmark.

Validation

GitHub Quality (Go and Studio) and CodeQL passed at 6e0bd69a553dce9e4a395bf087ffd0b9fdb54221. The first CI fuzz run ended with a runner context deadline exceeded and no failing input; a local repeat and the CI rerun passed without code changes.

  • Go build/vet and race-enabled tests with coverage passed across all 11 packages; three native fuzz smoke targets passed.
  • Studio frozen installation, lint, typecheck, 283 tests, all builds, and dependency audit passed; zero advisories including development dependencies.
  • Complete Gremlins campaigns: builtin 92.00%, bot 96.00%, root 83.11%, experimental 87.31% efficacy. The root campaign preceded the final private async-context adjustment; final experimental mutation and race tests cover the resulting runtime.
  • Complete Stryker campaign: 845 mutants, 59 tests, 58.11% total / 65.12% covered score; 489 killed, 2 timed out, 263 survived, 91 uncovered, no runner errors.
  • Chromium: header/search/control bounds at 320, 390, 768, and 1440 px; library and JSON export; production layout at 320 and 1440 px; actual Web Component locale/event flow. CLI statement coverage increased from 1.3% to 51.0%.

Contracts and measured costs

Cancellation requires cooperating user callbacks. Legacy context-free owner snapshot calls inside synchronous callbacks can still deadlock; use callback arguments or the new contextual APIs while preserving the supplied context. Admission/cancellation failures do not roll back prior side effects.

ELK remains approximately 1,458 kB (445 kB gzip) and is requested by automatic initial layout despite being a separate chunk. Full checkpoint copies preserve isolation from consumer mutations; at 5,000 realities the benchmark measured about 53 ms per undo/redo pair. These costs and mutation survivors remain documented follow-up opportunities.

Runtime usage · Review, mutation counts, and benchmarks

@rendis rendis changed the title Add runtime resource controls and fix debugger and Studio edge cases Bound runtime resources and fix debugger, validation, and mobile controls Oct 4, 2026
@rendis
rendis marked this pull request as ready for review October 4, 2026 15:07
@rendis
rendis merged commit 95a7cbe into main Oct 4, 2026
6 of 7 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