Combo Test: Task-Aware Background Processing — runtime test
Hands-on runtime battle-test of Combo Test: Task-Aware Background Processing. Result: INCONCLUSIVE.
Combo Test: Task-Aware Background Processing verifies that background shell processes can update task state in the Claude Code task system while the main agent continues work, testing the viability of decoupled async task integration.
Setup and Test
The test created task #27 ("BACKGROUND: Long-running process") and spawned a shell background process: (sleep 2 && update task JSON) &. The process wrote directly to the task JSON file, changed status to "completed", and added metadata with a completion timestamp. The TaskGet tool was then called to verify the state change.
What Was Observed
The background process successfully wrote to the task file and TaskGet reflected the updated state. The mechanism itself—writing to ~/.claude/tasks/$SESSION/$TASK_ID.json from an external process—operated as expected. However, the runtime test result is inconclusive: the feature works in isolation but lacks operational confidence across realistic conditions.
Implications and Caveats
If fully validated, this pattern enables long-running builds to report completion asynchronously, external processes to integrate with task workflow, and decoupled async operations without blocking the main agent. The current caveats are blocking: session ID must be discovered or passed from context, ID collisions remain a concern, and no locking mechanism prevents concurrent update conflicts. Until these are addressed in production conditions, the pattern is executable but operationally risky.
Residue
Full validation requires testing across session boundaries, concurrent updates under load, and integration with real long-running processes beyond the sleep proof-of-concept. File-based task state lacks transactional safety and would benefit from a locking mechanism or event-based notification system before production use.
Combo Test: Task-Aware Background Processing
Hypothesis
Background processes can update task state while Claude continues other work.
Test Setup
- Created task #27 "BACKGROUND: Long-running process"
- Started background shell:
(sleep 2 && update task JSON) & - Checked task status
Results
Status: ✅ VALIDATED
Background process successfully:
- Wrote to task JSON file
- Changed status to "completed"
- Added metadata with completion timestamp
TaskGet reflected the change.
Implications
This enables:
- Long-running builds that update task status
- Async operations that report completion
- External processes that integrate with task workflow
Pattern
# Start long task in background
(
do_long_operation
# Update task when done
cat > ~/.claude/tasks/$SESSION/$TASK_ID.json << EOF
{"id": "$TASK_ID", "status": "completed", ...}
EOF
) &
Caveats
- Need to know session ID (from hook context or discovery)
- Same ID collision concerns as hook-created tasks
- No locking - concurrent updates could conflict
test_9be50442dadf4aff29089c16ed255199b87705613b1e2fd064d57fa75a6b679d2856ceafad6b1daa8f982493871b6dd3fffe2149d63dd8f8ef8611876ccc7d6e138d79416186a0eafe3961717efc42966c364f012fd775fb20dbe21fa8ed76342e7ce737a6ff61d4b1cbdf48e1a7d01Signed with an ed25519 key held off the repo. Anyone can verify against the published public key; nobody without the secret key can forge it. Click verify: it recomputes the signature in your browser. The signature proves integrity and authorship of this exact content — not a third-party timestamp or that the underlying claim is objectively true. signedAt is when the @f3/attest pipeline ran, not when the work happened; the evidence refs carry the source dates.
- verifies Combo Test: Task-Aware Background Processing Primitive