feat(mcp): update environment preferences - #8728
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Your free Security trial is over. An organization admin can activate Security or dismiss this notice. Comment |
Thread transfer impact
This comment will update automatically after the next completed run. |
There was a problem hiding this comment.
Effect service conventions review: one deviation found in the new ThreadDispatchLockV2 service definition. The rest of the change (dependency acquisition via yield* Foo.Foo in EnvironmentMcpService.make, Layer.effect canonical layer, inline service interface, subpath namespace imports of effect/*, test-only Layer.succeed/Layer.mock/provideService seams) matches the conventions.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
One convention finding on the new test module's service imports. The prior finding on threadDispatchLockLayer in KeyedSerialExecutor.ts still stands but is not re-posted.
Posted via Macroscope — Effect Service Conventions
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This adds a production MCP mutation that durably changes environment-wide defaults and operational behavior, including thread environments, background activity, provider checks, and source-control writing. Its shared orchestration locking and cross-client settings notifications make the blast radius broader than a small isolated option. Notes:
No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
daa079a to
7f56c9f
Compare
7f56c9f to
57a6aeb
Compare
44a966e to
39feca5
Compare
39feca5 to
aae1adc
Compare
|
Superseded as the active MCP proposal by #10560 in the rebuilt MCP stack, following the maintainer request to review thin service wrappers separately from service hardening. This is not a full feature-parity replacement. Updates require a live full-access/default caller under the existing ThreadCommandExecutor. Provider configuration, secrets and admin controls are not exposed. No new settings store or lock service. Closing this mixed proposal without merging. The remote branch |
Problem
Agents could inspect current environment preferences but had no narrow, permission-aware way to update useful nonsecret server-owned defaults.
Change
Add
t3_environment_preferences_updatefor an explicit typed allowlist: default thread environment mode, new-worktree origin behavior, provider update checks, normalized background-activity presets, and bounded source-control writing style.Behavior
Omitted fields remain unchanged, explicit empty custom instructions clear them, and the result comes from normalized persisted settings rather than request inputs. Mutation requires a full-access/default caller. A fresh caller shell is checked under the canonical
ThreadCommandExecutorlock held through settings persistence, so a concurrent V2 downgrade wins safely. Existing settings notifications continue to update web, desktop, and mobile clients. Provider configuration, credentials, paths, browser access, observability, and arbitrary settings remain excluded.Focused validation
tools/list, Claude read-only allowlist, and presentation coveragegit diff --checkDependency
Upper layer of native stack 8782. Depends on #8726 for the safe current-environment read foundation and preference projection.
Implemented by GPT-5.6-Sol via Codex in T3 Code.