Skip to content

Optimize diagnostic publication materialization - #21

Merged
nicodes merged 1 commit into
mainfrom
issue-177-publication-materialization
Sep 14, 2026
Merged

nicodes merged 1 commit into
mainfrom
issue-177-publication-materialization

Conversation

@nicodes

@nicodes nicodes commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

Refs aviorstudio/fieldsofrevik#177

Implementation

  • Primitive JSON leaves avoid per-value Dictionary frames; finite deep payloads and shared DAG aliases remain accepted while cycles, non-string keys, non-finite numbers, unsupported objects, and normalized sensitive keys are rejected before browser publication.
  • Repeated field classifications are cached only within one publication and only against the immutable SENSITIVE_KEYS policy. Completed-call validation_visit_count semantics are retained, including early rejection.
  • Internal element wire views are reused only while entry identity and every public field match. Direct field mutation, replacement/removal, outer map-key semantics, static/dynamic geometry, viewport coordinates, fresh independent to_dict() dictionaries, prior JSON snapshots, full-map replacement, cadence, and owner cleanup remain intact.
  • Addon candidate version is 0.0.7. No public API, schema, size/depth limit, delayed event, or game configuration change.

Exact-head gates

  • Exact head: a4021607404892f0fcc746207319185b40d11856.
  • CI: https://github.com/aviorstudio/gd-playwright/actions/runs/34800828477 — SUCCESS at that exact head.
  • Godot 4.7.2 native suites, Go 1.24.13, Bun 1.2.23 (5 tests/14 assertions), package controls, runner controls, exact ZIP editor lifecycle, and packaged ordinary/diagnostic browser exports passed.
  • Work controls: logical visits remained 8; value frames fell from 8 to 5; repeated-key normalizations fell from 5 to 3; unchanged map materialization fell from 2 to 1. Disabling the primitive/key optimizations caused the intended assertions to fail; restoration passed. The element-cache mutation also demonstrated the extra materialization.
  • Candidate ZIP SHA-256: 8f4a395106d11315f3bd7247146b03f89f8e943c0d890fed7783208028e49831; installed tree: 0f6a8b3f830bb337cd581ed9f0c5eaeb78b9830ac50a2313add757a5bd7c20a3.
  • CI web identities: ordinary b62fbbb797000c60b60b3760ec959c28ee13086115fc47284218985dbfeba3e7; diagnostic 48822c3677987db7461d1d31b072490a9fc6bba7bc908db62f4b63f49c48897b.
  • Screenshots were downloaded from the exact-head CI artifact and personally inspected. Ordinary globals are absent; diagnostic allowlists, owner cleanup/isolation, and normal input pass.

Ordinary packaged export

Ordinary export: bridge globals absent

Diagnostic packaged export

Diagnostic export: allowlist and owner cleanup/isolation pass

No Castledrop benchmark, total-CPU attribution, user-budget guarantee, or 3% game result is claimed.

@nicodes
nicodes merged commit 0c0cfec into main Sep 14, 2026
3 checks passed
@nicodes
nicodes deleted the issue-177-publication-materialization branch September 14, 2026 03:16
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