main · last commit
13 days ago ·
7g0stsfu
ah-pdj reconcile: migrate the remaining raw config-presence tests to Configured()
Lined Up
bd update ah-pdj --claim
bd close ah-pdj
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-05T00:01:02Z |
| Updated | 2026-08-05T00:01:02Z |
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.
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.
No outgoing dependencies.
Nothing depends on this issue.
| 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 |
| issue_id | ah-pdj |
| label | milestone:v0.2.0 |
| 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 |
No comments.