mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 13:55:50 +00:00
Squashed 5 commits: Features (from 5 feature branches): - MCP fix, pipe mute, stub recovery - KAIROS activation, openclaw autonomy - Daemon/job command hierarchy + cross-platform bg engine Upstream fixes: - fix: Bun.hash compatibility - chore: chrome dependency update - docs: browser support guide MIME detection fix: - Screenshot detectMimeFromBase64(): decode raw bytes from base64 instead of broken charCodeAt comparison - Fixes API 400 on Windows (JPEG) and macOS (PNG) screenshots
3.2 KiB
3.2 KiB
OpenClaw Autonomy Baseline Test Spec
Purpose
This test spec locks the current behavior of the existing trigger and context layers before any formal autonomy-subsystem implementation begins.
At this stage, production code is read-only. Only test files, fixtures, and planning documents may change.
Goal
Establish a stable baseline around the parts of Claude-code-bast that later autonomy work is most likely to touch:
- proactive state handling
- cron task storage semantics
- cron scheduler helper semantics
- user-context cache and
CLAUDE.mdinjection behavior
Out of Scope for This Baseline Round
- New authority behavior (
AGENTS.md/HEARTBEAT.md) - New detached-run ledger behavior
- New flow behavior
- UI redesign
Files Under Baseline Protection
src/proactive/index.tssrc/utils/cronTasks.tssrc/utils/cronScheduler.tssrc/context.ts
Test Files Added In This Round
src/proactive/__tests__/state.baseline.test.tssrc/commands/__tests__/proactive.baseline.test.tssrc/utils/__tests__/cronTasks.baseline.test.tssrc/utils/__tests__/cronScheduler.baseline.test.tssrc/__tests__/context.baseline.test.ts
Baseline Assertions
Proactive state
- Activating proactive mode sets active state and activation source.
- Pausing proactive mode suppresses
shouldTick()and clearsnextTickAt. - Blocking context suppresses
shouldTick()and clearsnextTickAt. - Subscribers are notified on state transitions.
- The
/proactivecommand enables proactive mode and emits the expected hidden reminder. - The
/proactivecommand disables proactive mode on the second invocation.
Cron task storage
- Session-only cron tasks remain in memory only.
- Durable cron tasks are persisted to
.claude/scheduled_tasks.json. - Daemon-style
dir-scoped reads exclude session-only cron tasks. removeCronTasks()withoutdircan remove session-only tasks.removeCronTasks()withdirdoes not mutate session-only task storage.
Cron scheduler helpers
isRecurringTaskAged()preserves current aging semantics.buildMissedTaskNotification()preserves the current AskUserQuestion safety wording.buildMissedTaskNotification()preserves code-fence hardening for prompt bodies that contain backticks.
User context caching
getUserContext()includescurrentDate.getUserContext()includes mockedclaudeMdcontent when memory loading is enabled.CLAUDE_CODE_DISABLE_CLAUDE_MDSsuppressesclaudeMd.setSystemPromptInjection()clears the memoized user-context cache.getSystemContext()reflects the injection after cache invalidation.
Remaining Baseline Gaps
The following areas are intentionally deferred because they require higher-cost harnessing and should still avoid production-code changes:
useScheduledTasks.tshook-level runtime behaviorsrc/cli/print.tsfull headless scheduler loop behavioruseProactive.tshook timer behavior- end-to-end queue interaction between proactive ticks and
SleepTool
Acceptance
This baseline round is complete when:
- The four new test files pass.
- No production source files are modified.
- The tests are stable enough to serve as a pre-implementation guardrail.