Skip to content

C09.1: administer durable UAR team planning in The Boss - #22

Merged
GQAdonis merged 1 commit into
mainfrom
codex/agent-fabric-c09-boss
Sep 28, 2026
Merged

GQAdonis merged 1 commit into
mainfrom
codex/agent-fabric-c09-boss

Conversation

@GQAdonis

@GQAdonis GQAdonis commented Sep 28, 2026 •

Copy link
Copy Markdown

Before this PR:
UAR team definitions could be installed, but The Boss had no workspace-scoped team board or settings controls. A packaged user could not create or inspect durable team tasks.

After this PR:
The Boss pins UAR C09.1 (ae4db118; Prometheus-AGS/universal-agent-runtime#312), installs an immutable starter team and private workspace binding, and provides typed IPC and a localized Teams settings surface for durable members and task dependency boards.

Why we need it

Users need an independently usable planning surface while team execution is built in C09.2/C09.3. The completed Mac ARM64 gate created supervisor/worker, bounded map/reduce and peer graphs, restarted the sidecar, confirmed persistence and workspace isolation, and displayed the recovered board in settings. The local DMG SHA-256 is 10c2c652fa15fe16d56bfe3cc6b3a494b7aa645f9c3bb4a4033d75e23b7f434e; it is Developer ID signed, not notarized. Exact source and runtime receipts are in the convergence C09.1 evidence. Public installers and the website follow the second-delivery publication gate.

Validation

The packaged Mac ARM64 app completed the saved-board, restart, isolation and settings walkthrough at the completed increment boundary. No intermediate test suite was run.

Added a UAR Teams settings page for durable, workspace-scoped team planning boards.

Package the pinned C09.1 sidecar, add workspace-scoped team setup and administration, and expose the saved board in localized settings.

Packaged Mac ARM64 gate created supervisor, bounded map/reduce and peer boards; restart and workspace isolation passed.

Assisted-by: Codex:gpt-6-astra [tools]
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T20:00:37.133451Z 76de7fe PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 76de7fea8f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

{selectedDefinition.id} · {tr('digest')}: {selectedDefinition.digest}
</p>
)}
{snapshot.definitions.length === 0 && (

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep starter setup available until a binding exists

If package installation succeeds but binding preflight or installation fails, the next snapshot contains the starter definition without an eligible workspace binding. This condition hides the only setup_starter action, so after a refresh or restart the user is left at “No deployment bindings” with no recovery path; offer setup whenever the starter's eligible binding is missing rather than only when the entire definition catalog is empty.

Useful? React with 👍 / 👎.

dependencies
])
const intent =
intentRef.current?.fingerprint === fingerprint

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Rebase retries on the refreshed team revision

After a task submission fails because another client advanced the team revision, refreshing updates the instance prop without remounting this form, whose key is only the instance ID. Because the fingerprint omits instance.revision, retrying unchanged fields reuses the retained intent's stale expectedTeamRevision and conflicts indefinitely; incorporate the refreshed revision or discard an intent after a definitive conflict while preserving idempotency for uncertain outcomes.

Useful? React with 👍 / 👎.

)}
{snapshot && !snapshot.capabilities.planning && (
<p className="mt-3 text-sm text-warning-subtle-foreground" role="status">
{tr('planningUnavailable')} {snapshot.unavailableReason}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Localize the unsupported-planning reason

When the selected UAR does not support team planning, unavailableReason is the internal code team_planning_unsupported, which is rendered directly after the translated message. Users therefore see untranslated snake-case implementation text in every locale; map the reason to an i18n key or omit it from the visible copy.

AGENTS.md reference: AGENTS.md:L128-L132

Useful? React with 👍 / 👎.

activation: z.object({ teamPlanning: z.boolean().default(false) })
})
})
.parse(await scopedRequest(resolved, '/api/v1/collaboration/capabilities', state.generation))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor capability availability before requesting it

For an older, external, or feature-gated UAR whose administration manifest marks collaboration.capabilities unavailable, capabilityState() records that fact but this unconditional request still fails with an HTTP error. Consequently the Teams page cannot return its intended planning: false unsupported snapshot; check the advertised operation before dispatching and return the unsupported state when it is unavailable.

Useful? React with 👍 / 👎.

if (beforeRestart.instances.some((item) => item.id === team.id)) {
throw new Error('The first team leaked into another workspace')
}
const restart = await request(evaluate, 'prometheus.integration.start', { action: 'uar-restart' })

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Relaunch the app in the durability scenario

This operation restarts only UarSidecarService and then continues through the same renderer/evaluator session, while the committed outcome explicitly requires recovery after restarting both UAR and The Boss. A defect in app-process relaunch or restoration can therefore pass this delivery gate; relaunch the packaged application and reconnect before the final snapshot and UI assertions.

AGENTS.md reference: AGENTS.md:L57-L58

Useful? React with 👍 / 👎.

@@ -0,0 +1,9 @@
# Design

The Boss verifies workspace IDs against its own workspace store, reads the selected UAR generation and sends requests through its existing authenticated sidecar connection. It parses the returned team documents and refuses a response for another workspace. The renderer receives a typed projection via three fixed IPC routes: snapshot, create, add task. No arbitrary URL or untrusted method is accepted from the renderer.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document the starter-setup IPC route

The design describes a three-route renderer boundary—snapshot, create, and add task—but this commit also exposes and invokes prometheus.uar.teams.setup_starter. Because this paragraph defines the fixed IPC trust surface, omitting the fourth command makes the architecture record inaccurate; document all four routes or explicitly distinguish setup from the three planning operations.

Useful? React with 👍 / 👎.

@GQAdonis
GQAdonis merged commit 53b0f11 into main Sep 28, 2026
45 of 56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant