Skip to content

refactor(pm): move fetcher.cppm into pm/package_fetcher.cppm (PR-R3)#5

Merged
Sunrisepeak merged 1 commit intomainfrom
refactor/pm-r3-package-fetcher
May 8, 2026
Merged

refactor(pm): move fetcher.cppm into pm/package_fetcher.cppm (PR-R3)#5
Sunrisepeak merged 1 commit intomainfrom
refactor/pm-r3-package-fetcher

Conversation

@Sunrisepeak
Copy link
Copy Markdown
Member

Summary

Step three of the package-management subsystem refactor described in
.agents/docs/2026-05-08-pm-subsystem-architecture.md.
Strictly zero behavior change.

  • Same shape as PR-R1 / PR-R2: implementation moves under mcpp::pm
    in src/pm/package_fetcher.cppm, and the original mcpp.fetcher
    module becomes a thin shim that re-exports the new module and
    aliases every public type.

  • Scope deliberately narrower than the architecture doc's original
    "split into index_repo + index_store + package_fetcher" plan: the
    current fetcher.cppm is a single xlings NDJSON client, not a
    three-way mix. The intended three-way split is reserved for the
    index-config feature work (per
    2026-05-08-package-index-config.md)
    when those new abstractions actually need to exist. Inventing empty
    modules here would violate the "behavior-preserving moves" rule
    in §10 of the refactor doc.

Test plan

  • mcpp build (worktree)
  • mcpp test — 9/9 unit binaries pass
  • e2e subset: 02 / 09 / 12 / 13 / 23 / 27 all pass
  • Full CI green

Step three of the package-management subsystem refactor described in
`.agents/docs/2026-05-08-pm-subsystem-architecture.md`. Strictly zero
behavior change.

* Same shape as PR-R1 / PR-R2: the implementation moves under
  `mcpp::pm` in `src/pm/package_fetcher.cppm`, and the original
  `mcpp.fetcher` module becomes a thin shim that re-exports the new
  module and aliases every public type
  (`EventKind`, `ProgressEvent`, `LogEvent`, `DataEvent`, `ErrorEvent`,
  `ResultEvent`, `Event`, `EventHandler`, `CallError`, `CallResult`,
  `Fetcher`).

* Scope deliberately narrower than the architecture doc's original
  "split into index_repo + index_store + package_fetcher" plan: the
  current `fetcher.cppm` body is a single xlings NDJSON client, not a
  three-way mix. The intended split is for the index-config feature
  (`.agents/docs/2026-05-08-package-index-config.md`) when those
  modules actually need to exist; doing it here would invent empty
  files for shapes that don't exist yet. Filed under "narrow each PR
  to behavior-preserving moves" from the refactor doc §10.

Verification:
* `mcpp build` compiles unchanged.
* `mcpp test` — 9/9 unit binaries pass.
* e2e subset (02 / 09 / 12 / 13 / 23 / 27) all pass.
@Sunrisepeak Sunrisepeak merged commit 8b53718 into main May 8, 2026
1 check passed
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.

1 participant