Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

šŸ¤– refactor: put the artifacts modules that agent-loop files import behind Effect services

Open
#7,238 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
backend, devtools

Research direction

Start with the Phase 5 plan’s claim 3.5 and the referenced Effect services, then inspect the five listed modules under src/node/services/ and their agent-loop import sites. Move each module’s host access behind the named services, with Node and test layers, while preserving behavior and persisted files. Check the Phase 5 end check: reach.mjs --phase2 should list only the specified follow-up modules and log.

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 artifacts group: the artifact stores.

Modules

Module Host refs Host imports Imported by agent-loop files at
src/node/services/artifactStore.ts 43 fs/promises:2 fs:3 tools/artifact_list.ts:10
src/node/services/artifactShelf.ts 23 fs/promises:2 utils/writeFileAtomic:17 tools/artifact.ts:8 tools/artifact_read.ts:6 turnRequestBuilder.ts:2
src/node/services/artifactVersionStore.ts 12 fs/promises:2 utils/writeFileAtomic:17 tools/artifact_list.ts:16
src/node/services/artifactInteractions.ts 7 utils/writeFileAtomic:28 fs/promises:29 tools/artifact_list.ts:21
src/node/services/artifactsOperations.ts 2 runtime/runtimeHelpers:17 tools/artifact.ts:7 tools/artifact_list.ts:9

Total: 5 module(s), 87 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-imports rule 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from coder/xum

All issues in coder/xum

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.