Skip to content

fix(pm-stack): aggregator install.sh does not restart a running service - deploys silently no-op #1150

Closed

Description

@dezren39

Finding

Found during the #1046 deploy (2026-10-26, flagged on that issue, never separately filed): install.sh's systemctl --user enable --now does not restart an already-running pm-aggregator - the first post-install check 404'd on new routes while the new code was on disk. A deploy that looks successful but serves old code is a coherence hazard for every future slice.

Proposal

install.sh restarts pm-aggregator when the deployed tree changes (hash or mtime comparison), then self-verifies: poll /api/health plus one route per newly shipped page (or a version marker the server exposes - e.g. build commit in /api/health) and fail loudly on mismatch.

Acceptance

  • Re-running install.sh on unchanged code is a no-op; on changed code the service restarts and the version marker in /api/health matches the deployed commit.

Acceptance criteria

  • Re-running install.sh on unchanged code is a no-op (no restart).
  • Re-running install.sh after the deployed tree changes restarts pm-aggregator, and the version marker exposed by /api/health matches the deployed commit.
  • install.sh self-verifies after a deploy (polls /api/health plus one route per newly shipped page, or the version marker) and fails loudly on a mismatch instead of reporting success while old code serves.

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    priority/normalOrdinary priority (the default)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake pass, 2026-10-28. Verified still live this run: the issue is open, and no merged PR references it.

    Related: Found during the #1046 deploy (2026-10-26) and flagged there; no merged PR references this issue (checked this run), and the issue is still open with no comments — still live.

    Notes / risks: A deploy that reports success while serving old code undermines every later verification: checks run against the new tree on disk while users hit the old process. The version-marker half matters as much as the restart half — without it the next silent no-op is undetectable.

    Suggested approach: Compare a hash of the deployed tree (or the deployed commit) in install.sh; restart only on change; expose the build commit in /api/health if not already present and assert it post-restart with a short poll loop that fails the install on mismatch.

    Labels normalized this pass and an ## Acceptance criteria section appended to the body (original text preserved verbatim above it), formalizing the acceptance prose already in the issue. Marked meta/enriched.

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Oct 29, 2026
  6. 12 remaining items

  7. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  8. 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 Oct 29, 2026
  9. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · Codex P2 fixed and pushed; parked on CI/Codex re-review and the merge-queue freeze (#2403)

  10. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked (Lane C shift, re-claimed 22:47Z)

  11. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Agent note — parked (queue task 3042, PR #2432)

    PR #2432 (fix(pm-stack): aggregator install.sh restarts on change and self-verifies deployed version) is ready: head d16655c2, MERGEABLE/CLEAN, required check basic: proxy port fallbacks pass, Codex review on that head has_any_findings:false / has_unresolved_findings:false (the earlier P1s were fixed in f85e9291 and replied on-thread). No code work remains for #1150.

  12. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Agent note — picked up (resume, awaiting_ci) and re-parked: CI + Codex now complete, gate unchanged

  13. removed
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codeeffort/sSmall: expected under 2 hours 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)queue/parkedQueue task is parked (waiting on CI, time, or an event)status:donetask/small-fixQueue packet kind: bounded fix with reproduction and targeted testswork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions