Skip to content

Close child (eve): merge the approval-alert epic #503

Open

Description

@barelyworkingcode

Child of #498. The close child (eve).

User story

As the owner, I want the approval-alert epic merged only after its full checks pass, so that main never holds half of it.

Acceptance criteria

  • CI is green on the final commit of epic/498-approval-alert, with a dispatched ci run on that head.
  • eve's devbox/verify-full passes on the relay and eve epic heads built together.
  • Raise the approval alert to a registered phone, and let the phone sign up for it #502 is merged to the epic branch with review and evidence lines.
  • main is merged into epic/498-approval-alert by the sync PR sync/498-main, which says Closes #503.
  • merge-check passes on each epic-to-main PR.
  • relay's epic PR merges first, then eve's, then relayClient's, minutes apart.
  • No step re-pins eve to relay main.
  • Each child and all three parents are closed with a comment naming the merged PR.
  • The epic branches are deleted.

What I'd notice

Nothing. The change appears on main in one step.

Close lines (eve)

  1. CI green on the final commit of epic/498-approval-alert, and a full run: dispatch ci (workflow_dispatch) on the epic head, after line 4.
  2. The Full run passes on the epic head after line 4 and before the epic PR merges: joint close task step b on Alert the owner's phone when a session waits for approval #498.
  3. Every child is merged to the epic branch, with review and evidence lines in place.
  4. main is merged into the epic branch by a sync PR whose head is sync/498-main and whose body says Closes #503; conflicts are resolved on it.
  5. Close Raise the approval alert to a registered phone, and let the phone sign up for it #502 with a comment naming its PRs.
  6. merge-check passes on eve's epic PR to main (joint close step c).
  7. Merge the epic PR; its Closes #503 closes this child. Confirm main still green, close Alert the owner's phone when a session waits for approval #498 once every sub-issue in all three repos is closed, delete the epic branch.

Tasks

Contract

Joint close task and order: #498. This child adds no code. Its PRs are the sync PR, a possible pin-only PR, and eve's epic PR to main (Closes #503). merge-check judges the sync PR and the epic PR on the files that differ from main, so this list is the union of #502's paths; conflict resolution stays inside them.

File ownership

  • approval-watcher.js
  • push-notifier.js
  • server.js
  • routes/index.js
  • public/push-alerts.js
  • public/dialogs/settings-dialog.js
  • public/index.html
  • public/app.js
  • test/e2e/relay-pin.json
  • test/e2e/g15-approval-alert.spec.js
  • docs/api.md
  • docs/design-on-the-go.md
  • docs/FEATURES-iOS.md
  • docs/areas.jsonc
  • CLAUDE.md

Test surface

The dispatched ci run (every spec, not the diff's selection), and the joint run in step b (every journey on both heads built together). A conflict resolved on sync/498-main gets the specs of the area it touches in that run. Nothing new is written here.

Waits

  • ci: the dispatched run's id, waited on with gh run watch <id> --exit-status (a completion handle), never a duration.
  • Step b: the set.js process exit and the devbox/verify-full status it posts. It holds the browser-test lock; don't hand-roll a wait for it.
  • Merges: merge-check exit codes.

Budget

0 lines of new code. Conflict resolution only inside the paths above; anything else stops and asks.

Activity

  1. barelyworkingcode commented on Oct 19, 2026

    @barelyworkingcode
    OwnerAuthor

    Coordinator approval: owner asked, 2026-10-19 (approved every waiting idea)

  2. added
    deferredApproved but not scheduled: never start
    and removed on Oct 19, 2026
  3. barelyworkingcode commented on Oct 20, 2026

    @barelyworkingcode
    OwnerAuthor

    Deferred by the owner, 2026-10-19: a low-priority nice to have. Approved, not scheduled; do not start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    deferredApproved but not scheduled: never startenhancementNew feature or requesttaskOne batch of an epic

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions