Skip to content

fix(server): set TERM in the Windows spawn env, not only the pty name

MacroscopeApp / Macroscope - Effect Service Conventions failed Aug 8, 2026 in 49s

Effect Service Conventions: 1 issue found

  • apps/server/src/terminal/NodePtyAdapter.ts: the win32 spawn behavior change (always name: "xterm-256color" and injecting TERM into input.env) is not reflected in the existing focused test apps/server/src/terminal/NodePtyAdapter.test.ts, which still asserts env: {} and name: "xterm-color" under HostProcessPlatform = "win32". Backend behavior changes require the focused tests to be updated (and ideally a case covering an explicitly provided TERM being preserved).

No other convention violations found: imports use effect/* subpath namespaces, the module keeps the canonical Context.Service/make/layer shape with plain make/layer names for a concrete implementation, errors use Schema.TaggedErrorClass with structural attributes and a real cause, and no runtime boundaries (ManagedRuntime.make, runPromise) or fake dependency injection were introduced.

Details

Note

Your check run agent prompt is: .macroscope/check-run-agents/effect-service-conventions.md
More information about how Check Run Agents work can be found in our Help Center.

Files examined: apps/server/src/terminal/NodePtyAdapter.ts (changed), apps/server/src/terminal/NodePtyAdapter.test.ts, apps/server/src/terminal/BunPtyAdapter.ts, apps/server/src/terminal/PtyAdapter.ts, and the adapter selection site in apps/server/src/server.ts.

The diff only touches the spawn implementation inside NodePtyAdapter.make, so service-definition, layout, and error-model conventions are unaffected. The only in-scope violation is under Change discipline: a backend behavior change without corresponding focused test updates, where the existing assertion now contradicts the new behavior.


🔍 Agent activity — 1 tool call

💭 I'm checking The test is asserting the old behavior with name: "xterm-color" and an empty env object, but the PR changed the backend to return name: "xterm-256color" with env: {TERM: "xterm-256color"} — so the test will fail since it wasn't updated to match. This is a valid finding under change discipline since the behavior changed but the test in scope didn't get updated.

1. modify_pr — One finding: the win32 PTY behavior change is not reflected in the existing focused test, which now asserts the old name/env values.


Agent Credits: 31 credits