main · last commit
13 days ago ·
7g0stsfu
ah-efe.3 SPEC sections 1/4/11: external-services table, repo layout tree, HTTP surface sweep
Past Stand
bd reopen ah-efe.3
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-07-19T23:38:15Z |
| Started | 2026-08-04T23:39:08Z |
| Updated | 2026-08-04T23:50:04Z |
| Closed | 2026-08-04T23:50:04Z |
Low-priority staleness bundle: section 1 services table omits ntfy/Prism and Yonote; section 4 layout tree omits internal/mem0, ctxpack, yonote, deps; section 11 (and the httpapi package doc-comment) lists only healthz/run-exit/status/webhook, missing the three Stage-4 /api/tool/* routes. One sweep commit. SPEC-gap audit 2026-07-20.
Concrete §11 defects found during the §12 refresh (ah-efe.2), to fold into this bead's work: - The §11 heading says 'Stages 1-2' but internal/httpapi now also serves the Stage 4 tools surface. - The endpoint list omits POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer entirely. Document that they are BEARER-authenticated (unlike /api/v1/status, which stays unauthenticated and loopback-trusted) and that they are registered only when Deps.Tools is wired — i.e. only when tools_api is on. Nothing contradicting §12 was found in §5/§6 (ah-efe.1); §5 principle 5 ('Agent-facing tools are CLI-over-HTTP (Stage 4)') is consistent with the delivered surface. §9 and §14 defects were split into ah-efe.5.
ah-efe
— Docs: SPEC refresh to Stage 3-4 + Yonote reality
parent-child
closed
Nothing depends on this issue.
| id | ah-efe.3 |
| content_hash | 63b0d2b6e60ab09dddf7f4c58bb8e06ab9fd1fd7f80ce807c8f484e29595c40f |
| title | SPEC sections 1/4/11: external-services table, repo layout tree, HTTP surface sweep |
| description | Low-priority staleness bundle: section 1 services table omits ntfy/Prism and Yonote; section 4 layout tree omits internal/mem0, ctxpack, yonote, deps; section 11 (and the httpapi package doc-comment) lists only healthz/run-exit/status/webhook, missing the three Stage-4 /api/tool/* routes. One sweep commit. SPEC-gap audit 2026-07-20. |
| design | |
| acceptance_criteria | |
| notes | Concrete §11 defects found during the §12 refresh (ah-efe.2), to fold into this bead's work: - The §11 heading says 'Stages 1-2' but internal/httpapi now also serves the Stage 4 tools surface. - The endpoint list omits POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer entirely. Document that they are BEARER-authenticated (unlike /api/v1/status, which stays unauthenticated and loopback-trusted) and that they are registered only when Deps.Tools is wired — i.e. only when tools_api is on. Nothing contradicting §12 was found in §5/§6 (ah-efe.1); §5 principle 5 ('Agent-facing tools are CLI-over-HTTP (Stage 4)') is consistent with the delivered surface. §9 and §14 defects were split into ah-efe.5. |
| status | closed |
| priority | 4 |
| issue_type | chore |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-07-19T23:38:15Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-04T23:50:04Z |
| closed_at | 2026-08-04T23:50:04Z |
| 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 | Done in 119b84d. §1's services table omitted the ntfy/Prism gateway and Yonote, and described AgentsView's auth as 'pg push from client side' without saying the daemon never calls it. The table now has eight rows ordered by stage, distinguishes Telegram's token-in-URL from ntfy's token-in-header (the §15 redaction distinction), marks Yonote as a BOT token at 1.47.1, and a new paragraph states that only Vikunja is mandatory, that telegram/ntfy are the mutually exclusive notifier options, and that AgentsView receives NOTHING from agenthubd — the daemon only renders <base_url>/sessions/<machine>~pi:<id> links. §4's tree was missing internal/mem0, internal/ctxpack, internal/yonote and internal/deps, still showed cmd/ahub/main.go alone, and omitted skills/; all added, with a new paragraph explaining that mem0/ctxpack/yonote are deliberately NOT ports (pure renderer; optional single-consumer clients consumed via local interfaces in reconcile), and the dependency note corrected to include go.bigb.es/auxilia and testify while confirming Stages 2-4 added no new external dependency. §11's heading claimed 'Stages 1-2' and its list stopped at four routes; it now covers all seven, documents POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer with their real bodies and status codes, states that all three are BEARER-authenticated with the per-task token (constant-time compare, uniform 401 that echoes nothing) while GET /api/v1/status stays unauthenticated and loopback-trusted, and that they register only when Deps.Tools is wired — i.e. only when tools_api is on, the same gate shape as webhook_secret. The endpoint list was swept against the real mux.HandleFunc registrations; no other route exists. Also fixed §3's binaries table, which still described ahub tool as a future subcommand, and folded in ah-1qq's new status version field. UNVERIFIED, left alone: §1 lists sourcehut as git@git.srht.bigb.es while §12's example review_remote is git@srht.bigb.es:~bigbes/demo-repo — one of the two is wrong and it needs an operator to say which. |
| 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-08-04T23:39:08Z |
| is_blocked | 0 |
| issue_id | ah-efe.3 |
| label | milestone:v0.1.0 |
| issue_id | ah-efe.3 |
| label | milestone:v0.2.0 |
| id | ffe3b485-0ade-5a4f-9faa-7f3a3ed015c5 |
| issue_id | ah-efe.3 |
| type | parent-child |
| created_at | 2026-07-20T02:38:14Z |
| created_by | Eugene Blikh |
| metadata | �{} |
| thread_id | |
| depends_on_issue_id | ah-efe |
| depends_on_wisp_id | NULL |
| depends_on_external | NULL |
| id | 019f7cbe-9d66-7cd5-94ab-739eb7335c50 |
| issue_id | ah-efe.3 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-07-20T02:38:14Z |
| id | 019f7cda-2c42-7455-8022-7fdf15105a54 |
| issue_id | ah-efe.3 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:spec-refresh |
| created_at | 2026-07-20T03:08:20Z |
| id | 019f7cdb-f72c-7975-ad61-9d184af6382d |
| issue_id | ah-efe.3 |
| event_type | label_removed |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Removed label: milestone:spec-refresh |
| created_at | 2026-07-20T03:10:18Z |
| id | 019f7cdc-faee-7ee4-8cb8-461e756117f5 |
| issue_id | ah-efe.3 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:v0.1.0 |
| created_at | 2026-07-20T03:11:24Z |
| id | 019f7cdf-2a61-759d-8e5f-c3da502f569f |
| issue_id | ah-efe.3 |
| event_type | label_removed |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Removed label: milestone:v0.1.0 |
| created_at | 2026-07-20T03:13:48Z |
| id | 019f7cdf-2b64-79fe-a6ad-150fda769b7c |
| issue_id | ah-efe.3 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:v0.2.0 |
| created_at | 2026-07-20T03:13:48Z |
| id | 019fcf24-a127-7991-9b28-c95c292977ed |
| issue_id | ah-efe.3 |
| event_type | updated |
| actor | Eugene Blikh |
| old_value | {"id":"ah-efe.3","title":"SPEC sections 1/4/11: external-services table, repo layout tree, HTTP surface sweep","description":"Low-priority staleness bundle: section 1 services table omits ntfy/Prism and Yonote; section 4 layout tree omits internal/mem0, ctxpack, yonote, deps; section 11 (and the httpapi package doc-comment) lists only healthz/run-exit/status/webhook, missing the three Stage-4 /api/tool/* routes. One sweep commit. SPEC-gap audit 2026-07-20.","status":"open","priority":4,"issue_type":"chore","owner":"bigbes@gmail.com","created_at":"2026-07-19T23:38:15Z","created_by":"Eugene Blikh","updated_at":"2026-07-19T23:38:15Z","labels":["milestone:v0.2.0"]} |
| new_value | {"notes":"Concrete §11 defects found during the §12 refresh (ah-efe.2), to fold into this bead's work:\n- The §11 heading says 'Stages 1-2' but internal/httpapi now also serves the Stage 4 tools surface.\n- The endpoint list omits POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer entirely. Document that they are BEARER-authenticated (unlike /api/v1/status, which stays unauthenticated and loopback-trusted) and that they are registered only when Deps.Tools is wired — i.e. only when tools_api is on.\nNothing contradicting §12 was found in §5/§6 (ah-efe.1); §5 principle 5 ('Agent-facing tools are CLI-over-HTTP (Stage 4)') is consistent with the delivered surface. §9 and §14 defects were split into ah-efe.5."} |
| comment | NULL |
| created_at | 2026-08-05T02:38:32Z |
| id | 019fcf25-2dff-7da8-8087-d57e47b09629 |
| issue_id | ah-efe.3 |
| event_type | status_changed |
| actor | Eugene Blikh |
| old_value | {"id":"ah-efe.3","title":"SPEC sections 1/4/11: external-services table, repo layout tree, HTTP surface sweep","description":"Low-priority staleness bundle: section 1 services table omits ntfy/Prism and Yonote; section 4 layout tree omits internal/mem0, ctxpack, yonote, deps; section 11 (and the httpapi package doc-comment) lists only healthz/run-exit/status/webhook, missing the three Stage-4 /api/tool/* routes. One sweep commit. SPEC-gap audit 2026-07-20.","notes":"Concrete §11 defects found during the §12 refresh (ah-efe.2), to fold into this bead's work:\n- The §11 heading says 'Stages 1-2' but internal/httpapi now also serves the Stage 4 tools surface.\n- The endpoint list omits POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer entirely. Document that they are BEARER-authenticated (unlike /api/v1/status, which stays unauthenticated and loopback-trusted) and that they are registered only when Deps.Tools is wired — i.e. only when tools_api is on.\nNothing contradicting §12 was found in §5/§6 (ah-efe.1); §5 principle 5 ('Agent-facing tools are CLI-over-HTTP (Stage 4)') is consistent with the delivered surface. §9 and §14 defects were split into ah-efe.5.","status":"open","priority":4,"issue_type":"chore","owner":"bigbes@gmail.com","created_at":"2026-07-19T23:38:15Z","created_by":"Eugene Blikh","updated_at":"2026-08-04T23:38:32Z","labels":["milestone:v0.2.0"]} |
| new_value | {"status":"in_progress"} |
| comment | NULL |
| created_at | 2026-08-05T02:39:08Z |
| id | 019fcf2f-2e24-7599-9d36-9454c1236a47 |
| issue_id | ah-efe.3 |
| event_type | closed |
| actor | Eugene Blikh |
| old_value | |
| new_value | Done in 119b84d. §1's services table omitted the ntfy/Prism gateway and Yonote, and described AgentsView's auth as 'pg push from client side' without saying the daemon never calls it. The table now has eight rows ordered by stage, distinguishes Telegram's token-in-URL from ntfy's token-in-header (the §15 redaction distinction), marks Yonote as a BOT token at 1.47.1, and a new paragraph states that only Vikunja is mandatory, that telegram/ntfy are the mutually exclusive notifier options, and that AgentsView receives NOTHING from agenthubd — the daemon only renders <base_url>/sessions/<machine>~pi:<id> links. §4's tree was missing internal/mem0, internal/ctxpack, internal/yonote and internal/deps, still showed cmd/ahub/main.go alone, and omitted skills/; all added, with a new paragraph explaining that mem0/ctxpack/yonote are deliberately NOT ports (pure renderer; optional single-consumer clients consumed via local interfaces in reconcile), and the dependency note corrected to include go.bigb.es/auxilia and testify while confirming Stages 2-4 added no new external dependency. §11's heading claimed 'Stages 1-2' and its list stopped at four routes; it now covers all seven, documents POST /api/tool/task-create, POST /api/tool/ask-user and GET /api/tool/answer with their real bodies and status codes, states that all three are BEARER-authenticated with the per-task token (constant-time compare, uniform 401 that echoes nothing) while GET /api/v1/status stays unauthenticated and loopback-trusted, and that they register only when Deps.Tools is wired — i.e. only when tools_api is on, the same gate shape as webhook_secret. The endpoint list was swept against the real mux.HandleFunc registrations; no other route exists. Also fixed §3's binaries table, which still described ahub tool as a future subcommand, and folded in ah-1qq's new status version field. UNVERIFIED, left alone: §1 lists sourcehut as git@git.srht.bigb.es while §12's example review_remote is git@srht.bigb.es:~bigbes/demo-repo — one of the two is wrong and it needs an operator to say which. |
| comment | NULL |
| created_at | 2026-08-05T02:50:03Z |
| id | 019fcf42-13a6-7d23-9744-35c798d71011 |
| issue_id | ah-efe.3 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:v0.1.0 |
| created_at | 2026-08-05T03:10:41Z |
No comments.
Close reason