Skip to content

fix: prove closed native JavaScript validator values - #123

Merged
Patrick-Erichsen merged 7 commits into
mainfrom
fix-validator-native-inputs
Oct 28, 2026
Merged

Patrick-Erichsen merged 7 commits into
mainfrom
fix-validator-native-inputs

Conversation

@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator

Summary

The unchanged gtrk-ai-drama@1.3.9 validator is left partially inspected because bounded native arrays, record values, function results and template joins lack a closed ownership proof. Add an optional JavaScript value/effect proof, leaving unknown calls, grammar and effects unsupported.

constructed value → prove private storage, primitive inputs and native identity
                 → prove every source effect within the existing budget
                 → admit the bounded value only when both proofs hold

The embedded patch and mirrored Docker adapter suites preserve legacy inspection, findings, parser/type budgets and dependency pins. Native argv.slice requires scalar start/end operands, preventing implicit coercion hooks from invalidating later identities.

Evidence

  • Before (production c073): unchanged gtrk original fully inspected2/3 files, three generated AE1 incomplete-reference rows.
    **After (installed Linux package):**3/3 fully inspected, those three generated rows disappear; all six missing-reference caveats remain. Validator SHA-256 f099cc9b6613a7d61758b86e9d571e2934ae602e38243117fa235e4389e921e1 is unchanged. No original code was executed.
  • Before (rejected a920 candidate): five offset-hook controls incorrectly completed, including a separate later console argument and argv receiver alias.
    After: all five remain partial; four scalar-bound controls remain complete. All three exact independently reported examples reproduce before and stay partial after the repair.
  • 752 focused source controls;1,101 installed adapter controls;300 executable-construction negatives and12 namespace mutations pass. Normal embedded-patch application reconstructs all137 source/dependency hashes; uv.lock is unchanged. Full Go tests, go vet ./... and CLI help pass.
  • All 30 retained original inventories match. The other29 full raw finding payloads (except generated IDs) and coverage counts match. Exactly one Feishu file refines static_parse_limit to opaque_content while staying partial: lexical lookup memoization preserves22 unsupported constructions under the same100,000-step per-proof budget. The strict comparator failure is retained; a narrow verifier accepts only that traced diagnostic refinement.
  • Two additional xiapan originals remain3/9fully,6partial,45findings with identical findings/completeness before and after. This change has no demonstrated benefit for their unresolved module inspection.
  • Independent P0–P3 review: all three cumulative source passes completed with the same argv-coercion cause; all three literal examples are fixed, and the focused a920→826 repair review is scoped-clean. Cumulative consumer c073→6481 transport review and focused6481→ca116 integration review are scoped-clean. The historical a920 review retains its three accepted findings and incorrect verdict. Exact final source/reconstruction identities bind the combined scope.

These are local/static proofs. Production adoption, ordinary original recovery and public/install verification follow separately. This PR does not resolve every case in openclaw/clawhub#4058.

Merge Danger

Door: two-way

The source pin can be rolled back. This does not repack original uploads or alter publication/moderation state.

Blast Radius: scanner

Incorrect ownership could hide an inspection gap; affirmative effect/native-input checks, adversarial controls and independent semantic review protect that boundary.

@clawsweeper

clawsweeper Bot commented Oct 28, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

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