~bigbes/agents-dev · parade

main · last commit 13 days ago · 7g0stsfu

← Back to the parade

ah-xuc.11 e2e: Stage 2 flows — webhook poke, Triage bounce, skills, publish, watchdog, Telegram Past Stand

status: closed P2 task @Eugene Blikh
bd reopen ah-xuc.11
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-07-13T05:16:24Z
Started2026-07-13T07:53:57Z
Updated2026-07-13T08:38:17Z
Closed2026-07-13T08:38:17Z
Description
Extend the e2e harness (build tag e2e, fake vikunja plus stub pi/zellij, stub-honesty rules from commit b3ee57d). Fake vikunja gains labels on tasks and the nine-bucket board.

- webhook poke: long poll_interval, POST a correctly signed payload to /webhooks/vikunja, assert the claim happens promptly (poke, not poll); a bad signature does nothing.
- Triage bounce: a Ready task with broken frontmatter lands in Triage with the diagnostic comment and no record or run row.
- skills: a task whose spec names skills (fixture SKILL.md dirs under a temp skills_dir) — the stub pi records argv; assert the --skill absolute paths and the retained --no-skills.
- publish: repo review_remote points at a local bare repository; after a successful run the In Review comment carries the review link and the bare repo has the agent/task-N ref at the expected commit.
- watchdog: stub pi hangs without touching events.jsonl; with a short stall_timeout the run is killed and the card lands in Failed with a stalled comment.
- telegram: telegram.api_base points at a fake httptest Bot API; assert sendMessage calls for the in_review and stalled paths, and that the token appears only in the request path, never in daemon logs.
Acceptance criteria
go test -tags e2e ./e2e/... green and hermetic (loopback only); each flow asserted through externally observable surfaces — board moves, comments, bare repo refs, fake TG requests — not daemon internals

Depends on

  • ah-xuc.10 — cmd/agenthubd: wire webhook secret and Telegram notifier blocks closed
  • ah-xuc — Stage 2: webhooks, Task Spec, full buckets, Telegram, srht push, watchdog parent-child closed

Depended on by

Nothing depends on this issue.

Prerequisite chain — everything this waits on, transitively

  • ah-xuc.10 — cmd/agenthubd: wire webhook secret and Telegram notifier blocks closed
  • ah-xuc — Stage 2: webhooks, Task Spec, full buckets, Telegram, srht push, watchdog parent-child closed
  • ah-xuc.6 — telegram: ports.Notifier implementation (Bot API through HTTPS_PROXY) blocks closed
  • ah-xuc.1 — Stage 2 foundation: domain buckets/outcome, ports contracts, config surface blocks closed
  • ah-xuc.9 — reconcile: publish review branch, watchdog on stale events, Telegram notifications blocks closed
  • ah-xuc.8 — reconcile: spec-driven claim, Triage bounce, parked buckets, per-run timeout blocks closed
  • ah-xuc.2 — internal/spec: Task Spec frontmatter parse, type-label defaults, validation blocks closed
  • ah-xuc.3 — vikunja: fetch task labels into BoardTask.Labels blocks closed
  • ah-xuc.4 — store: migration v2 — per-run timeout column blocks closed
  • ah-xuc.7 — httpapi: Vikunja webhook receiver with HMAC verification blocks closed

No comments.

Close reason

8e29554; reviewer merge-ready with zero findings — stub honesty, hermeticity, timing discipline, full-argv equality all verified; 3-run flake probe: all six Stage 2 flows green in all runs (the one flake found is pre-existing Stage 1, filed as ah-wka)
  • Eugene Blikh added under epic ah-xuc · 2026-07-13T08:16:24Z
  • Eugene Blikh created the issue · 2026-07-13T08:16:24Z
  • Eugene Blikh added dependency on ah-xuc.10 · 2026-07-13T08:16:54Z
  • Eugene Blikh claimed · 2026-07-13T10:53:56Z
  • Eugene Blikh closed the issue · 2026-07-13T11:38:16Z
    8e29554; reviewer merge-ready with zero findings — stub honesty, hermeticity, timing discipline, full-argv equality all verified; 3-run flake probe: all six Stage 2 flows green in all runs (the one flake found is pre-existing Stage 1, filed as ah-wka)
  • Eugene Blikh added label milestone:stage-2 · 2026-07-20T03:08:47Z
  • Eugene Blikh removed label milestone:stage-2 · 2026-07-20T03:10:24Z
Stored rows — what this pane was built from, as read
issues 1 row
id ah-xuc.11
content_hash b6a041aecb730cbf5ad794b8bba2833ccb247eeb242441fa1b256c4a6130e930
title e2e: Stage 2 flows — webhook poke, Triage bounce, skills, publish, watchdog, Telegram
description Extend the e2e harness (build tag e2e, fake vikunja plus stub pi/zellij, stub-honesty rules from commit b3ee57d). Fake vikunja gains labels on tasks and the nine-bucket board. - webhook poke: long poll_interval, POST a correctly signed payload to /webhooks/vikunja, assert the claim happens promptly (poke, not poll); a bad signature does nothing. - Triage bounce: a Ready task with broken frontmatter lands in Triage with the diagnostic comment and no record or run row. - skills: a task whose spec names skills (fixture SKILL.md dirs under a temp skills_dir) — the stub pi records argv; assert the --skill absolute paths and the retained --no-skills. - publish: repo review_remote points at a local bare repository; after a successful run the In Review comment carries the review link and the bare repo has the agent/task-N ref at the expected commit. - watchdog: stub pi hangs without touching events.jsonl; with a short stall_timeout the run is killed and the card lands in Failed with a stalled comment. - telegram: telegram.api_base points at a fake httptest Bot API; assert sendMessage calls for the in_review and stalled paths, and that the token appears only in the request path, never in daemon logs.
design
acceptance_criteria go test -tags e2e ./e2e/... green and hermetic (loopback only); each flow asserted through externally observable surfaces — board moves, comments, bare repo refs, fake TG requests — not daemon internals
notes
status closed
priority 2
issue_type task
assignee Eugene Blikh
estimated_minutes NULL
created_at 2026-07-13T05:16:24Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-13T08:38:17Z
closed_at 2026-07-13T08:38:17Z
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 8e29554; reviewer merge-ready with zero findings — stub honesty, hermeticity, timing discipline, full-argv equality all verified; 3-run flake probe: all six Stage 2 flows green in all runs (the one flake found is pre-existing Stage 1, filed as ah-wka)
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-13T07:53:57Z
is_blocked 0
dependencies 2 rows
id 477dacab-3262-5023-97b2-38698acf27c5
issue_id ah-xuc.11
type blocks
created_at 2026-07-13T08:16:54Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-xuc.10
depends_on_wisp_id NULL
depends_on_external NULL
id c444dec4-d3cd-580b-a8b6-a8d8ebc2d660
issue_id ah-xuc.11
type parent-child
created_at 2026-07-13T08:16:24Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-xuc
depends_on_wisp_id NULL
depends_on_external NULL
events 5 rows
id 019f59e7-b0fa-7b42-87c0-1df483fca5c1
issue_id ah-xuc.11
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-07-13T08:16:24Z
id 019f5a77-ec60-723a-8ec1-0e38dce8d631
issue_id ah-xuc.11
event_type claimed
actor Eugene Blikh
old_value {"id":"ah-xuc.11","title":"e2e: Stage 2 flows — webhook poke, Triage bounce, skills, publish, watchdog, Telegram","description":"Extend the e2e harness (build tag e2e, fake vikunja plus stub pi/zellij, stub-honesty rules from commit b3ee57d). Fake vikunja gains labels on tasks and the nine-bucket board.\n\n- webhook poke: long poll_interval, POST a correctly signed payload to /webhooks/vikunja, assert the claim happens promptly (poke, not poll); a bad signature does nothing.\n- Triage bounce: a Ready task with broken frontmatter lands in Triage with the diagnostic comment and no record or run row.\n- skills: a task whose spec names skills (fixture SKILL.md dirs under a temp skills_dir) — the stub pi records argv; assert the --skill absolute paths and the retained --no-skills.\n- publish: repo review_remote points at a local bare repository; after a successful run the In Review comment carries the review link and the bare repo has the agent/task-N ref at the expected commit.\n- watchdog: stub pi hangs without touching events.jsonl; with a short stall_timeout the run is killed and the card lands in Failed with a stalled comment.\n- telegram: telegram.api_base points at a fake httptest Bot API; assert sendMessage calls for the in_review and stalled paths, and that the token appears only in the request path, never in daemon logs.","acceptance_criteria":"go test -tags e2e ./e2e/... green and hermetic (loopback only); each flow asserted through externally observable surfaces — board moves, comments, bare repo refs, fake TG requests — not daemon internals","status":"open","priority":2,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-07-13T05:16:24Z","created_by":"Eugene Blikh","updated_at":"2026-07-13T05:16:24Z"}
new_value {"assignee":"Eugene Blikh","status":"in_progress"}
comment NULL
created_at 2026-07-13T10:53:56Z
id 019f5aa0-82d6-775e-bb66-67329b52a4be
issue_id ah-xuc.11
event_type closed
actor Eugene Blikh
old_value
new_value 8e29554; reviewer merge-ready with zero findings — stub honesty, hermeticity, timing discipline, full-argv equality all verified; 3-run flake probe: all six Stage 2 flows green in all runs (the one flake found is pre-existing Stage 1, filed as ah-wka)
comment NULL
created_at 2026-07-13T11:38:16Z
id 019f7cda-934f-7075-b5ce-aec34ce319ff
issue_id ah-xuc.11
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-0e27-7510-8b69-9846f7cd7598
issue_id ah-xuc.11
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:24Z