agent-orchestrator/docs
Harshit Singh Bhandari 5fa53ad976
feat: electron-updater feed publishing + macOS signing (#2220) (#2226)
* docs(spec): feed-publishing + macOS signing design (#2220)

Design for the electron-updater feed-publishing workstream plus the macOS
code-signing half of Track B, shipped as one PR so a single review unblocks
auto-update. Sidecar-only post-matrix join job emits latest*.yml / nightly*.yml
+ .blockmap sidecars on all three platforms (no maker changes, no artifact
mutation). macOS signing reproduces the proven local runbook in CI: keychain
provisioning, hardened-runtime entitlements, and notarization via the App Store
Connect API key (.p8) path, with the osxNotarize cast fixed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(plan): feed-publishing + macOS signing implementation plan (#2220)

Six TDD tasks: blockmap wrapper, feed module (selection + yml), osxNotarize
API-key rewire, macOS signing-setup composite action, and the two workflow
wirings (latest + nightly feed jobs). Two evidence-based simplifications vs the
spec: no custom entitlements plist (default osxSign entitlements are proven by
the local runbook) and no Node bump (CI already below the crash ceiling).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(feed): blockmap sidecar wrapper over app-builder-lib

Adds frontend/scripts/blockmap.mjs isolating the single fragile internal
import (app-builder-lib/out/targets/blockmap/blockmap.js) behind a thin
writeBlockmap(filePath) wrapper. Returns { sha512, size } only, omitting
blockMapSize to force the sidecar differential path in electron-updater.

Test added with // @vitest-environment node directive (required: project
vitest config defaults to jsdom; same pattern as nightly-version.test.mjs).
TDD: red on missing module, green after implementation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(feed): installer selection + electron-updater yml assembly

Implement selectInstallers, feedFilename, and buildYml pure functions
for packaging versioned installers and generating platform-specific
feed metadata. Excludes ao-start aliases and deb/rpm packages.
Generates blockmap sidecars and yml with deprecated top-level
path/sha512 for compatibility, no blockMapSize (forces sidecar diff).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(sign): notarize via App Store Connect API key; drop osxNotarize cast

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(ci): macOS signing-setup composite action

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(ci): sign macOS + publish latest feed in the release workflow

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(ci): sign macOS + publish nightly feed in the nightly workflow

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore: format with prettier [skip ci]

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-27 18:10:20 +05:30
..
agent feat(cli): ao start fetches + opens the desktop app; deprecate npm as an app channel (Track A) (#2201) 2026-06-26 19:31:56 +05:30
cli Zellij to tmux + ConPTY runtime, session save/restore, crash-proof reconcile (port #404) (#2183) 2026-06-25 15:05:41 +05:30
plans feat: dashboard legacy-migration popup + app-state migration marker (#2219) 2026-06-27 02:24:36 +05:30
superpowers feat: electron-updater feed publishing + macOS signing (#2220) (#2226) 2026-06-27 18:10:20 +05:30
README.md docs: refocus README on the product, move progress to docs/STATUS.md (#311) 2026-06-18 15:43:41 +05:30
STATUS.md Zellij to tmux + ConPTY runtime, session save/restore, crash-proof reconcile (port #404) (#2183) 2026-06-25 15:05:41 +05:30
ao-start-bootstrapper-and-npm-deprecation.md feat(cli): ao start fetches + opens the desktop app; deprecate npm as an app channel (Track A) (#2201) 2026-06-26 19:31:56 +05:30
architecture.md docs: refresh repository readme [skip ci] (#2190) 2026-06-26 17:28:07 +05:30
backend-code-structure.md feat(cli): ao start fetches + opens the desktop app; deprecate npm as an app channel (Track A) (#2201) 2026-06-26 19:31:56 +05:30
daemon-environment.md Zellij to tmux + ConPTY runtime, session save/restore, crash-proof reconcile (port #404) (#2183) 2026-06-25 15:05:41 +05:30
stack.md Zellij to tmux + ConPTY runtime, session save/restore, crash-proof reconcile (port #404) (#2183) 2026-06-25 15:05:41 +05:30
telemetry.md docs: refresh repository readme [skip ci] (#2190) 2026-06-26 17:28:07 +05:30

README.md

agent-orchestrator rewrite docs

The agent-orchestrator is being rebuilt as a long-running Go backend daemon
(backend/) plus an Electron + TypeScript frontend (frontend/). The backend
supervises coding-agent sessions and exposes daemon control, project/session
state, terminal streaming, and CDC/event infrastructure.

Start with architecture.md for the current backend model and
cli/README.md for the CLI surface.

Reference docs

Doc What it covers
architecture.md Current backend model, package layout, status derivation, persistence/CDC, and load-bearing rules.
backend-code-structure.md Package ownership rules for the Go backend: domain, services, ports, adapters, storage, HTTP, CLI, and daemon wiring.
cli/README.md CLI commands and daemon control surface.
agent/README.md Agent adapter contract, hook methodology, and session-info derivation.
STATUS.md What is shipped on main today and what is still in flight.
stack.md Accepted library/runtime choices, pending stack decisions, and dependencies explicitly avoided for V1.

Mental model

Persist durable facts, derive display status:

  • session table: activity_state, is_terminated, identity, metadata
  • PR tables: PR/CI/review facts
  • derived read model: service.Session computes display status from session + PR facts