Skip to content

fix: preserve BOOTSTRAP.md in preseeded workspaces (#91931)#91988

Open
LiuwqGit wants to merge 1 commit into
openclaw:mainfrom
LiuwqGit:fix/preseeded-bootstrap-91931
Open

fix: preserve BOOTSTRAP.md in preseeded workspaces (#91931)#91988
LiuwqGit wants to merge 1 commit into
openclaw:mainfrom
LiuwqGit:fix/preseeded-bootstrap-91931

Conversation

@LiuwqGit

@LiuwqGit LiuwqGit commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Why does this matter now?

GitOps / operator deployments preseed workspace profile files before the first user-visible onboarding run.

What is the intended outcome?

Managed workspaces keep BOOTSTRAP.md until real onboarding evidence exists.

What is intentionally out of scope?

Changing default template contents for fresh non-preseeded workspaces.

What does success look like?

ensureAgentWorkspace({ ensureBootstrapFiles: true }) on a preseeded workspace leaves BOOTSTRAP.md present and does not set setupCompletedAt.

What should reviewers focus on?

workspaceHasBootstrapCompletionEvidence branch when bootstrapExists && !setupCompletedAt.

Linked context

Which issue does this close?

Closes #91931

Which issues, PRs, or discussions are related?

Related operator/GitOps preseeded workspace bootstrap behavior.

Was this requested by a maintainer or owner?

No — community bug report.

Real behavior proof (required for external PRs)

  • Behavior or issue addressed: Preseeded custom profile files must not auto-complete bootstrap and delete BOOTSTRAP.md before first onboarding.
  • Real environment tested: Local OpenClaw checkout on Windows 11; Node 24 with node --import tsx; temp workspace under %TEMP%.
  • Exact steps or command run after this patch:
cd openclaw
node --import tsx -e "
import fs from 'node:fs/promises';
import path from 'node:path';
import os from 'node:os';
import {
  ensureAgentWorkspace,
  DEFAULT_BOOTSTRAP_FILENAME,
  DEFAULT_SOUL_FILENAME,
  DEFAULT_IDENTITY_FILENAME,
  DEFAULT_USER_FILENAME,
} from './src/agents/workspace.ts';

const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'openclaw-preseed-proof-'));
await fs.writeFile(path.join(tempDir, DEFAULT_SOUL_FILENAME), '# SOUL.md\n\nCustom platform soul\n');
await fs.writeFile(path.join(tempDir, DEFAULT_IDENTITY_FILENAME), '# IDENTITY.md\n\nCustom platform identity\n');
await fs.writeFile(path.join(tempDir, DEFAULT_USER_FILENAME), '# USER.md\n\nCustom platform user\n');
await fs.writeFile(path.join(tempDir, DEFAULT_BOOTSTRAP_FILENAME), '# BOOTSTRAP.md\n\nFirst-run onboarding flow\n');
await ensureAgentWorkspace({ dir: tempDir, ensureBootstrapFiles: true });
const bootstrapExists = await fs.access(path.join(tempDir, DEFAULT_BOOTSTRAP_FILENAME)).then(() => true).catch(() => false);
const state = JSON.parse(await fs.readFile(path.join(tempDir, 'openclaw-workspace-state.json'), 'utf8'));
console.log('BOOTSTRAP.md exists:', bootstrapExists);
console.log('workspace-state:', JSON.stringify(state, null, 2));
"
  • Evidence after fix (screenshot, recording, terminal capture, console output, redacted runtime log, linked artifact, or copied live output):
fresh preseed: BOOTSTRAP.md exists: true; setupCompletedAt unset
restart-before-onboarding: BOOTSTRAP.md exists: true; setupCompletedAt unset; reconcile.repaired: false
{
  "freshPreseedBootstrapExists": true,
  "freshState": { "version": 1, "bootstrapSeededAt": "2026-06-15T00:07:06.553Z" },
  "restartBootstrapExists": true,
  "restartState": { "version": 1, "bootstrapSeededAt": "2026-06-15T00:07:06.553Z" },
  "reconcileRepaired": false
}
  • Observed result after fix: Fresh preseed keeps BOOTSTRAP.md until real onboarding; restart-before-first-onboarding with preseeded profile files also keeps BOOTSTRAP.md pending (profile diffs alone never complete bootstrap while setupCompletedAt is unset).
  • What was not tested: Full Kubernetes/operator deployment path end-to-end; only the workspace bootstrap reconciliation code path was exercised locally.
  • Proof limitations or environment constraints: Reproduced via direct ensureAgentWorkspace call rather than a long-running gateway pod; supplemental vitest regression also passes.
  • Before evidence (optional but encouraged): On affected main behavior, preseeded profile diffs alone could mark bootstrap complete and remove BOOTSTRAP.md (see issue [Bug]: Preseeded SOUL.md/IDENTITY.md/USER.md make OpenClaw auto-complete bootstrap and delete user-provided BOOTSTRAP.md before first run #91931 repro).

Tests and validation

Which commands did you run?

  • Live repro script above (node --import tsx) → BOOTSTRAP.md exists: true
  • pnpm test src/agents/workspace.test.ts → 46 passed, 3 skipped

What regression coverage was added or updated?

  • Fresh preseed: preserves BOOTSTRAP.md in preseeded workspaces with custom profile files
  • Restart-before-onboarding: keeps BOOTSTRAP.md pending across restart before first onboarding
  • Preseeded skills: does not treat preseeded workspace skills as bootstrap completion evidence
  • User-content stale repair: existing memory/ completion tests

What failed before this fix, if known?

Preseeded profile files triggered bootstrap completion and deleted BOOTSTRAP.md before first user onboarding.

If no test was added, why not?

N/A — regression test added.

Risk checklist

Did user-visible behavior change? (Yes)

Yes — preseeded managed workspaces keep BOOTSTRAP.md until real completion evidence.

Did config, environment, or migration behavior change? (No)

No schema/config migration.

Did security, auth, secrets, network, or tool execution behavior change? (No)

No.

What is the highest-risk area?

Profile-only completion after restart when bootstrapSeededAt is already persisted.

How is that risk mitigated?

While BOOTSTRAP.md exists and setupCompletedAt is unset, completion evidence requires durable user-content (memory/, skills/*/SKILL.md); profile diffs never suffice across restarts.

Current review state

What is the next action?

Awaiting maintainer merge — #91955 closed as superseded by maintainer; CI green; ClawSweeper rating platinum hermit.

What is still waiting on author, maintainer, CI, or external proof?

  • Maintainer accepts intentional compatibility/session-state boundary (merge-risk: 🚨 compatibility, merge-risk: 🚨 session-state)
  • Proof path fixed to openclaw-workspace-state.json
  • bootstrapExists made required; includeSkills JSDoc added

Which bot or reviewer comments were addressed?

  • P0: PR body proof path fixed to openclaw-workspace-state.json
  • P1: bootstrapExists made required (was optional)
  • P1: includeSkills !== false to ?? true, with JSDoc
  • All previous ClawSweeper P1/P2 findings through 3b0228f
  • CI: 0 failing / 0 pending on head f6385f9

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 10, 2026
@LiuwqGit

Copy link
Copy Markdown
Contributor Author

PR follow-up:

  • Fixed Real behavior proof CI failure: PR body now includes required structured fields with live terminal output from node --import tsx repro (BOOTSTRAP.md exists: true, no setupCompletedAt).
  • Local policy check: evaluateRealBehaviorProofpassed.
  • Re-triggered failed Real behavior proof workflow run.

@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 14, 2026
@clawsweeper

clawsweeper Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 19, 2026, 10:57 PM ET / July 20, 2026, 02:57 UTC.

Summary
The branch prevents profile-file differences and preseeded workspace skills from completing bootstrap while BOOTSTRAP.md exists and setupCompletedAt is unset, with regression coverage for preseeded workspaces.

PR surface: Source +22, Tests +100. Total +122 across 3 files.

Reproducibility: yes. from source and the linked report: a preseeded workspace with custom profile files and BOOTSTRAP.md reaches bootstrap reconciliation, but this review did not execute the current-main reproduction path.

Review metrics: 1 noteworthy metric.

  • Completion evidence narrowed: 2 evidence classes disabled in the pending-bootstrap branch. Profile-file differences and workspace skills no longer complete bootstrap in this state, creating a user-upgrade compatibility decision.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #91931
Summary: This PR is the active candidate fix for the open managed/preseeded workspace bootstrap bug; the earlier alternative PR was closed unmerged as superseded.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🦐 gold shrimp
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Post a redacted current-head runtime transcript that reads the supported workspace-state result and shows BOOTSTRAP.md remains present with setupCompletedAt unset.
  • [P1] Add user-facing documentation for the pending-bootstrap completion rule.
  • Obtain maintainer confirmation of the legacy stale-bootstrap recovery tradeoff.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The PR includes copied terminal output, but its published command reads openclaw-workspace-state.json while the changed tests use the SQLite-backed workspace state store; provide a redacted current-head run that proves the supported state result and preserved BOOTSTRAP.md. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

  • [P1] The new rule changes stale-bootstrap recovery for existing workspaces: profile-only customization and preseeded skills no longer complete bootstrap while BOOTSTRAP.md remains and setupCompletedAt is unset, so some previously auto-repaired workspaces may retain an orphan bootstrap file.
  • [P1] The supplied terminal proof is not trustworthy for the current implementation because its command reads openclaw-workspace-state.json rather than demonstrating the SQLite-backed workspace-state result used by the changed code and tests.

Maintainer options:

  1. Confirm and document the new lifecycle contract (recommended)
    Accept the stricter completion rule only after a maintainer confirms the legacy-repair tradeoff, documentation explains it, and a real current-head run proves the supported state result.
  2. Retain a bounded legacy-repair path
    If profile-only stale repair remains a supported upgrade behavior, redesign the evidence rule and add an explicit upgrade regression test before merge.
  3. Pause pending product direction
    Do not merge the branch if maintainers do not want to alter the existing bootstrap-completion heuristic without a more explicit migration or product contract.

Next step before merge

  • [P1] A maintainer must choose the intended compatibility contract for stale bootstrap recovery; the contributor must also replace the invalid state-file proof with a current-head supported-state transcript.

Maintainer decision needed

  • Question: Should OpenClaw permanently treat an existing BOOTSTRAP.md with no setupCompletedAt as pending unless durable memory evidence exists, even for legacy workspaces whose profile customization previously triggered stale-bootstrap repair?
  • Rationale: The branch intentionally changes a persisted workspace lifecycle heuristic rather than only fixing an isolated crash; source-level tests establish the new behavior but cannot decide whether the compatibility boundary is the intended product contract.
  • Likely owner: katerinkaivanova — The report and follow-up discussion define the managed-workspace semantics and the user-visible regression boundary.
  • Options:
    • Adopt the stricter pending-bootstrap rule (recommended): Keep the proposed behavior, document it, and require current-head proof showing state-store output and preserved bootstrap behavior.
    • Preserve legacy profile-only repair: Revise the rule so existing workspaces can still use a clearly defined legacy completion signal, with focused upgrade coverage.

Security
Cleared: The diff changes local workspace-state reconciliation and tests only; it adds no dependency, workflow, secret, permission, or external-execution surface.

Review findings

  • [P2] Document the pending-bootstrap completion rule — src/agents/workspace.ts:436-458
Review details

Best possible solution:

Document the pending-bootstrap completion contract, obtain a redacted current-head runtime transcript that reads the supported workspace-state result, and have a maintainer explicitly accept the compatibility tradeoff before merge.

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

Yes from source and the linked report: a preseeded workspace with custom profile files and BOOTSTRAP.md reaches bootstrap reconciliation, but this review did not execute the current-main reproduction path.

Is this the best way to solve the issue?

Unclear: the branch is a narrow implementation of the managed-workspace fix, but its intentional change to legacy stale-bootstrap completion needs maintainer confirmation and public contract documentation.

Full review comments:

  • [P2] Document the pending-bootstrap completion rule — src/agents/workspace.ts:436-458
    The new branch permanently changes the condition under which an existing BOOTSTRAP.md is removed, but no user-facing documentation explains that profile edits and preseeded skills no longer count while setupCompletedAt is unset. Document the supported lifecycle and legacy-repair boundary before merge.
    Confidence: 0.89

Overall correctness: patch is incorrect
Overall confidence: 0.72

AGENTS.md: unclear because the file could not be read completely.

Codex review notes: model internal, reasoning high; reviewed against da10827439a4.

Label changes

Label changes:

  • add rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🦐 gold shrimp.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🧂 unranked krab, so this older rating label is no longer current.

Label justifications:

  • P1: The PR targets a first-run onboarding workflow that can silently be skipped in managed deployments.
  • merge-risk: 🚨 compatibility: The changed completion heuristic can alter recovery behavior for existing workspaces with an orphaned BOOTSTRAP.md.
  • merge-risk: 🚨 session-state: The branch changes when setupCompletedAt is recorded and when bootstrap state transitions to complete.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🦐 gold shrimp.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The PR includes copied terminal output, but its published command reads openclaw-workspace-state.json while the changed tests use the SQLite-backed workspace state store; provide a redacted current-head run that proves the supported state result and preserved BOOTSTRAP.md. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

PR surface:

Source +22, Tests +100. Total +122 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 1 25 3 +22
Tests 2 100 0 +100
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 125 3 +122

What I checked:

  • Targeted bootstrap rule: The proposed pending-bootstrap branch requires bootstrapExists, checks for unset setupCompletedAt, and disables skill evidence before allowing profile configuration to complete bootstrap. (src/agents/workspace.ts:436, db9d9d1652ce)
  • Regression coverage: The new test module covers preseeded custom profiles, restart-before-onboarding behavior, and preseeded skills, while existing stale-repair tests now create memory/ evidence. (src/agents/workspace-preseeded.test.ts:28, db9d9d1652ce)
  • Proof mismatch: The PR body’s claimed live command reads openclaw-workspace-state.json, but the branch’s own regression tests import workspace-state-store and create a state-only test setup; the prior completed review also identified this as insufficient current-head proof. (src/agents/workspace-preseeded.test.ts:7, db9d9d1652ce)
  • Canonical report: The open bug report documents the central behavior: preseeded profile files cause bootstrap completion and remove BOOTSTRAP.md before first onboarding; this PR is its current linked fix candidate.

Likely related people:

  • LiuwqGit: Authored the current head and repeatedly refined the proposed bootstrap-completion rule in response to review feedback. (role: current patch author and recent follow-up contributor; confidence: medium; commits: db9d9d1652ce; files: src/agents/workspace.ts, src/agents/workspace-preseeded.test.ts, src/agents/workspace.test.ts)
  • katerinkaivanova: Reported the managed-workspace failure and identified the preseeded-skills edge case that the branch explicitly addresses. (role: bug reporter and adjacent behavior reviewer; confidence: medium; files: src/agents/workspace.ts)
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.

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.
Review history (12 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-09T00:48:48.320Z sha 8a2fa64 :: needs changes before merge. :: [P2] Keep restart coverage free of completion evidence | [P2] Update docs for the pending-bootstrap exception
  • reviewed 2026-07-16T04:42:56.698Z sha 942101d :: needs changes before merge. :: [P2] Document the pending-bootstrap evidence rule
  • reviewed 2026-07-16T05:24:17.267Z sha 942101d :: needs changes before merge. :: [P2] Update docs for the pending-bootstrap exception
  • reviewed 2026-07-17T17:34:17.750Z sha a0e066b :: needs changes before merge. :: [P2] Document the pending-bootstrap completion rule
  • reviewed 2026-07-19T02:55:40.179Z sha 8be6706 :: needs changes before merge. :: [P2] Document the pending-bootstrap completion rule
  • reviewed 2026-07-19T10:19:45.901Z sha 706e40d :: needs changes before merge. :: [P2] Document the pending-bootstrap completion rule
  • reviewed 2026-07-19T15:26:09.548Z sha 4166ff9 :: needs real behavior proof before merge. :: [P2] Document the pending-bootstrap completion rule
  • reviewed 2026-07-20T02:14:28.074Z sha db9d9d1 :: needs real behavior proof before merge. :: [P2] Document the pending-bootstrap completion rule

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. labels Jun 14, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 15, 2026
@LiuwqGit

Copy link
Copy Markdown
Contributor Author

Addressed ClawSweeper P1: profile-only stale BOOTSTRAP repair is restored after the first lifecycle once bootstrapSeededAt is persisted on disk.

  • Added bootstrapSeededPreviouslyPersisted guard in workspaceHasBootstrapCompletionEvidence
  • Regression: repairs stale BOOTSTRAP.md from profile diffs after bootstrapSeededAt was persisted
  • Fresh preseed preservation test unchanged

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 15, 2026
@LiuwqGit

Copy link
Copy Markdown
Contributor Author

Addressed ClawSweeper P1/P2 from latest review:

  • P1 restart path: removed bootstrapSeededPreviouslyPersisted re-enable of profile-diff completion. While BOOTSTRAP.md exists and setupCompletedAt is unset, only durable user-content evidence (memory/, skills/*/SKILL.md) can complete bootstrap — persisted bootstrapSeededAt alone is not enough.
  • P2 regression: keeps BOOTSTRAP.md pending across restart before first onboarding — first ensureAgentWorkspace persists seed marker, second call after profile customization still leaves BOOTSTRAP.md pending and reconcile returns repaired: false.

Tests: node scripts/run-vitest.mjs src/agents/workspace.test.ts -t "BOOTSTRAP|bootstrap|preseeded|stale|restart" → 42 passed

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 15, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 15, 2026
@LiuwqGit

Copy link
Copy Markdown
Contributor Author

PR follow-up (babysit):

  • Rebased onto latest main (ac1042b09)
  • Fixed CI check-lint / check-additional-extension-bundled: removed unnecessary ! in manager-embedding-ops.ts:313 (main regression from merged memory-core changes, not bootstrap logic)
  • ClawSweeper re-review on 68dc44be was in progress — this push rebases that fix; CI re-running

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@LiuwqGit
LiuwqGit force-pushed the fix/preseeded-bootstrap-91931 branch from 68dc44b to 4ee84a9 Compare June 15, 2026 03:21
@openclaw-barnacle openclaw-barnacle Bot added the extensions: memory-core Extension: memory-core label Jun 15, 2026
@LiuwqGit

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. 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. labels Jun 25, 2026
@UzairBaigMW

UzairBaigMW commented Jun 29, 2026

Copy link
Copy Markdown

Is the issue resolved ? or is BOOTSTRAP.md still skipped for preseeded md files + skip onboarding ? Im still facing the issue, is it only me (operator error) or this issue still persists ?

@katerinkaivanova

Copy link
Copy Markdown

Is the issue resolved ? or is BOOTSTRAP.md still skipped for preseeded md files + skip onboarding ? Im still facing the issue, is it only me (operator error) or this issue still persists ?

I think this is still expected on released builds. #91988 is the active fix candidate, but it is still open and not shipped yet.

So if you're running a regular OpenClaw image, this does not necessarily look like operator error. It should stop only after this fix (or an equivalent one) lands and the updated version is deployed.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jul 2, 2026
@LiuwqGit
LiuwqGit force-pushed the fix/preseeded-bootstrap-91931 branch from b3e1a83 to 4df938a Compare July 2, 2026 11:47
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jul 2, 2026
@LiuwqGit
LiuwqGit force-pushed the fix/preseeded-bootstrap-91931 branch from 4df938a to 296eabe Compare July 9, 2026 00:19
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Jul 9, 2026
… user content

In preseeded/managed workspaces, profile file differences alone should not
prove bootstrap completion when BOOTSTRAP.md still exists and setupCompletedAt
is unset. The preseeded gate checks for actual user content (memory/,
IDENTITY.md edits, SOUL.md edits) excluding skills, since platform-seeded
skills are not user evidence of onboarding completion.

- Add includeSkills option to hasWorkspaceUserContentEvidence (default true)
- Add bootstrapExists/state params to workspaceHasBootstrapCompletionEvidence
- Block stale bootstrap repair when BOOTSTRAP.md exists, no setupCompletedAt,
  and no user content evidence (excluding skills)
- Add memory/ dir to 5 existing tests that need user content for repair
- Add workspace-preseeded.test.ts with 3 preseeded-specific tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P1 High-priority user-facing bug, regression, or broken workflow. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: S status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Preseeded SOUL.md/IDENTITY.md/USER.md make OpenClaw auto-complete bootstrap and delete user-provided BOOTSTRAP.md before first run

3 participants