Skip to content

feat(desktop): scope Settings to Runtime Hosts - #3131

Merged
M4n5ter merged 5 commits into
mainfrom
feat/desktop-host-scoped-settings
Aug 17, 2026
Merged

feat(desktop): scope Settings to Runtime Hosts#3131
M4n5ter merged 5 commits into
mainfrom
feat/desktop-host-scoped-settings

Conversation

@M4n5ter

@M4n5ter M4n5ter commented Aug 17, 2026

Copy link
Copy Markdown
Member
English

Summary

Desktop Settings can now target any enabled Runtime Host without changing the default Host, new-task target, or existing Sessions. Host-owned pages use an explicit Host selector, while Client-owned preferences and bot configuration remain a single Desktop concern.

The same verified profile/root identity and target-generation fence used by multi-Host session routing now scopes settings, connections, credentials, projects, memory, search, and Daily Review.

Refs #2522

Verification

  • Local and remote Host Settings were switched in a live Desktop build; each showed its own projects and model connections
  • Client-owned Appearance remained available without a Host selector
  • npm --workspace @maka/desktop run typecheck
  • npm --workspace @maka/desktop test — 893 passed
  • npm run lint
  • npm run format:check
  • npm run build
  • git diff --check

AI use

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: OpenAI Codex implemented the Desktop, preload, and Runtime Host settings routing changes and ran the listed validation under maintainer direction.

Checklist

  • Tests cover the security boundary and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No
中文

摘要

Desktop Settings 现在可以显式选择任意已启用的 Runtime Host,而不会改变默认 Host、新任务目标或已有 Session。Host-owned 页面显示 Host selector;Client-owned 偏好和 Bot 配置仍由 Desktop 唯一拥有。

设置、模型连接、凭据、项目、记忆、联网搜索和每日回顾均复用 Multi-Host Session 路由已有的 profile/root identity 与 target-generation fence。

关联 #2522

验证

  • 在真实 Desktop 中切换 Local 与 remote Host,分别确认各自的项目和模型连接
  • Client-owned 的“外观”页面不显示 Host selector,且可独立使用
  • Desktop typecheck 与 893 项测试全部通过
  • lint、format check、仓库 build 与 diff check 全部通过

AI 使用

OpenAI Codex 在维护者指导下实现 Desktop、preload 与 Runtime Host 的设置路由变更,并执行上述验证。

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 17fcf1f0-2104-4c17-bee3-40406a468543

📥 Commits

Reviewing files that changed from the base of the PR and between ade6bd8 and 29f5b47.

📒 Files selected for processing (1)
  • apps/desktop/src/renderer/settings/settings-surface.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/desktop/src/renderer/settings/settings-surface.tsx

Included review availability: Your plan includes up to 3 reviews per rolling hour; 1 remains after this review.


📝 Walkthrough

Problem solved

Desktop Settings now scopes Host-owned pages to an explicitly selected Runtime Host. Host switching does not change the default Host, new-task target, or existing Sessions.

Desktop-owned preferences, including Appearance, locale, keep-awake, and bot configuration, remain global.

Source of truth

The PR extends the existing Runtime Host routing model. It reuses DesktopRuntimeHostRef, verified profile and Host identity, and target-generation fencing.

It does not create a parallel Host-selection path. Shared preload contracts, ownership helpers, target context, and bridge adapters route Host-owned operations through the selected Host.

Scope and complexity

The change is the smallest coherent solution shown by the diff. The added context, ownership helpers, persistent client-settings IPC, Host-aware bridge adapters, stale-request protection, and unavailable-Host state are necessary to keep Desktop-owned and Host-owned settings on separate storage and routing paths.

The persistent Settings mount preserves the current Host snapshot while Host and connection data refresh. This prevents background invalidations from discarding in-progress edits.

Simplification opportunities

The PR removes duplicated settings-patch logic and obsolete connection props.

No further deletion is identified without weakening Host isolation, unavailable-Host handling, stale-request protection, or regression coverage.

Risks and validation

Concrete risks include:

  • Host switching changes visible projects, connections, credentials, memory, search, Daily Review, and subscription data.
  • Preload bridge methods now accept optional DesktopRuntimeHostRef values.
  • Client settings updates must reject Runtime Host fields.
  • Requests from a previous Host must not update the current Settings view.
  • Existing default Host, new-task target, Sessions, and Desktop-owned preferences must remain unchanged.
  • Unresolved Host catalogs must remain in a loading state rather than appear unavailable.
  • Failed Host refreshes must expose the Host-owned error state.

Added tests cover client-settings IPC filtering and keep-awake behavior without a Runtime Host.

The PR reports successful Local and remote Host switching, typecheck, 893 Desktop tests, lint, formatting, build, and diff checks. These results remain unverified without direct check output.

Review-relevant risks

The current diff changes user-visible Settings behavior. Material changes in this area require independent human review under repository policy.

The current diff changes public preload contracts and IPC routing. Material public-contract changes require independent human review under repository policy.

The current diff changes Runtime Host target verification and settings isolation. Material security changes require independent human review under repository policy.

The person performing the merge reviews the final diff. A maintainer makes the final determination.

Walkthrough

The change separates client-owned settings from Runtime Host settings. It adds persistent client-settings IPC, explicit Runtime Host selection, host-aware preload routing, and host-scoped settings operations across the desktop settings surface.

Changes

Runtime Host settings

Layer / File(s) Summary
Settings ownership and persistent IPC
apps/desktop/src/shared/settings-ownership.ts, apps/desktop/src/main/...
Client-owned patches are filtered before persistence. Client settings use persistent IPC handlers, masked reads, and change notifications.
Host routing contracts and preload dispatch
apps/desktop/src/preload/...
Bridge methods accept optional DesktopRuntimeHostRef values. Preload helpers route calls and subscriptions to explicit or active hosts.
Settings surface host selection
apps/desktop/src/renderer/settings/settings-surface.tsx, apps/desktop/src/renderer/settings/settings-nav.ts, apps/desktop/src/renderer/settings/runtime-host-settings-*.tsx
Settings sections are classified by scope. The surface loads separate settings, selects hosts, merges owned values, and provides host-aware bridges.
Settings page host propagation
apps/desktop/src/renderer/settings/*
Project, memory, provider, OAuth, daily-review, web-search, connection, model, and proxy operations receive the selected Runtime Host reference.
Supporting UI and documentation
apps/desktop/src/renderer/locales/..., apps/desktop/stories/..., docs/...
Runtime Host labels, unavailable-host messaging, selector styling, stories, architecture documentation, and surface inventories were updated.

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: 🟠 High · up to 29f5b

This change routes settings and stored data to explicitly selected Runtime Hosts, but current code can show or save memory and project data under the wrong Host and may route settings to a disabled Host. These cross-Host correctness and data-isolation risks make the PR unsafe to merge until addressed.

Sequence Diagram(s)

sequenceDiagram
  participant SettingsSurface
  participant PreloadBridge
  participant RuntimeHost
  participant SettingsStore
  SettingsSurface->>PreloadBridge: call operation with DesktopRuntimeHostRef
  PreloadBridge->>RuntimeHost: resolve selected host
  RuntimeHost->>SettingsStore: read or update host settings
  SettingsStore-->>RuntimeHost: settings result
  RuntimeHost-->>PreloadBridge: routed response
  PreloadBridge-->>SettingsSurface: render host-scoped state
Loading

Possibly related PRs

Suggested reviewers: astro-han

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ai Use Disclosure ⚠️ Warning The PR discloses OpenAI Codex for implementation, but commit 29f5b47 has literal escaped text instead of a standalone Generated-by trailer. Add a standalone Generated-by: OpenAI Codex line to the affected commit and amend or squash so it survives; review CONTRIBUTING.md, “Human ownership and AI attribution”.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the main change: scoping Desktop Settings to Runtime Hosts.
Description check ✅ Passed The description includes the required summary, issue reference, verification results, AI-use disclosure, checklist, and behavior-change declaration.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/desktop-host-scoped-settings

Comment @coderabbitai help to get the list of available commands.

@M4n5ter
M4n5ter force-pushed the feat/desktop-host-scoped-settings branch from fa1e865 to b4bc838 Compare August 17, 2026 02:30
@M4n5ter
M4n5ter marked this pull request as ready for review August 17, 2026 02:35
@M4n5ter
M4n5ter force-pushed the feat/desktop-host-scoped-settings branch from b4bc838 to 103645b Compare August 17, 2026 02:45

@coderabbitai coderabbitai 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.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d774a84c-4d41-4925-99fe-ea8ca59293fa

📥 Commits

Reviewing files that changed from the base of the PR and between 18c526c and 103645b.

📒 Files selected for processing (32)
  • apps/desktop/src/main/__tests__/client-settings-ipc-main.test.ts
  • apps/desktop/src/main/client-settings-ipc-main.ts
  • apps/desktop/src/main/runtime-host-boot.ts
  • apps/desktop/src/main/runtime-host-settings-ipc-main.ts
  • apps/desktop/src/preload/bridge-contract.d.ts
  • apps/desktop/src/preload/preload.ts
  • apps/desktop/src/renderer/app-shell-overlays.tsx
  • apps/desktop/src/renderer/app-shell.tsx
  • apps/desktop/src/renderer/locales/settings-shared-copy.ts
  • apps/desktop/src/renderer/settings/claude-subscription-card.tsx
  • apps/desktop/src/renderer/settings/daily-review-settings-page.tsx
  • apps/desktop/src/renderer/settings/general-settings-page.tsx
  • apps/desktop/src/renderer/settings/projects-settings-page.tsx
  • apps/desktop/src/renderer/settings/provider-connection-detail.tsx
  • apps/desktop/src/renderer/settings/provider-oauth-section.tsx
  • apps/desktop/src/renderer/settings/providers-panel.tsx
  • apps/desktop/src/renderer/settings/runtime-host-settings-bridge.ts
  • apps/desktop/src/renderer/settings/runtime-host-settings-target.tsx
  • apps/desktop/src/renderer/settings/settings-modal.tsx
  • apps/desktop/src/renderer/settings/settings-nav.ts
  • apps/desktop/src/renderer/settings/settings-surface.tsx
  • apps/desktop/src/renderer/settings/use-connection-detail.ts
  • apps/desktop/src/renderer/settings/use-memory-settings-controller.ts
  • apps/desktop/src/renderer/settings/web-search-settings-page.tsx
  • apps/desktop/src/renderer/styles/settings/nav-sidebar.css
  • apps/desktop/src/shared/settings-ownership.ts
  • apps/desktop/stories/settings/provider-settings.stories.tsx
  • apps/desktop/stories/settings/settings-pages.stories.tsx
  • docs/architecture/runtime-host-architecture.md
  • docs/architecture/runtime-host-architecture.zh-CN.md
  • docs/astryx-surface-file-inventory.md
  • docs/astryx-surface-file-inventory.paths
💤 Files with no reviewable changes (1)
  • apps/desktop/src/renderer/app-shell.tsx

Included review availability: Your plan includes up to 3 reviews per rolling hour; 1 remains after this review.

Comment thread apps/desktop/src/renderer/settings/settings-surface.tsx Outdated
Comment thread apps/desktop/stories/settings/settings-pages.stories.tsx
@M4n5ter
M4n5ter force-pushed the feat/desktop-host-scoped-settings branch 2 times, most recently from e670856 to b63e275 Compare August 17, 2026 03:57

@coderabbitai coderabbitai 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.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0787ad48-b7cb-49d2-8428-3e67c610bcc9

📥 Commits

Reviewing files that changed from the base of the PR and between 103645b and e670856.

📒 Files selected for processing (12)
  • apps/desktop/src/main/__tests__/use-keep-system-awake.test.ts
  • apps/desktop/src/preload/preload.ts
  • apps/desktop/src/renderer/app-shell-effects.ts
  • apps/desktop/src/renderer/settings/general-settings-page.tsx
  • apps/desktop/src/renderer/settings/personalization-settings-section.tsx
  • apps/desktop/src/renderer/settings/projects-settings-page.tsx
  • apps/desktop/src/renderer/settings/runtime-host-settings-target.tsx
  • apps/desktop/src/renderer/settings/settings-nav.ts
  • apps/desktop/src/renderer/settings/settings-surface.tsx
  • apps/desktop/src/renderer/use-keep-system-awake.ts
  • apps/desktop/src/renderer/use-shell-appearance.ts
  • apps/desktop/stories/settings/settings-pages.stories.tsx
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/desktop/src/renderer/settings/settings-nav.ts
  • apps/desktop/stories/settings/settings-pages.stories.tsx
  • apps/desktop/src/renderer/settings/settings-surface.tsx
  • apps/desktop/src/preload/preload.ts

Included review availability: Your plan includes up to 3 reviews per rolling hour; 1 remains after this review.

Comment thread apps/desktop/src/renderer/app-shell-effects.ts Outdated
Comment thread apps/desktop/src/renderer/settings/projects-settings-page.tsx
Comment thread apps/desktop/src/renderer/use-shell-appearance.ts Outdated

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/desktop/src/renderer/settings/settings-surface.tsx (1)

211-227: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Keep the selected Runtime Host enabled.

If next.defaultProfileId identifies a disabled entry, Line 486 selects it although Lines 570-576 exclude disabled entries from the selector. Lines 211-227 then create a DesktopRuntimeHostRef without checking entry.enabled. Runtime Host pages can route to a disabled Host, or show unavailable while an enabled Host exists.

Select the default only when it is enabled. Otherwise select an enabled entry or leave the selection unset. Also reject disabled entries when deriving selectedRuntimeHost.

Proposed fix
 const selectedRuntimeHostEntry = runtimeHosts?.entries.find(
-  (entry) => entry.profile.id === selectedProfileId,
+  (entry) => entry.profile.id === selectedProfileId && entry.enabled,
 );

 ...
+        const fallback = next.entries.find(
+          (entry) =>
+            entry.profile.id === next.defaultProfileId && entry.enabled,
+        ) ?? next.entries.find((entry) => entry.enabled);
         return next.defaultProfileId;
+        return fallback?.profile.id;

This violates the PR objective that Settings are scoped to enabled Runtime Hosts. As per path instructions: “Review the diff adversarially against the problem it claims to solve.”

Also applies to: 479-487

Source: Path instructions


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: cfb45646-cabe-4fa4-871e-7f0a43308792

📥 Commits

Reviewing files that changed from the base of the PR and between b63e275 and ade6bd8.

📒 Files selected for processing (5)
  • apps/desktop/src/main/__tests__/client-settings-ipc-main.test.ts
  • apps/desktop/src/main/client-settings-ipc-main.ts
  • apps/desktop/src/renderer/app-shell-effects.ts
  • apps/desktop/src/renderer/settings/settings-surface.tsx
  • apps/desktop/src/renderer/use-shell-appearance.ts
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/desktop/src/main/tests/client-settings-ipc-main.test.ts
  • apps/desktop/src/renderer/app-shell-effects.ts
  • apps/desktop/src/main/client-settings-ipc-main.ts
  • apps/desktop/src/renderer/use-shell-appearance.ts

Included review availability: Your plan includes up to 3 reviews per rolling hour; 2 remain after this review.

@M4n5ter
M4n5ter force-pushed the feat/desktop-host-scoped-settings branch from 29f5b47 to fb7557c Compare August 17, 2026 06:27
Host-owned Settings previously followed the default Host, making multi-host configuration ambiguous. Add explicit target selection while keeping client preferences and bot configuration Desktop-owned. Route reads, writes, events, connections, and credentials through the verified target scope without changing the default Host or existing Sessions.

Generated-by: OpenAI Codex
Bind asynchronous Host settings and connection snapshots to their selected target so late or failed loads cannot surface data from another Host. Keep Desktop-owned preferences available independently, preserve every-Host connection events, and make profile catalog failures recoverable.

Generated-by: Codex
Keep Desktop appearance and client-setting events independent from Runtime Host availability. Make Host resource reloads settle through their owned error state so a failed refresh cannot misreport a successful mutation, and preserve newly submitted bot credentials at the update response boundary.

Generated-by: Codex
Preserve the selected Host snapshot while its settings and connections refresh, so background invalidations cannot discard in-progress edits. Route Host-backed diagnostics, imports, and configuration through that same target instead of silently falling back to the default Host.

Generated-by: OpenAI Codex
@M4n5ter
M4n5ter force-pushed the feat/desktop-host-scoped-settings branch from fb7557c to 10fbac9 Compare August 17, 2026 06:29
@M4n5ter

M4n5ter commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

I have manually verified the changes in the current PR and found no obvious issues. Given that there are currently no users for the remote runtime host, and the current changes have a minor impact and are easy to roll back, I have decided to merge them, and I take responsibility for the outcome.

Keep native path actions and display metadata bound to the Runtime Host selected in Settings. Filter selected-Host events against the live target epoch so reconnects do not silently disable refreshes.

Generated-by: OpenAI Codex

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Scopes Desktop Settings pages to an explicitly selected Runtime Host, enabling per-Host configuration (connections, credentials, memory, search, Daily Review, etc.) without changing the default Host/new-task target or existing Sessions. This extends the existing multi-Host identity + target-epoch fencing model into settings routing, while keeping Desktop-owned preferences (appearance/locale/etc.) independent.

Changes:

  • Added a Runtime Host settings target context + host-scoped bridges, and updated settings pages to pass/consume an explicit Host target for Host-owned reads/writes.
  • Split Desktop-owned settings reads/writes into settings.getClient() / settings.updateClient() with new client-settings IPC wiring, and updated shell hydration/subscriptions accordingly.
  • Updated docs and Storybook stories to reflect the new Host-scoped Settings behavior and surfaces inventory.

Reviewed changes

Copilot reviewed 40 out of 41 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
docs/astryx-surface-file-inventory.paths Registers the new settings target module in the surface inventory.
docs/astryx-surface-file-inventory.md Updates inventory totals and settings surface entries.
docs/architecture/runtime-host-architecture.md Documents Host-scoped Settings behavior (explicit Host selector; client prefs remain global).
docs/architecture/runtime-host-architecture.zh-CN.md Same as above for zh-CN architecture guide.
apps/desktop/stories/settings/settings-pages.stories.tsx Updates Storybook bridge mocks for split client/host settings and runtime host profiles.
apps/desktop/stories/settings/provider-settings.stories.tsx Wraps provider story in RuntimeHostSettingsTarget for host-scoped pages.
apps/desktop/src/shared/settings-ownership.ts Introduces shared helpers to separate client-owned vs host-owned settings patches and projections.
apps/desktop/src/renderer/use-shell-appearance.ts Hydrates appearance/locale from client settings and host-owned fields from host settings.
apps/desktop/src/renderer/use-keep-system-awake.ts Moves keep-awake toggle to client settings so it works while hosts are offline.
apps/desktop/src/renderer/styles/settings/nav-sidebar.css Adds layout class for the runtime host selector in the header.
apps/desktop/src/renderer/settings/web-search-settings-page.tsx Routes web search test/query calls through the selected runtime host target.
apps/desktop/src/renderer/settings/use-memory-settings-controller.ts Scopes memory state/mutations to the selected runtime host.
apps/desktop/src/renderer/settings/use-connection-detail.ts Scopes OAuth flows and provider actions to the selected runtime host.
apps/desktop/src/renderer/settings/settings-surface.tsx Implements host selector, per-host resource loading, and split client/host settings state management.
apps/desktop/src/renderer/settings/settings-nav.ts Adds section scope classification (client/mixed/runtime-host) to drive host selector + gating.
apps/desktop/src/renderer/settings/settings-modal.tsx Removes default-host connection props; SettingsSurface now self-loads per selected host.
apps/desktop/src/renderer/settings/runtime-host-settings-target.tsx Adds context + hooks for selected Runtime Host settings target propagation.
apps/desktop/src/renderer/settings/runtime-host-settings-bridge.ts Adds host-scoped connections bridge and OAuth-login bridge wrappers.
apps/desktop/src/renderer/settings/providers-panel.tsx Uses injected bridge for set-default connection (host-scoped).
apps/desktop/src/renderer/settings/provider-oauth-section.tsx Scopes OAuth subscription state/actions to the selected runtime host.
apps/desktop/src/renderer/settings/provider-connection-detail.tsx Scopes GitHub Copilot re-login action to the selected runtime host.
apps/desktop/src/renderer/settings/projects-settings-page.tsx Scopes projects catalog/subscriptions/actions to the selected runtime host and adds unavailable-state banner.
apps/desktop/src/renderer/settings/personalization-settings-section.tsx Gates host-owned identity fields behind runtime-host availability.
apps/desktop/src/renderer/settings/permission-center-page.tsx Scopes permission/capability snapshots and actions to the selected runtime host.
apps/desktop/src/renderer/settings/import-tasks-settings-page.tsx Scopes external session sources/list/import to the selected runtime host.
apps/desktop/src/renderer/settings/health-center-page.tsx Scopes health snapshot to the selected runtime host.
apps/desktop/src/renderer/settings/general-settings-page.tsx Adds runtime-host availability gating and routes network proxy testing + defaults to host-scoped bridges.
apps/desktop/src/renderer/settings/data-settings-page.tsx Scopes app info + config import/export to selected host and adds unavailable-state banner/gating.
apps/desktop/src/renderer/settings/daily-review-settings-page.tsx Scopes Daily Review config reads/writes to the selected runtime host.
apps/desktop/src/renderer/settings/claude-subscription-card.tsx Scopes Claude subscription actions to the selected runtime host.
apps/desktop/src/renderer/locales/settings-shared-copy.ts Adds localized copy for runtime host selector/unavailable states.
apps/desktop/src/renderer/app-shell.tsx Stops passing default-host connections into settings overlay (settings now self-resolve).
apps/desktop/src/renderer/app-shell-overlays.tsx Removes settings modal props tied to default-host connection state.
apps/desktop/src/renderer/app-shell-effects.ts Adds subscription for client settings changes and adjusts settings refresh wiring.
apps/desktop/src/preload/preload.ts Adds host-scoped invocation/subscription helpers and splits settings client vs host APIs.
apps/desktop/src/preload/bridge-contract.d.ts Introduces DesktopRuntimeHostRef and updates bridge signatures to accept optional host targets.
apps/desktop/src/main/runtime-host-settings-ipc-main.ts Reuses shared ownership helpers; keeps client-owned patches in Desktop store while applying runtime policy to host.
apps/desktop/src/main/runtime-host-boot.ts Registers new client settings IPC + shifts bots/settings notifications to client-owned channels.
apps/desktop/src/main/client-settings-ipc-main.ts New IPC for client settings get/update with patch filtering and masked responses.
apps/desktop/src/main/tests/use-keep-system-awake.test.ts Adds coverage for keep-awake toggle remaining functional without host settings bridge.
apps/desktop/src/main/tests/client-settings-ipc-main.test.ts Adds coverage ensuring client settings IPC filters host-owned policy and returns submitted secrets.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread apps/desktop/src/renderer/use-keep-system-awake.ts
Comment thread apps/desktop/src/renderer/settings/projects-settings-page.tsx
@M4n5ter
M4n5ter merged commit 0e5bbec into main Aug 17, 2026
13 checks passed
@M4n5ter
M4n5ter deleted the feat/desktop-host-scoped-settings branch August 17, 2026 07:10
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.

2 participants