Skip to content

fix(security): repair deferred-model serialization in workers - #4151

Merged
Patrick-Erichsen merged 1 commit into
mainfrom
fix-skillspector-deferred-serialization
Oct 30, 2026
Merged

Patrick-Erichsen merged 1 commit into
mainfrom
fix-skillspector-deferred-serialization

Conversation

@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator

The worker’s upstream lock installs Pydantic2.13.4/core2.46.4, which raises a built-in TypeError when serializing a valid cold deferred subtype through SerializeAsAny. Apply the upstream serialization repair using a hash-locked four-package compatibility closure, retaining every other upstream locked dependency.

The actual worker environment now runs model-free startup checks that preserve every HIGH finding field while invalid findings and unresolved models still fail. Existing adapter/dependency checks remain. Copied diagnostic installer bundles include the new companions, record their hashes and explicitly distinguish the compatibility set from the upstream lock. Normal findings, completeness, retry and publication gates are preserved.

Validation: fresh locked77-package Linux environment reproduces the old failure, then installs the exact hashed closure;71native adapter/startup checks and dependency consistency pass, with other73packages unchanged.20focused Vitest and all8,380application tests pass (five configured skips/fourworkers/coverage thresholds unchanged); static/full TypeScript-build/package types and independent P0–P3 re-review pass. The copied-bundle regression failsENOENT before the integration fix and passes afterward. Native qualification uses LinuxARM64/twoCPU rather than hostedX64/fourCPU;55known generic SDK warnings remain. No real models or publisher execution; native network use is public package installation only.

Related #4043 remains open. The historical hosted TypeError family is unconfirmed; a separate actual replay completed52/62roots before the20-minute deadline without observing TypeError. This library repair does not establish Solaris recovery or fix that capacity shortfall. No original publication retry or recovery claim.

@vercel

vercel Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
clawhub Ready Ready Preview Oct 30, 2026 1:06pm UTC

Request Review

@clawsweeper

clawsweeper Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

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

@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator Author

Paired proof from the fresh upstream locked native environment and actual private staging regression:

{
  "baseline": {
    "coldChildVerified": true,
    "startupResult": "1 failed / 1 passed; cold HIGH subtype raises TypeError in Pydantic.model_dump",
    "findingValidation": "Unresolved model remains rejected"
  },
  "candidate": {
    "startupAndResponsesTestsPassed": 71,
    "knownGenericSdkWarnings": 55,
    "installedPackages": 77,
    "changedDependencies": {
      "pydantic-core": [
        "2.46.4",
        "2.50.2"
      ],
      "typing-extensions": [
        "4.15.0",
        "4.16.0"
      ],
      "pydantic": [
        "2.13.4",
        "2.14.2"
      ],
      "typing-inspection": [
        "0.4.2",
        "0.4.4"
      ]
    },
    "allOtherPackagesUnchanged": true,
    "dependencyConsistencyPassed": true,
    "coldHighFindingFieldsPreserved": true,
    "invalidFindingAndUnresolvedModelRejected": true
  },
  "integrationRegression": {
    "before": "Actual private staging fails ENOENT for compatibility requirements",
    "after": "Both copied companion contents match; stops before external installation"
  },
  "localGates": {
    "focusedVitest": 20,
    "fullVitest": 8380,
    "configuredSkips": 5,
    "maxWorkers": 4,
    "static": true,
    "typesBuild": true,
    "independentReview": "P0-P3 clean after staging finding fixed"
  },
  "qualification": {
    "python": "3.12.16",
    "uv": "0.13.5",
    "native": "Linux arm64 / two CPUs",
    "hosted": "x86_64 / four CPUs remains to qualify",
    "modelsInvoked": false,
    "publisherCodeExecuted": false,
    "networkUse": "Public package installation only"
  },
  "scopeLimit": {
    "actualHostedTypeErrorFamilyKnown": false,
    "latestSolarisReplay": "52/62 complete then 20-minute deadline; originals and cleanup preserved",
    "packageRecoveryProved": false,
    "originalRetryApplied": false
  }
}

The first independent review found missing copied companion assets; both are now staged, their hashes are recorded, and the entire seven-file re-review is clean. This fixes the demonstrated cold-model serialization mechanism. The historical hosted TypeError family remains unconfirmed, and the separate measured Solaris capacity failure remains open. No security verdict, original publication retry or recovery is claimed.

@Patrick-Erichsen
Patrick-Erichsen merged commit ca2cb17 into main Oct 30, 2026
29 checks passed
@Patrick-Erichsen
Patrick-Erichsen deleted the fix-skillspector-deferred-serialization branch October 30, 2026 13:11

This branch was successfully deployed

1 active deployment
Preview – clawhub — 907b40f7 Deployed Oct 30, 2026 by vercel[bot]
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