Skip to content

fix(trajectory): tolerate partial skill snapshot entries in support capture#84797

Merged
clawsweeper[bot] merged 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-71185
May 21, 2026
Merged

fix(trajectory): tolerate partial skill snapshot entries in support capture#84797
clawsweeper[bot] merged 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-71185

Conversation

@clawsweeper

@clawsweeper clawsweeper Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

Makes #71185 merge-ready for the ClawSweeper automerge loop.
The edit pass should inspect the live PR diff, review comments, and failing checks; rebase if needed; keep the contributor branch credited; and stop only when validation is green or an external blocker is proven.
Known failing checks:

ClawSweeper 🐠 replacement reef notes:

  • Repair fallback: GitHub rejected the repair branch push because it updates workflow files and the ClawSweeper app token does not have workflows permission

Co-author credit kept:

fish notes: model gpt-5.5, reasoning high; reviewed against 99a204b.

@clawsweeper clawsweeper Bot added size: S clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge proof: supplied External PR includes structured after-fix real behavior proof. proof: sufficient ClawSweeper judged the real behavior proof convincing. P1 High-priority user-facing bug, regression, or broken workflow. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. clawsweeper Tracked by ClawSweeper automation labels May 21, 2026
@clawsweeper

clawsweeper Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

Codex review: passed.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.

Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach string methods in buildTrajectoryRunMetadata, and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

PR rating
Overall: 🦞 diamond lobster
Proof: 🦞 diamond lobster
Patch quality: 🦞 diamond lobster
Summary: Strong live-log proof plus a small, tested defensive patch make this above-average and mergeable once pending CI finishes.

What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Real behavior proof
Sufficient (logs): The related source PR provides redacted runtime logs showing the pre-patch crash, the symlink-escape warning still firing after patch, and live gateway turns completing normally after deployment.

Risk before merge

  • Exact-head CI had three pending checks at inspection time, so merge should wait for the normal check gate even though no failed check was present.

Maintainer options:

  1. Decide the mitigation before merge
    Land this replacement PR after exact-head CI finishes green, keeping the narrow consumer-side tolerance while leaving any producer-side cleanup as a separate follow-up.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge
No repair lane is needed because the patch is already on an automerge replacement branch; the remaining action is the normal exact-head CI and merge gate.

Security
Cleared: Cleared: the diff does not add dependencies, workflows, secret handling, or weaker path-containment behavior; it only omits or blanks malformed support metadata fields.

Review details

Best possible solution:

Land this replacement PR after exact-head CI finishes green, keeping the narrow consumer-side tolerance while leaving any producer-side cleanup as a separate follow-up.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection on current main shows undefined skill path/name values can reach string methods in buildTrajectoryRunMetadata, and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Is this the best way to solve the issue?

Yes. The PR is a narrow consumer-side hardening with focused regression tests and does not weaken the existing symlink-escape rejection boundary.

Label justifications:

  • P1: The patch addresses an agent-turn failure path where trajectory support capture can abort every fallback attempt for affected skill snapshots.
  • rating: 🦞 diamond lobster: Current PR rating is 🦞 diamond lobster because proof is 🦞 diamond lobster, patch quality is 🦞 diamond lobster, and Strong live-log proof plus a small, tested defensive patch make this above-average and mergeable once pending CI finishes.
  • status: 🚀 automerge armed: This PR is in ClawSweeper's automerge lane. Sufficient (logs): The related source PR provides redacted runtime logs showing the pre-patch crash, the symlink-escape warning still firing after patch, and live gateway turns completing normally after deployment.
  • proof: sufficient: Contributor real behavior proof is sufficient. The related source PR provides redacted runtime logs showing the pre-patch crash, the symlink-escape warning still firing after patch, and live gateway turns completing normally after deployment.

What I checked:

  • Current main crash path: Current main maps every resolved skill into support metadata and calls redactPathForSupport on skill.filePath/baseDir, then sorts by left.name.localeCompare, so a partial entry with undefined name or path can throw during trajectory metadata capture. (src/trajectory/metadata.ts:181, 3156d94bcab0)
  • Current main redaction assumption: Current main redactPathForSupport accepts a string and immediately calls file.startsWith, matching the reported TypeError when undefined reaches this consumer. (src/logging/diagnostic-support-redaction.ts:238, 3156d94bcab0)
  • PR hardening path: The PR head filters resolvedSkills to entries with a non-empty string name, falls back to the lightweight skills list when all resolved entries are filtered, and makes the final sort null-safe. (src/trajectory/metadata.ts:180, ecb3df6c08ef)
  • PR redaction guard: The PR head widens redactPathForSupport to string | null | undefined and returns an empty support field for nullish inputs before any string method call. (src/logging/diagnostic-support-redaction.ts:238, ecb3df6c08ef)
  • Regression coverage: The PR adds tests for mixed valid/partial resolved skill entries, all-partial fallback to skills, and null/undefined path redaction. (src/trajectory/metadata.test.ts:184, ecb3df6c08ef)
  • Symlink boundary unchanged: The existing skill loader still warns on escaped skill paths and returns null from the containment check; the PR diff does not touch this security boundary. (src/agents/skills/workspace.ts:330, 3156d94bcab0)

Likely related people:

  • steipete: History shows repeated recent work in the skills containment, escaped-path warning, and adjacent tests/docs paths, including the containment hardening and warning clarification commits. (role: recent area contributor; confidence: high; commits: 253e15970059, e24b80b15e46, 555f74cf675b; files: src/agents/skills/workspace.ts, src/agents/skills.loadworkspaceskillentries.test.ts, docs/gateway/troubleshooting.md)
  • googlerest: The current checkout blames the trajectory metadata and support redaction lines to a recent commit touching those files, though the shallow/grafted history makes deeper authorship less clear. (role: recent current-line contributor; confidence: medium; commits: 32fbb9ff0193; files: src/trajectory/metadata.ts, src/logging/diagnostic-support-redaction.ts)
  • Hung-Che Lo: History links this author to the resolvedSkills/prompt preservation path that feeds the metadata consumer under review. (role: adjacent skills snapshot contributor; confidence: medium; commits: f8bcfb9d73f0; files: src/agents/skills/workspace.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 3156d94bcab0.

@openclaw-barnacle openclaw-barnacle Bot removed the proof: supplied External PR includes structured after-fix real behavior proof. label May 21, 2026
@clawsweeper clawsweeper Bot added status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 21, 2026
@clawsweeper

clawsweeper Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

ClawSweeper PR egg

✨ Hatched: 🌱 uncommon Neon Test Hopper

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🌱 uncommon.
Trait: guards the happy path.
Image traits: location review cove; accessory review stamp; palette sunrise gold and clean white; mood celebratory; pose leaning over a miniature review desk; shell starlit enamel shell; lighting calm overcast light; background delicate sparkle particles.
Share on X: post this hatch
Copy: My PR egg hatched a 🌱 uncommon Neon Test Hopper in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@clawsweeper

clawsweeper Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

🦞✅
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=ecb3df6c08efdf14b85848432c3c7d029f28c270)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-05-21T05:38:57Z
Merge commit: c9b6a8b408a7

What merged:

  • This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
  • Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:

  • PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
  • PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

The automerge loop is complete.

Automerge progress:

  • 2026-05-21 04:16:42 UTC merge check queued 99a204bd0833 (checks and exact-head review are ready)
  • 2026-05-21 05:17:16 UTC review queued 99a204bd0833 (queued)
  • 2026-05-21 05:32:54 UTC review queued ecb3df6c08ef (after repair)
  • 2026-05-21 05:38:47 UTC review passed ecb3df6c08ef (structured ClawSweeper verdict: pass (sha=ecb3df6c08efdf14b85848432c3c7d029f28c...)
  • 2026-05-21 05:38:59 UTC merged ecb3df6c08ef (merged by ClawSweeper automerge)

lukeboyett and others added 3 commits May 21, 2026 05:32
…apture

buildSkillsCapture and redactPathForSupport crash with
"Cannot read properties of undefined (reading 'startsWith' | 'localeCompare')"
when skillsSnapshot.resolvedSkills contains entries with undefined
name/filePath/baseDir. This happens in practice when a skill is rejected
by the symlink-escape guard in src/agents/skills/workspace.ts: the [skills]
warn log fires, but a partial entry still reaches the support-capture path.
Downstream, runEmbeddedAttempt builds the trajectory run metadata on every
turn, the undefined fields hit String-method calls, and the entire agent
turn fails with reason=unknown (burning through the model-fallback chain,
which all share this code path).

Defensive consumer fix:
- redactPathForSupport: widen file arg to string | null | undefined,
  return "" for non-string input
- buildSkillsCapture: filter entries without a string name; if every
  resolvedSkills entry is filtered out, fall back to skillsSnapshot.skills
  so support bundles don't lose the skill inventory entirely; null-safe
  localeCompare comparator

Security posture unchanged -- the symlink-escape rejection in
src/agents/skills/workspace.ts still refuses to load escaped symlinks.
This PR only prevents the downstream support-capture consumer from
crashing on the partial entries the rejection path leaves behind.

A producer-side cleanup (making symlink-escape rejects either skip the
entry or emit a placeholder name) is a reasonable follow-up but has
broader ripple; keeping this PR tightly scoped.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
CI check-test-types was failing on src/trajectory/metadata.test.ts because
tsgo:test is stricter than local pnpm check. Rejected sourceInfo: {} and
bare 'undefined' assignments against typed SourceInfo / string fields.

Fill sourceInfo with a real SourceInfo shape for the valid 'alpha' entry,
cast the intentionally-partial entries to ResolvedSkillEntry via an
'as unknown as' bridge so the intent (simulating a symlink-escape reject
leaking through) stays explicit without weakening the type on the valid
branch.

Tests: 6 passed (unchanged). tsgo:core:test clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@clawsweeper
clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-71185 branch from 99a204b to ecb3df6 Compare May 21, 2026 05:32
@clawsweeper
clawsweeper Bot merged commit c9b6a8b into main May 21, 2026
98 checks passed
@clawsweeper
clawsweeper Bot deleted the clawsweeper/automerge-openclaw-openclaw-71185 branch May 21, 2026 05:39
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
…apture (openclaw#84797)

Summary:
- This PR filters partial skill snapshot entries in trajectory support metadata, accepts nullish support-redaction paths, adds regression tests, and records the fix in the changelog.
- Reproducibility: yes. Source inspection on current main shows undefined skill path/name values can reach str ... and the related source PR provides redacted live before/after gateway logs for the symlink-escape scenario.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(trajectory): tighten test types for partial skill entries
- PR branch already contained follow-up commit before automerge: fix(trajectory): tolerate partial skill snapshot entries in support c…

Validation:
- ClawSweeper review passed for head ecb3df6.
- Required merge gates passed before the squash merge.

Prepared head SHA: ecb3df6
Review: openclaw#84797 (comment)

Co-authored-by: Luke Boyett <[email protected]>
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. size: S status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant