Skip to content

paths.config two-pass chain: disposition 6 Codex P2 findings from merged PR #2477 #2507

Closed

Description

@dezren39

Context

PR #2477 (queue task 3059, issue #1842, paths.config two-pass chain resolution) merged as 0b06b277 at 2026-10-30T01:09:11Z. The implementation landed, but 6 Codex P2 review threads from round bcf91515 remain open and undispositioned on the merged PR — the PR merged while the queue task was parked on that gate.

This issue exists so the findings are not silently dropped: each needs either a fix-forward or a reply on its thread explaining why the current behaviour is intended. Nothing here reopens #1842's acceptance criteria; they were met and the mechanism is in main.

Findings to disposition (all at head e013229f)

  1. pkgs/mcpx/cmd/mcpx/main.go — forward the bootstrap seed to auto-started daemons. The seed installed in the bootstrap interception is not forwarded to daemons started by the same invocation, so an auto-started daemon resolves a different chain than the parent.
  2. pkgs/mcpx/internal/config/chain.go:308 — preserve the seed list's null splice around default locations. For MCPX_PATHS_CONFIG='[null,"/custom/config.json"]', expandAll discards the splice position and places the custom file before every default location (higher precedence instead of lower). A seed without null also retains all default locations instead of replacing them, contradicting the registry help "Without a null the list replaces outright".
  3. pkgs/mcpx/cmd/mcpx/main.go:101 — accumulate repeated config-search flags. mcpx --paths-config /a --paths-config /b config replaces flagSeed on each call, so only /b participates. The setting is Repeatable: true and the normal binding accumulates repeated occurrences.
  4. pkgs/mcpx/internal/config/chain.go:185 — accept existing string-valued path lists during discovery. {"paths":{"config":"./shared"}} fails discovery with a JSON unmarshal error because discovery requires arrays, while ApplyFile/Set.List accept comma/newline strings. Because chain resolution now runs before dispatch, a previously valid config prevents commands from running at all.
  5. pkgs/mcpx/internal/config/chain.go:340 — canonicalize cycle-graph endpoints by file identity. Symlink aliases are recognised by the membership test but the graph stores raw path strings, so findCycle treats aliases as unrelated vertices and accepts a real cycle. Reproducible with A declaring a symlink to B and B a symlink to A.
  6. pkgs/mcpx/internal/config/chain.go:365 — apply declarations in resolved chain order. Declarations are applied in discovery order, not load order: for discovery order A,B,C where A declares [C,B], B declares [X], C declares [B] (no null), the result is A,C,B and X is dropped even though B stays in the chain.

Done when

Each of the 6 threads above carries either a commit that fixes it (with a test in internal/config or cmd/mcpx where testable) or a reply on the thread with the rationale, and go test ./pkgs/mcpx/... is green.

Links

Acceptance criteria

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 30, 2026
  2. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: PR #2477 (merged 0b06b27, 2026-10-30T01:09Z), #1842 (the paths.config two-pass chain issue whose acceptance was met)

    Notes: Filed 2026-10-30T01:57Z so six undispositioned Codex P2 threads on the merged PR #2477 are not silently dropped: bootstrap seed not forwarded to auto-started daemons, expandAll discarding the null-splice position at chain.go:308, repeated --paths-config flags not accumulating, and three more in the body. The parent mechanism is on main and #1842 stays closed — this issue is findings disposition only. This pass appends acceptance criteria and normalizes labels.

    Risks: Undispositioned review findings are how merged defects become folklore; two of the named findings change chain precedence semantics, so a wrong 'intended' call here corrupts config resolution quietly.

    Suggested approach: Work the six threads in body order: reproduce or read-verify each against main, fix forward in one branch+PR where real, reply-and-resolve where intended; cite this issue in the fix PR.

    🤖 Agent note · filed

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run 2026-10-30T02:12Z (2026-10-29 21:12 CDT)
    • Found via: monitor reconciliation
    • Task: Duty 2 intake enrichment — labels normalized and meta/enriched applied; acceptance criteria appended to the body only where no acceptance section existed (original body preserved verbatim above it). Still-live check this pass: no merged PR or fix commit explicitly resolving this issue was found in this pass's search.
    • Expectation: see the effort label; done = the acceptance criteria are met.
    • Links: this issue
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  5. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  6. 29 remaining items

  7. removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  9. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 3, 2026
  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    CI backlog tracked in issue #5194 (basic-tier Actions runs queued 30+ min without starting). The park on this issue's PR resumes once those runs start and pass.

  12. added a commit that references this issue on Nov 3, 2026
  13. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Agent note — task 8773 done (lane F shift, 2026-11-03)

  14. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

effort/mMedium: expected under 1 day of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions