Skip to content

fix: scope evolution disable/explain and migrate memory roots - #134

Draft
cursor[bot] wants to merge 4 commits into
mainfrom
cursor/critical-bug-investigation-b649
Draft

cursor[bot] wants to merge 4 commits into
mainfrom
cursor/critical-bug-investigation-b649

Conversation

@cursor

@cursor cursor Bot commented Aug 6, 2026

Copy link
Copy Markdown

Summary

  • Fix evolution disable / explain mutating/reading global ~/.skilllite/chat instead of the selected workspace chat/ root by adding --workspace/-w and routing through chat_root_for_workspace.
  • Fix claw migrate / migrate openclaw writing OpenClaw memory into global chat memory despite --workspace; memory now lands under <workspace>/chat/memory (plan display, apply, and reindex).
  • Harden skilllite_fs::atomic_write staging so same-stem siblings (examples.json / examples.md) and .tmp destinations no longer share one temp path (follow-up to artifact staging fix in fix: prevent artifact temp collisions and proposal ID clashes #133).

Bug and Impact

  • evolution disable from a project without SKILLLITE_WORKSPACE could not find project rules and instead disabled rules in ~/.skilllite/chat/prompts/rules.json, leaving the intended project rules active.
  • claw migrate -w <project> copied MEMORY.md / daily notes into ~/.skilllite/chat/memory, splitting persona/skills (project) from memory (global) and risking cross-project data leakage.
  • Shared with_extension("tmp") staging can cross-corrupt concurrent writes to same-stem different extensions.

Task Linkage

  • Task ID: TASK-2026-082
  • Task folder: tasks/TASK-2026-082-path-root-scoping-atomic-write/

Injected Specs

  • spec/verification-integrity.md
  • spec/task-artifact-language.md
  • spec/architecture-boundaries.md
  • spec/security-nonnegotiables.md
  • spec/rust-conventions.md
  • spec/testing-policy.md
  • spec/docs-sync.md

Validation Evidence

  • Commands executed:
    • cargo test -p skilllite-fs --lib
    • cargo test -p skilllite-commands --lib plan_marks_soul_and_memory
    • cargo test -p skilllite --test cli_evolution_workspace
    • migrate dry-run PoC under isolated HOME
    • cargo clippy -p skilllite-fs -p skilllite-commands -p skilllite --all-targets -- -D warnings -A clippy::question_mark -A clippy::useless_borrows_in_formatting
    • cargo fmt --check
    • python3 scripts/validate_tasks.py
  • Key results:
    • skilllite-fs: 9 passed (includes atomic_write stem + .tmp destination)
    • cli_evolution_workspace: 2 passed (includes disable workspace isolation)
    • migrate PoC: Memory dir under <project>/chat/memory, not ~/.skilllite/chat/memory
    • task validation: 71 task directories checked passed

Regression Scope

Docs Sync (EN/ZH)

  • Updated EN + ZH docs
  • Files:
    • README.md
    • docs/zh/README.md
    • docs/en/ASSISTANT-SPLIT-ARCHITECTURE.md
    • docs/zh/ASSISTANT-SPLIT-ARCHITECTURE.md

Review Checklist

  • Acceptance criteria in tasks/TASK-2026-082-path-root-scoping-atomic-write/TASK.md satisfied
  • STATUS.md updated with validation evidence
  • REVIEW.md includes merge readiness decision
  • tasks/board.md status is up to date
Open in Web View Automation 

boyex345-boop and others added 4 commits August 6, 2026 11:10
Disable/explain now take --workspace and mutate the selected chat
root. OpenClaw migrate writes memory under <workspace>/chat/memory.
skilllite_fs::atomic_write uses basename-preserving unique staging.

Co-authored-by: EXboy <EXboys@users.noreply.github.com>
Record test evidence, mark task done on the board, and apply rustfmt
to touched migration/evolution workspace tests.

Co-authored-by: EXboy <EXboys@users.noreply.github.com>
Life Pulse called inspect-only evolution status with a permanent None
anchor, so arm_periodic never became true. Seed on first heartbeat and
advance when the periodic arm contributes, matching growth_due.

Co-authored-by: EXboy <EXboys@users.noreply.github.com>
Record validation results, mark TASK-2026-083 done, and sync the board.

Co-authored-by: EXboy <EXboys@users.noreply.github.com>
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