~bigbes/agents-dev · parade

main · last commit 13 days ago · 7g0stsfu

← Back to the parade

ah-xuc.6 telegram: ports.Notifier implementation (Bot API through HTTPS_PROXY) Past Stand

status: closed P2 feature @Eugene Blikh
bd reopen ah-xuc.6
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-07-13T05:15:38Z
Started2026-07-13T05:44:25Z
Updated2026-07-13T06:22:50Z
Closed2026-07-13T06:22:50Z
Description
New package internal/telegram implementing ports.Notifier. POST {api_base}/bot{token}/sendMessage with JSON {chat_id, text, disable_web_page_preview: true}. http.Client with a 10s timeout whose transport keeps ProxyFromEnvironment semantics so HTTPS_PROXY is honored (Telegram is blocked from the lab network; egress goes through the proxy) — do not build a bare Transport without the Proxy field. Non-2xx responses and ok:false bodies become errors carrying a short body prefix; the bot token must never appear in logs or error strings — redact the URL when wrapping errors. No retries: the reconciler treats Notify as best-effort. api_base comes from config telegram.api_base so tests and e2e can point it at httptest.
Acceptance criteria
go test ./internal/telegram/... green, go vet clean; httptest covers success, HTTP error, ok:false, and token redaction in returned errors; a test asserts proxy resolution from the environment is active

Depends on

  • ah-xuc.1 — Stage 2 foundation: domain buckets/outcome, ports contracts, config surface blocks closed
  • ah-xuc — Stage 2: webhooks, Task Spec, full buckets, Telegram, srht push, watchdog parent-child closed

Depended on by

  • ah-xuc.10 — cmd/agenthubd: wire webhook secret and Telegram notifier blocks

Prerequisite chain — everything this waits on, transitively

  • ah-xuc.1 — Stage 2 foundation: domain buckets/outcome, ports contracts, config surface blocks closed
  • ah-xuc — Stage 2: webhooks, Task Spec, full buckets, Telegram, srht push, watchdog parent-child closed

Unblocks — everything waiting on this, transitively

  • ah-xuc.10 — cmd/agenthubd: wire webhook secret and Telegram notifier blocks closed
  • ah-xuc.11 — e2e: Stage 2 flows — webhook poke, Triage bounce, skills, publish, watchdog, Telegram blocks closed
  • ah-xuc.12 — docs: sync SPEC with Stage 2 behavior blocks closed

No comments.

Close reason

e15fe4c; token-leak vectors traced to stdlib source and closed; proxy semantics verified empirically; review clean
  • Eugene Blikh added under epic ah-xuc · 2026-07-13T08:15:38Z
  • Eugene Blikh created the issue · 2026-07-13T08:15:38Z
  • Eugene Blikh added dependency on ah-xuc.1 · 2026-07-13T08:16:49Z
  • Eugene Blikh ah-xuc.10 now depends on this · 2026-07-13T08:16:53Z
  • Eugene Blikh claimed · 2026-07-13T08:44:25Z
  • Eugene Blikh closed the issue · 2026-07-13T09:22:49Z
    e15fe4c; token-leak vectors traced to stdlib source and closed; proxy semantics verified empirically; review clean
  • Eugene Blikh added label milestone:stage-2 · 2026-07-20T03:08:47Z
  • Eugene Blikh removed label milestone:stage-2 · 2026-07-20T03:10:25Z
Stored rows — what this pane was built from, as read
issues 1 row
id ah-xuc.6
content_hash e8c8ca06f34dfebba7004095b3bec4be6a1dd7a6c04bce0af09d4edc831fed76
title telegram: ports.Notifier implementation (Bot API through HTTPS_PROXY)
description New package internal/telegram implementing ports.Notifier. POST {api_base}/bot{token}/sendMessage with JSON {chat_id, text, disable_web_page_preview: true}. http.Client with a 10s timeout whose transport keeps ProxyFromEnvironment semantics so HTTPS_PROXY is honored (Telegram is blocked from the lab network; egress goes through the proxy) — do not build a bare Transport without the Proxy field. Non-2xx responses and ok:false bodies become errors carrying a short body prefix; the bot token must never appear in logs or error strings — redact the URL when wrapping errors. No retries: the reconciler treats Notify as best-effort. api_base comes from config telegram.api_base so tests and e2e can point it at httptest.
design
acceptance_criteria go test ./internal/telegram/... green, go vet clean; httptest covers success, HTTP error, ok:false, and token redaction in returned errors; a test asserts proxy resolution from the environment is active
notes
status closed
priority 2
issue_type feature
assignee Eugene Blikh
estimated_minutes NULL
created_at 2026-07-13T05:15:38Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-13T06:22:50Z
closed_at 2026-07-13T06:22:50Z
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 e15fe4c; token-leak vectors traced to stdlib source and closed; proxy semantics verified empirically; 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
dependencies 3 rows
id 8cd2a6e1-5f59-5510-a31a-33777006c01a
issue_id ah-xuc.6
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 a40dca03-2215-5737-bc0b-af57df910a5f
issue_id ah-xuc.6
type parent-child
created_at 2026-07-13T08:15:38Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-xuc
depends_on_wisp_id NULL
depends_on_external NULL
id b2da041d-2b3a-5954-b4be-65e7440fcdb1
issue_id ah-xuc.10
type blocks
created_at 2026-07-13T08:16:53Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-xuc.6
depends_on_wisp_id NULL
depends_on_external NULL
events 5 rows
id 019f59e6-fe49-70fa-9e6e-f96846f174fb
issue_id ah-xuc.6
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-07-13T08:15:38Z
id 019f5a01-583e-788b-b679-f6a08fc60237
issue_id ah-xuc.6
event_type claimed
actor Eugene Blikh
old_value {"id":"ah-xuc.6","title":"telegram: ports.Notifier implementation (Bot API through HTTPS_PROXY)","description":"New package internal/telegram implementing ports.Notifier. POST {api_base}/bot{token}/sendMessage with JSON {chat_id, text, disable_web_page_preview: true}. http.Client with a 10s timeout whose transport keeps ProxyFromEnvironment semantics so HTTPS_PROXY is honored (Telegram is blocked from the lab network; egress goes through the proxy) — do not build a bare Transport without the Proxy field. Non-2xx responses and ok:false bodies become errors carrying a short body prefix; the bot token must never appear in logs or error strings — redact the URL when wrapping errors. No retries: the reconciler treats Notify as best-effort. api_base comes from config telegram.api_base so tests and e2e can point it at httptest.","acceptance_criteria":"go test ./internal/telegram/... green, go vet clean; httptest covers success, HTTP error, ok:false, and token redaction in returned errors; a test asserts proxy resolution from the environment is active","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-13T05:15:38Z","created_by":"Eugene Blikh","updated_at":"2026-07-13T05:15:38Z"}
new_value {"assignee":"Eugene Blikh","status":"in_progress"}
comment NULL
created_at 2026-07-13T08:44:25Z
id 019f5a24-81dc-7173-8178-88767a97e031
issue_id ah-xuc.6
event_type closed
actor Eugene Blikh
old_value
new_value e15fe4c; token-leak vectors traced to stdlib source and closed; proxy semantics verified empirically; review clean
comment NULL
created_at 2026-07-13T09:22:49Z
id 019f7cda-9353-73b5-a6be-c87173961abf
issue_id ah-xuc.6
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-141f-72ca-8059-a68695f12cd7
issue_id ah-xuc.6
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