main · last commit
13 days ago ·
7g0stsfu
ah-xuc.5 runner: explicit --skill arguments and Publish to the review remote
Past Stand
bd reopen ah-xuc.5
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-07-13T05:15:26Z |
| Started | 2026-07-13T05:44:25Z |
| Updated | 2026-07-13T06:22:49Z |
| Closed | 2026-07-13T06:22:49Z |
Two runner extensions, both behind existing seams. All argv construction stays in commands.go per SPEC section 9.
Skills: piArgv gains the resolved skill dirs — one --skill <absolute-path> per entry, appended while keeping --no-skills and --no-extensions (pi 0.70.2 loads explicit --skill paths even under --no-skills, giving a deterministic per-run set). Start threads StartSpec.Skills through.
Publish(ctx, taskID): resolve the task worktree, branch, and repo the same way Summary does today. When the repo has no review_remote, return a zero PublishInfo and nil error (publish not configured). Otherwise git -C <worktree> push <review_remote> <branch> with the branch pushed to the same name — plain push, never force (SPEC: agent branches are never force-pushed). On success fill PublishInfo{RemoteURL, Branch, WebURL} where WebURL is the repo review_url with {branch} substituted (empty when review_url unset). Push failures return a wrapped error carrying a stderr prefix.
go test ./internal/runner/... green, go vet clean; argv table tests for skills present/absent and push; PATH-shim git stub verifies push argv, success, and failure propagation; a Start test asserts --skill flags reach the pi argv
Coordinator refinement: implement ports.Publisher (separate port defined in ah-xuc.1) as a method on the existing runner type — the ports.Runner interface itself does not change.
Nothing depends on this issue.
| id | ah-xuc.5 |
| content_hash | b5fbb872b97c09d1baaee1d165892ef0ed8473656472b639900c43d5dbb8e0af |
| title | runner: explicit --skill arguments and Publish to the review remote |
| description | Two runner extensions, both behind existing seams. All argv construction stays in commands.go per SPEC section 9. Skills: piArgv gains the resolved skill dirs — one --skill <absolute-path> per entry, appended while keeping --no-skills and --no-extensions (pi 0.70.2 loads explicit --skill paths even under --no-skills, giving a deterministic per-run set). Start threads StartSpec.Skills through. Publish(ctx, taskID): resolve the task worktree, branch, and repo the same way Summary does today. When the repo has no review_remote, return a zero PublishInfo and nil error (publish not configured). Otherwise git -C <worktree> push <review_remote> <branch> with the branch pushed to the same name — plain push, never force (SPEC: agent branches are never force-pushed). On success fill PublishInfo{RemoteURL, Branch, WebURL} where WebURL is the repo review_url with {branch} substituted (empty when review_url unset). Push failures return a wrapped error carrying a stderr prefix. |
| design | |
| acceptance_criteria | go test ./internal/runner/... green, go vet clean; argv table tests for skills present/absent and push; PATH-shim git stub verifies push argv, success, and failure propagation; a Start test asserts --skill flags reach the pi argv |
| notes | Coordinator refinement: implement ports.Publisher (separate port defined in ah-xuc.1) as a method on the existing runner type — the ports.Runner interface itself does not change. |
| status | closed |
| priority | 2 |
| issue_type | feature |
| assignee | Eugene Blikh |
| estimated_minutes | NULL |
| created_at | 2026-07-13T05:15:26Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-07-13T06:22:49Z |
| closed_at | 2026-07-13T06:22:49Z |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | 28f75aa + eae0845; refspec refs/heads/X:refs/heads/X pinned, no-force verified, findWorktree semantics shared with Summary; review clean |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | 2026-07-13T05:44:25Z |
| is_blocked | 0 |
| id | 23b27664-16c6-5611-b0d7-eb405e062295 |
| issue_id | ah-xuc.5 |
| type | parent-child |
| created_at | 2026-07-13T08:15:26Z |
| created_by | Eugene Blikh |
| metadata | �{} |
| thread_id | |
| depends_on_issue_id | ah-xuc |
| depends_on_wisp_id | NULL |
| depends_on_external | NULL |
| id | ab8333ca-811e-57f0-806b-928b8bb24c7e |
| issue_id | ah-xuc.5 |
| type | blocks |
| created_at | 2026-07-13T08:16:49Z |
| created_by | Eugene Blikh |
| metadata | �{} |
| thread_id | |
| depends_on_issue_id | ah-xuc.1 |
| depends_on_wisp_id | NULL |
| depends_on_external | NULL |
| id | 019f59e6-cf39-7dde-9525-56771a93f590 |
| issue_id | ah-xuc.5 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-07-13T08:15:26Z |
| id | 019f59ea-3fb2-7910-897b-b256d315b2a3 |
| issue_id | ah-xuc.5 |
| event_type | updated |
| actor | Eugene Blikh |
| old_value | {"id":"ah-xuc.5","title":"runner: explicit --skill arguments and Publish to the review remote","description":"Two runner extensions, both behind existing seams. All argv construction stays in commands.go per SPEC section 9.\n\nSkills: piArgv gains the resolved skill dirs — one --skill \u003cabsolute-path\u003e per entry, appended while keeping --no-skills and --no-extensions (pi 0.70.2 loads explicit --skill paths even under --no-skills, giving a deterministic per-run set). Start threads StartSpec.Skills through.\n\nPublish(ctx, taskID): resolve the task worktree, branch, and repo the same way Summary does today. When the repo has no review_remote, return a zero PublishInfo and nil error (publish not configured). Otherwise git -C \u003cworktree\u003e push \u003creview_remote\u003e \u003cbranch\u003e with the branch pushed to the same name — plain push, never force (SPEC: agent branches are never force-pushed). On success fill PublishInfo{RemoteURL, Branch, WebURL} where WebURL is the repo review_url with {branch} substituted (empty when review_url unset). Push failures return a wrapped error carrying a stderr prefix.","acceptance_criteria":"go test ./internal/runner/... green, go vet clean; argv table tests for skills present/absent and push; PATH-shim git stub verifies push argv, success, and failure propagation; a Start test asserts --skill flags reach the pi argv","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-13T05:15:26Z","created_by":"Eugene Blikh","updated_at":"2026-07-13T05:15:26Z"} |
| new_value | {"notes":"Coordinator refinement: implement ports.Publisher (separate port defined in ah-xuc.1) as a method on the existing runner type — the ports.Runner interface itself does not change."} |
| comment | NULL |
| created_at | 2026-07-13T08:19:11Z |
| id | 019f5a01-570b-791f-ac92-3e53ec34587f |
| issue_id | ah-xuc.5 |
| event_type | claimed |
| actor | Eugene Blikh |
| old_value | {"id":"ah-xuc.5","title":"runner: explicit --skill arguments and Publish to the review remote","description":"Two runner extensions, both behind existing seams. All argv construction stays in commands.go per SPEC section 9.\n\nSkills: piArgv gains the resolved skill dirs — one --skill \u003cabsolute-path\u003e per entry, appended while keeping --no-skills and --no-extensions (pi 0.70.2 loads explicit --skill paths even under --no-skills, giving a deterministic per-run set). Start threads StartSpec.Skills through.\n\nPublish(ctx, taskID): resolve the task worktree, branch, and repo the same way Summary does today. When the repo has no review_remote, return a zero PublishInfo and nil error (publish not configured). Otherwise git -C \u003cworktree\u003e push \u003creview_remote\u003e \u003cbranch\u003e with the branch pushed to the same name — plain push, never force (SPEC: agent branches are never force-pushed). On success fill PublishInfo{RemoteURL, Branch, WebURL} where WebURL is the repo review_url with {branch} substituted (empty when review_url unset). Push failures return a wrapped error carrying a stderr prefix.","acceptance_criteria":"go test ./internal/runner/... green, go vet clean; argv table tests for skills present/absent and push; PATH-shim git stub verifies push argv, success, and failure propagation; a Start test asserts --skill flags reach the pi argv","notes":"Coordinator refinement: implement ports.Publisher (separate port defined in ah-xuc.1) as a method on the existing runner type — the ports.Runner interface itself does not change.","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-13T05:15:26Z","created_by":"Eugene Blikh","updated_at":"2026-07-13T05:19:12Z"} |
| new_value | {"assignee":"Eugene Blikh","status":"in_progress"} |
| comment | NULL |
| created_at | 2026-07-13T08:44:25Z |
| id | 019f5a24-7fb2-7c6b-ad13-948bf772aa29 |
| issue_id | ah-xuc.5 |
| event_type | closed |
| actor | Eugene Blikh |
| old_value | |
| new_value | 28f75aa + eae0845; refspec refs/heads/X:refs/heads/X pinned, no-force verified, findWorktree semantics shared with Summary; review clean |
| comment | NULL |
| created_at | 2026-07-13T09:22:49Z |
| id | 019f7cda-9354-7090-bfdc-0b4f33ca76ea |
| issue_id | ah-xuc.5 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:stage-2 |
| created_at | 2026-07-20T03:08:47Z |
| id | 019f7cdc-1324-7631-af8c-41d2f3842d58 |
| issue_id | ah-xuc.5 |
| event_type | label_removed |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Removed label: milestone:stage-2 |
| created_at | 2026-07-20T03:10:25Z |
No comments.
Close reason