~bigbes/agents-dev · parade

main · last commit 13 days ago · 7g0stsfu

← Back to the parade

ah-pdj reconcile: migrate the remaining raw config-presence tests to Configured() Lined Up

status: open P3 chore milestone:v0.2.0
bd update ah-pdj --claim bd close ah-pdj
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-08-05T00:01:02Z
Updated2026-08-05T00:01:02Z
Description
Follow-up to ah-jzv, which exported Configured() on every optional config block and migrated the cmd/agenthubd call sites. internal/reconcile was owned by another agent at the time and was deliberately left alone.

ONE REAL DRIFT, not just style — internal/reconcile/reconcile.go:2010, agentsViewLink: 'if av.BaseURL == "" || piSessionID == ""'. A whitespace-only agentsview.base_url is rejected at load, but this raw test also silently ignores a set-but-blank 'machine', producing a deep link that ends in '~pi:' instead of no link at all. Replace with !av.Configured().

CORRECT TODAY, same shape, worth aligning: reconcile.go:1996 ('if r.cfg.Vikunja.WebURL == ""', task-link suppression) and the value reads at publish.go:83/93/114, qa.go:83/203, artifacts.go:77/89. Those are gated upstream by 'r.yonote != nil', which main.go now sets from Configured(), so they are consistent — the cheap hardening is qa.go:83 gaining '&& r.cfg.Yonote.Configured()' so the loop's own predicate matches config's rather than relying on the wiring having done it.
Acceptance criteria
No consumer outside internal/config decides whether an optional block is configured by inspecting raw fields. agentsViewLink emits no link when 'machine' is unset, and a test pins that. ah-jzv's acceptance grep — cfg.<Block>.<Field> != "" outside internal/config — returns nothing.

Depends on

No outgoing dependencies.

Depended on by

Nothing depends on this issue.

No comments.

  • Eugene Blikh created the issue · 2026-08-05T03:01:01Z
  • Eugene Blikh added label milestone:v0.2.0 · 2026-08-05T03:10:45Z
Stored rows — what this pane was built from, as read
issues 1 row
id ah-pdj
content_hash 4d1ae5d30224ee6444de2aa4446a10d46c298069d9008120afec7a6d3ccea866
title reconcile: migrate the remaining raw config-presence tests to Configured()
description Follow-up to ah-jzv, which exported Configured() on every optional config block and migrated the cmd/agenthubd call sites. internal/reconcile was owned by another agent at the time and was deliberately left alone. ONE REAL DRIFT, not just style — internal/reconcile/reconcile.go:2010, agentsViewLink: 'if av.BaseURL == "" || piSessionID == ""'. A whitespace-only agentsview.base_url is rejected at load, but this raw test also silently ignores a set-but-blank 'machine', producing a deep link that ends in '~pi:' instead of no link at all. Replace with !av.Configured(). CORRECT TODAY, same shape, worth aligning: reconcile.go:1996 ('if r.cfg.Vikunja.WebURL == ""', task-link suppression) and the value reads at publish.go:83/93/114, qa.go:83/203, artifacts.go:77/89. Those are gated upstream by 'r.yonote != nil', which main.go now sets from Configured(), so they are consistent — the cheap hardening is qa.go:83 gaining '&& r.cfg.Yonote.Configured()' so the loop's own predicate matches config's rather than relying on the wiring having done it.
design
acceptance_criteria No consumer outside internal/config decides whether an optional block is configured by inspecting raw fields. agentsViewLink emits no link when 'machine' is unset, and a test pins that. ah-jzv's acceptance grep — cfg.<Block>.<Field> != "" outside internal/config — returns nothing.
notes
status open
priority 3
issue_type chore
assignee NULL
estimated_minutes NULL
created_at 2026-08-05T00:01:02Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-08-05T00:01:02Z
closed_at NULL
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
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 NULL
is_blocked 0
labels 1 row
issue_id ah-pdj
label milestone:v0.2.0
events 2 rows
id 019fcf39-39db-7756-96c7-faf906e671c6
issue_id ah-pdj
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-08-05T03:01:01Z
id 019fcf42-205d-7288-9312-2014e4751ebb
issue_id ah-pdj
event_type label_added
actor Eugene Blikh
old_value NULL
new_value NULL
comment Added label: milestone:v0.2.0
created_at 2026-08-05T03:10:45Z