š¤ refactor: put the app config modules that agent-loop files import behind Effect services
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Read the phase 5 plan v4, especially claim 3.5, then inspect the four listed modules: src/node/config/index.ts, src/node/multiProject/containerManager.ts, src/node/services/providerModelFactory.ts, and src/node/utils/extensionMetadata.ts. Use reach.mjs --phase2 and reachRefs.mjs to understand the reported host access and verify the phase 5 trigger has completed. Done means each moduleās host access uses the named Effect services and Node and test layers, with behavior and persisted files unchanged.
Written by the indexing model from the issue text.
Description
Summary
Agent-loop files import these modules, and the modules still reach the host directly (fs, os, child_process, writeFileAtomic, a runtime class or a runtime builder). The local/no-host-imports rule checks only the agent-loop files themselves, so it does not see this host access. Phase 5 of the agent-loop refactor does not move these modules: its plan (claim 3.5, decision "reach") keeps one follow-up issue per group. This issue is the app config group: Config, providers, extension metadata and multi-project containers.
Modules
| Module | Host refs | Host imports | Imported by agent-loop files at |
|---|---|---|---|
src/node/config/index.ts |
37 | fs:3 utils/writeFileAtomic:6 utils/fs:119 runtime/DockerRuntime:123 | aiService.ts:53 tools/task_list.ts:20 |
src/node/multiProject/containerManager.ts |
5 | fs/promises:2 | aiService.ts:59 |
src/node/services/providerModelFactory.ts |
2 | fs/promises:11 | aiService.ts:113 |
src/node/utils/extensionMetadata.ts |
2 | fs:1 | aiServiceEventGuards.ts:8 |
Total: 4 module(s), 46 uses of host bindings. Counts and lines come from reach.mjs --phase2 and reachRefs.mjs of the phase 5 plan, at ba9e451cab (phase 1 changed no file under src/).
Work
Move the host access of each module behind the Effect services that phase 5 adds (HostFiles, HostPaths, HostProcesses, RuntimeFactory, SessionFiles, SessionLocks), with a Node layer and a test layer, and no change in behavior or persisted files.
Trigger
After phase 5 ends (stacks 5a and 5b merged). Phase 5 end check 7 expects reach.mjs --phase2 to list only the 30 follow-up modules of these 8 issues and log.
Refs
- Phase 5 plan v4 ("Host I/O Services for the Xum Agent Loop", artifact
phase5-plan.html), claim 3.5. - Refs #7207 (the
local/no-host-importsrule and its frozen pairs).
Generated with xum ⢠Model: anthropic:claude-opus-5-5 ⢠Thinking: high ⢠Cost: $31.10
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 140
- Avg merge
- 5h 8m
- Merged PRs (30d)
- 952
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up ā it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/xum
-
š¤ fix: Daytona startAndWait can start a sandbox after its deadline and then report a timeoutOpen
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
coder/xum#7358 Ā· 3 comments Ā·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
coder/xum#7283 Ā· 1 comment Ā·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 70/100
microsoft/playwright#43640 Ā·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
grasshopper-protocol/grsshppr#172 Ā·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Tencent/teamai-cli#1397 Ā·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
DouyinFE/semi-design#3641 Ā·
Maintainers usually reply within 3 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day