Skip to content

feat(synthos): add GCH Night Riders workspace and scoped agent workflows - #1

Merged
Synthminds merged 9 commits into
mainfrom
feat/synthos-platform
Oct 29, 2026
Merged

Synthminds merged 9 commits into
mainfrom
feat/synthos-platform

Conversation

@Synthminds

Copy link
Copy Markdown
Owner

SynthOS adds a GCH control room to this T3 Code fork, sharing its projects, threads, provider execution, editor, terminal and authentication. The Night Riders cockpit brings the synthwave car-and-bike interface together with durable multi-model crew roles, scoped memory and graph evidence, reviewed mail/device intake, usage reconciliation and fixed CLI version probes.

Context packets preserve the GCH policy and freeze source/version evidence. Apple silicon packaging uses the SynthOS app identity and separate desktop state. This branch also integrates the current main without application-code conflicts.

Validation: vp run check:changed origin/main passed on integrated head 00f79721c2d82d53c30070a571fb5d3fccc47519: 541 tests across 70 files, all 36 affected package typechecks, lint, formatting, both knip passes, generated GraphQL checks, and unused-patch verification. The tracked worktree remains clean. Earlier native macOS ARM64 run 40840599058 passed, and its exact archive, internal checksums, app identity and architecture were independently verified. The synthetic context benchmark passes 8/8 routed cases versus 2/8 packet-only, with zero model calls; it does not establish model quality or billing savings.

This merges the implemented development platform. The five independent QA reviews and consolidated seven-batch refinement plan are saved separately in the portable Mac handoff. Private-context authorization, accepted-launch recovery/usage settlement, and fork-safe managed SSH remain priority follow-ups. Use local/manual qualified fork connections for continued development. Real Obsidian vault linkage, hosted Braintrust evaluation and physical hardware qualification remain unverified. The existing desktop artifact is unsigned, not notarized, and has not been launch-tested on the intended Mac.

Model/harness: Codex (GPT-6).

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 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-10-29T22:23:21.757843Z 00f7972 PR opened
🔒 Security Review ✅ Completed 2026-10-29T22:22:19.113080Z 00f7972 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.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Oct 29, 2026
@Synthminds
Synthminds merged commit 311fa52 into main Oct 29, 2026
8 of 19 checks passed

@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: 00f79721c2

ℹ️ 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".

Comment on lines +85 to +86
export function synthosContextRequiredScope(command: SynthosContextCommand): AuthEnvironmentScope {
return command.type === "save_settings" ? "orchestration:operate" : "orchestration:read";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Enforce filesystem authorization before returning vault excerpts

With an Obsidian vault configured and notes pinned or approved for recall, a session holding only orchestration:read can call context preview and receive their contents. SynthosContext.build reads those notes directly through vault.read, whereas the explicit obsidian.read operation requires filesystem:read in synthosConnectionRequiredScope. A session with orchestration:operate can also configure arbitrary vault note paths without that filesystem permission. Apply the same filesystem access boundary to context configuration and retrieval so these endpoints cannot bypass the existing vault-read restriction.

Useful? React with 👍 / 👎.

Comment on lines +391 to +392
const revision = yield* Effect.tryPromise(() =>
runGit("git", ["rev-parse", "HEAD"], { cwd: root, timeout: 5000 }),

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 Freeze initial context against the requested workflow base

When a workflow is created with a valid baseRef pointing to a different commit than the project's current HEAD, its first dispatch always fails with context_source_changed: context assembly records HEAD here, but SynthosRuntime.launch passes workflow.baseRef to validate, which compares that ref's revision against the recorded revision. Retrying rebuilds the same mismatched manifest. Pass the requested base into context assembly and read its repository guidance and revision consistently before launching the initial worktree.

Useful? React with 👍 / 👎.

Comment on lines +76 to +79
world.update(state, clock);
render();
}
frame = requestAnimationFrame(tick);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Replace continuous highway rendering with bounded updates

While a selected workflow's provider is running, the cockpit enables motion by default and this loop continuously updates and redraws the WebGL scene for the entire turn. Visibility checks and the 30-fps cap limit the work but do not stop persistent GPU rendering during normal foreground use. Render on state changes or use bounded transitions instead of a continuously repainting animation, as explicitly required by the repository's performance guidance.

AGENTS.md reference: AGENTS.md:L209-L209

Useful? React with 👍 / 👎.

Comment on lines 191 to +192
export const buildPairingAppLink = (pairingUrl: string): string =>
`t3code://pair?${new URLSearchParams([[PAIRING_APP_LINK_PARAM, pairingUrl]])}`;
`synthos://pair?${new URLSearchParams([[PAIRING_APP_LINK_PARAM, pairingUrl]])}`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep generated app links compatible with the mobile schemes

On iOS and Android, the generated pairing app links now use synthos://, but apps/mobile/app.config.ts:78-99 still registers only the t3code channel schemes and apps/mobile/src/App.tsx:125 accepts only those prefixes. Consequently these links cannot open the mobile client; scanning one inside the app also fails because extractPairingUrlFromQrPayload only unwraps t3code:. The changed default in promptLinkDeepLink similarly breaks the phone's hosted “Open in app” flow. Preserve a mobile-compatible scheme in shared link generation or update the native registration, navigation, and QR parsing together.

AGENTS.md reference: AGENTS.md:L70-L70

Useful? React with 👍 / 👎.

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

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant