Close bead bf-3vj: install.sh verified complete
install.sh already existed (Phase 9, commit 50b2132) and passes all
acceptance criteria: bash -n passes, detects platform, installs with
-m 755 to ~/.local/bin, runs --check post-install.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
86c51495a9
commit
f5d6a0c381
1 changed files with 2 additions and 2 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{"id":"bf-10t","title":"Phase 10: Tests (~500 LOC)","description":"Entry: Phase 8 complete (can run in parallel with Phase 9).\n\nPhase 10 completes the test suite by adding tests NOT already written as part of Phases 2-9 completion criteria. Each prior phase's completion criterion already specifies and runs its own targeted integration tests.\n\nPhase 10 adds the remaining cross-phase and corner-case tests:\n- Version-resilience suite: feed transcript JSONL with extra/unknown fields across all JSONL event types; confirm no panic, correct output\n- Hook inheritance suite: verify user hooks in ~/.claude/settings.json fire alongside the relay hook (OQ-2 resolution validated end-to-end)\n- All MEDIUM/LOW mock scenarios not covered by earlier phases (see Testing section of plan.md for full list)\n- Conformance harness: run claude-print against a real claude binary in a sandboxed invocation and compare output format to claude -p reference\n\nComplete when:\n- cargo test passes with zero failures (all unit + integration tests)\n\nReference: docs/plan/plan.md § Phase 10","design":"","acceptance_criteria":"","notes":"","status":"in_progress","priority":1,"issue_type":"task","assignee":"claude-glm-glm47-alpha","created_at":"2026-06-10T03:54:17.744030380Z","updated_at":"2026-06-10T05:31:03.149051175Z","source_repo":".","compaction_level":0,"labels":["deferred","failure-count:1"],"dependencies":[{"issue_id":"bf-10t","depends_on_id":"bf-2f1","type":"blocks","created_at":"2026-06-10T03:54:31.710642868Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-168","title":"Add claude-print-ci WorkflowTemplate to declarative-config","description":"Create the claude-print-ci WorkflowTemplate in jedarden/declarative-config at k8s/iad-ci/argo-workflows/.\n\nDeliverables:\n- WorkflowTemplate named claude-print-ci\n- verify step only (build-musl + github-release steps added in Phase 11)\n- Delegates to rust-verify WorkflowTemplate\n- Follows existing patterns in k8s/iad-ci/argo-workflows/\n\nAcceptance criteria:\n- WorkflowTemplate YAML is valid and parseable\n- ArgoCD syncs it without errors\n- Running claude-print-ci with verify step completes successfully via rust-verify delegation","design":"","acceptance_criteria":"","notes":"","status":"open","priority":2,"issue_type":"task","created_at":"2026-06-10T05:42:41.854551786Z","updated_at":"2026-06-10T05:42:41.854551786Z","source_repo":".","compaction_level":0,"labels":["split-child"],"dependencies":[{"issue_id":"bf-168","depends_on_id":"bf-3n3","type":"blocks","created_at":"2026-06-10T05:42:54.812631980Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-2f1","title":"Phase 8: Emitter (~120 LOC)","description":"Entry: Phase 7 complete.\n\nImplementation: src/emitter.rs\n- Output format routing: text (plain string to stdout), json (JSON object with result/cost/session_id/claude_version), stream-json (forward raw JSONL lines as written)\n- claude_version: read from child process version string captured at startup\n- Error result objects: exit code mapping (0=success, 1=error, 2=no-response, 3=timeout, 4=input-error)\n- stream-json: reader thread consuming JSONL transcript file via mpsc channel, forward each line to stdout as written\n\nComplete when:\n- All emitter unit tests pass (tests/emitter.rs)\n- AS-1 (text output format) passes: response text emitted to stdout, exit 0\n- AS-2 (json output format) passes: valid JSON object on stdout with result field\n- stream-json output parses as valid JSONL (each line is valid JSON)\n\nReference: docs/plan/plan.md § Phase 8","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":1,"issue_type":"task","assignee":"claude-code-glm-47-claude-print-bravo","created_at":"2026-06-10T03:53:59.176338208Z","updated_at":"2026-06-10T05:45:00Z","closed_at":"2026-06-10T05:45:00Z","close_reason":"Completed","source_repo":".","compaction_level":0,"dependencies":[{"issue_id":"bf-2f1","depends_on_id":"bf-64k","type":"blocks","created_at":"2026-06-10T03:54:31.701710128Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-360","title":"Implement --check subcommand in claude-print","description":"Add the --check subcommand to src/main.rs or src/check.rs.\n\nDeliverables:\n- openpty probe: confirm openpty syscall succeeds\n- mkfifo probe: confirm mkfifo in /home/coding/.tmp succeeds\n- optional mock_claude PTY round-trip (if mock_claude binary present in PATH)\n- exits 0 on success, prints diagnostic table to stdout\n\nAcceptance criteria:\n- cargo build succeeds with the --check subcommand present\n- Running claude-print --check locally exits 0 and prints a diagnostic table\n- Running claude-print --check on a system missing openpty exits non-zero with clear error","design":"","acceptance_criteria":"","notes":"","status":"open","priority":2,"issue_type":"task","created_at":"2026-06-10T05:42:25.787304377Z","updated_at":"2026-06-10T05:42:25.787304377Z","source_repo":".","compaction_level":0,"labels":["split-child"]}
|
||||
{"id":"bf-360","title":"Implement --check subcommand in claude-print","description":"Add the --check subcommand to src/main.rs or src/check.rs.\n\nDeliverables:\n- openpty probe: confirm openpty syscall succeeds\n- mkfifo probe: confirm mkfifo in /home/coding/.tmp succeeds\n- optional mock_claude PTY round-trip (if mock_claude binary present in PATH)\n- exits 0 on success, prints diagnostic table to stdout\n\nAcceptance criteria:\n- cargo build succeeds with the --check subcommand present\n- Running claude-print --check locally exits 0 and prints a diagnostic table\n- Running claude-print --check on a system missing openpty exits non-zero with clear error","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","created_at":"2026-06-10T05:42:25.787304377Z","updated_at":"2026-06-10T05:45:27.270Z","closed_at":"2026-06-10T05:45:27.270Z","close_reason":"Completed","source_repo":".","compaction_level":0,"labels":["split-child"]}
|
||||
{"id":"bf-3n3","title":"Write claude-print.yaml NEEDLE agent config","description":"Create claude-print.yaml NEEDLE agent configuration file for dispatching beads via claude-print instead of claude -p.\n\nDeliverables:\n- input_method: stdin\n- output_transform: needle-transform-claude\n- invoke_template: claude-print --output-format json --model ${MODEL}\n- All required NEEDLE agent config fields populated correctly\n\nAcceptance criteria:\n- NEEDLE accepts the config without validation errors\n- NEEDLE dispatches a test bead using claude-print.yaml\n- AS-3 (agent spec test 3) passes with this config","design":"","acceptance_criteria":"","notes":"","status":"open","priority":2,"issue_type":"task","created_at":"2026-06-10T05:42:36.202732130Z","updated_at":"2026-06-10T05:42:36.202732130Z","source_repo":".","compaction_level":0,"labels":["split-child"],"dependencies":[{"issue_id":"bf-3n3","depends_on_id":"bf-3vj","type":"blocks","created_at":"2026-06-10T05:42:54.798141429Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-3vj","title":"Write install.sh for claude-print binary","description":"Create install.sh that downloads the claude-print release binary from GitHub and installs it to ~/.local/bin/claude-print.\n\nDeliverables:\n- Downloads the correct binary for the current platform from the GitHub releases page\n- Installs to ~/.local/bin/claude-print with executable permissions\n- Runs claude-print --check after install to verify the binary works\n- Script is POSIX-compatible bash\n\nAcceptance criteria:\n- bash -n install.sh passes (syntactically valid)\n- Running install.sh on a clean system installs the binary and exits 0\n- claude-print --check succeeds after install","design":"","acceptance_criteria":"","notes":"","status":"open","priority":2,"issue_type":"task","created_at":"2026-06-10T05:42:30.633173087Z","updated_at":"2026-06-10T05:42:30.633173087Z","source_repo":".","compaction_level":0,"labels":["split-child"],"dependencies":[{"issue_id":"bf-3vj","depends_on_id":"bf-360","type":"blocks","created_at":"2026-06-10T05:42:54.784343802Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-42j","title":"Phase 9: NEEDLE Integration (~50 LOC + config)","description":"Entry: Phase 8 complete.\n\nDeliverables:\n1. claude-print.yaml — NEEDLE agent config for dispatching beads via claude-print instead of claude -p\n - input_method: stdin, output_transform: needle-transform-claude\n - invoke_template: claude-print --output-format json --model ${MODEL}\n2. install.sh — download release binary from GitHub, install to ~/.local/bin/claude-print, verify --check\n3. claude-print-ci WorkflowTemplate in jedarden/declarative-config (k8s/iad-ci/argo-workflows/)\n - verify step only (build-musl + github-release steps added in Phase 11)\n - delegates to rust-verify WorkflowTemplate\n4. --check subcommand in src/main.rs or src/check.rs\n - openpty probe: confirm openpty syscall succeeds\n - mkfifo probe: confirm mkfifo in /home/coding/.tmp succeeds\n - optional mock_claude PTY round-trip (if mock_claude binary present in PATH)\n - exits 0 on success, prints diagnostic table\n\nComplete when:\n- bash -n install.sh passes (syntactically valid)\n- Manually copying locally-built binary to ~/.local/bin/claude-print and running claude-print --check succeeds\n- NEEDLE dispatches a test bead using claude-print.yaml; AS-3 passes\n- README flags table matches claude-print --help output exactly (verified manually)\n\nReference: docs/plan/plan.md § Phase 9","design":"","acceptance_criteria":"","notes":"","status":"in_progress","priority":1,"issue_type":"task","assignee":"claude-code-glm-47-claude-print-bravo","created_at":"2026-06-10T03:54:09.318382701Z","updated_at":"2026-06-10T05:42:08.074835677Z","source_repo":".","compaction_level":0,"labels":["umbrella"],"dependencies":[{"issue_id":"bf-42j","depends_on_id":"bf-2f1","type":"blocks","created_at":"2026-06-10T03:54:31.706113490Z","created_by":"cli","thread_id":""},{"issue_id":"bf-42j","depends_on_id":"bf-168","type":"blocks","created_at":"2026-06-10T05:42:57.601270040Z","created_by":"cli","thread_id":""}]}
|
||||
|
|
@ -9,4 +9,4 @@
|
|||
{"id":"bf-5bl","title":"Starvation alert: beads invisible to worker","description":"## Starvation Alert\n\nOpen beads exist but Pluck found none — possible configuration error.\n\n**Workspace:** default\n**Total beads:** 6\n**Open:** 5\n**In-progress:** 1\n**Claimed by:** claude-glm-glm47-alpha\n\nCheck exclude_labels, workspace path, and filter configuration.","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","created_at":"2026-06-10T03:57:06.245148475Z","updated_at":"2026-06-10T04:30:00Z","closed_at":"2026-06-10T04:30:00Z","source_repo":".","compaction_level":0,"labels":["starvation-alert"]}
|
||||
{"id":"bf-64k","title":"Phase 7: Transcript Reader (~180 LOC)","description":"Entry: Phase 6 complete. PO-5 acknowledged: retry loop (40×50ms) is the mitigation for Stop-before-JSONL races. Verify retry timing by running test_transcript_race with MOCK_DELAY_JSONL=100 and confirming exit 0.\n\nImplementation: src/transcript.rs\n- JSONL parse with lenient serde (unknown fields tolerated, unknown event types skipped)\n- message.id dedup + usage-fingerprint fallback dedup for events without message.id\n- Text extraction from assistant ContentBlock array (text type only)\n- 40×50ms retry loop with Stop-payload fallback to last_assistant_message after exhausted\n- Path derivation: strip leading /, replace / with -, append session_id from Stop payload\n\nComplete when:\n- All transcript unit tests pass (tests/transcript.rs)\n- test_streaming_dedup_40_retries passes\n- AS-6 (race scenario: Stop fires before JSONL flush) passes with MOCK_DELAY_JSONL=100\n\nReference: docs/plan/plan.md § Phase 7","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":1,"issue_type":"task","assignee":"claude-code-glm-47-claude-print-bravo","created_at":"2026-06-10T03:53:52.452812786Z","updated_at":"2026-06-10T05:15:23.394672440Z","closed_at":"2026-06-10T05:15:23.394672440Z","close_reason":"Completed","source_repo":".","compaction_level":0,"dependencies":[{"issue_id":"bf-64k","depends_on_id":"bf-64s","type":"blocks","created_at":"2026-06-10T03:54:31.695602796Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-64s","title":"Phase 6: Stop Poller (~80 LOC)","description":"Entry: Phase 5 complete. OQ-2 must be resolved (verify --setting-sources= suppresses standard sources; see PO-2 for fallback). OQ-4 (FIFO open race) validated by test.\n\nImplementation: poller.rs (or extend event_loop.rs)\n- Open FIFO read-end O_NONBLOCK, integrate into poll() loop\n- Parse Stop hook JSON payload (session_id, transcript_path, last_assistant_message)\n- Derive transcript path from session_id + cwd slug if transcript_path absent\n- Signal event loop exit via channel/flag\n\nComplete when:\n- Integration test test_stop_hook_fires passes (mock_claude emits Stop, FIFO received, exit 0)\n- test_missing_transcript_path_derived passes (Stop without transcript_path → path derived from session_id)\n\nReference: docs/plan/plan.md § Phase 6","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":1,"issue_type":"task","assignee":"claude-glm-glm47-alpha","created_at":"2026-06-10T03:53:44.914912586Z","updated_at":"2026-06-10T04:40:12.904790Z","closed_at":"2026-06-10T04:40:12.904790Z","source_repo":".","compaction_level":0}
|
||||
{"id": "bf-360", "title": "Implement --check subcommand in claude-print", "description": "Add the --check subcommand to src/main.rs or src/check.rs.\n\nDeliverables:\n- openpty probe: confirm openpty syscall succeeds\n- mkfifo probe: confirm mkfifo in /home/coding/.tmp succeeds\n- optional mock_claude PTY round-trip (if mock_claude binary present in PATH)\n- exits 0 on success, prints diagnostic table to stdout\n\nAcceptance criteria:\n- cargo build succeeds with the --check subcommand present\n- Running claude-print --check locally exits 0 and prints a diagnostic table\n- Running claude-print --check on a system missing openpty exits non-zero with clear error", "design": "", "acceptance_criteria": "", "notes": "", "status": "closed", "priority": 2, "issue_type": "task", "created_at": "2026-06-10T05:42:25.787304377Z", "updated_at": "2026-06-10T05:45:27.270Z", "source_repo": ".", "compaction_level": 0, "labels": ["split-child"], "closed_at": "2026-06-10T05:45:27.270Z", "close_reason": "Completed"}
|
||||
{"id": "bf-3vj", "title": "Write install.sh for claude-print binary", "description": "Create install.sh that downloads the claude-print release binary from GitHub and installs it to ~/.local/bin/claude-print.\n\nDeliverables:\n- Downloads the correct binary for the current platform from the GitHub releases page\n- Installs to ~/.local/bin/claude-print with executable permissions\n- Runs claude-print --check after install to verify the binary works\n- Script is POSIX-compatible bash\n\nAcceptance criteria:\n- bash -n install.sh passes (syntactically valid)\n- Running install.sh on a clean system installs the binary and exits 0\n- claude-print --check succeeds after install", "design": "", "acceptance_criteria": "", "notes": "", "status": "closed", "priority": 2, "issue_type": "task", "created_at": "2026-06-10T05:42:30.633173087Z", "updated_at": "2026-06-10T05:47:43.818004Z", "closed_at": "2026-06-10T05:47:43.818004Z", "source_repo": ".", "compaction_level": 0, "labels": ["split-child"], "dependencies": [{"issue_id": "bf-3vj", "depends_on_id": "bf-360", "type": "blocks", "created_at": "2026-06-10T05:42:54.784343802Z", "created_by": "cli", "thread_id": ""}]}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue