Skip to content

[feat] wire the pure starpkg domain modules into the default set (STAR-54)#17

Merged
vt128 merged 1 commit into
masterfrom
feat/wire-pure-domain-modules
Jun 22, 2026
Merged

[feat] wire the pure starpkg domain modules into the default set (STAR-54)#17
vt128 merged 1 commit into
masterfrom
feat/wire-pure-domain-modules

Conversation

@vt128

@vt128 vt128 commented Jun 22, 2026

Copy link
Copy Markdown
Member

What

Wire the seven published pure starpkg modules β€” cache, emoji, liquid, qrcode, toml, totp, yaml (no network, no filesystem) β€” into starcli's default module set. Before this, load("emoji", …), load("yaml", …) and the other five failed under starcli with unknown module, even though the modules were released β€” a gap surfaced in review (the doc/coverage audit of the ecosystem surface).

Why

starcli only wired 9 cli modules (args/sys/gum/email/llm/markdown/cmd/sqlite/web) + the 21 starlet builtins. The pure starpkg modules were left out, so the turnkey CLI didn't expose the ecosystem's full pure surface. These seven carry no host effects, so wiring them by default is safe and convenient.

Changes

  • cli/mods.go β€” import + add to cliMods + loadCLIModuleByName cases (the standard NewModule().LoadModule() shape).
  • cli/capability.go β€” classify all seven as CapPure, so they load even under the strictest --caps safe gate.
  • tests β€” extend TestGetDefaultModules; TestLoadCLIModuleByName auto-covers the new switch cases; add TestAllWiredModulesClassified (no wired module left unclassified) and TestPureDomainModulesAreSafe (emoji runs end-to-end under --caps safe).
  • go.mod/go.sum β€” add the seven requires (go mod tidy).
  • README.md β€” refresh the -m default module list; note the new capabilities.

Verification

  • Full suite -race -count=1 green.
  • Docker golang:1.25 (the go floor) green.
  • gofmt/go vet clean.

Tracks STAR-54 (under STAR-53 Β· starcli v0.2 攢口). Does not touch cmd (its execution-disabled gap is tracked separately as STAR-55).

…R-54)

Wire cache, emoji, liquid, qrcode, toml, totp and yaml β€” the seven published
pure starpkg modules (no network, no filesystem) β€” so the turnkey CLI exposes
the ecosystem's full pure surface out of the box. Previously load("emoji", ...)
/ load("yaml", ...) and the other five failed under starcli even though the
modules were released.

- mods.go: import + add to cliMods + loadCLIModuleByName cases (the standard
  NewModule().LoadModule() shape).
- capability.go: classify all seven as CapPure, so they load even under the
  strictest --caps safe gate (no net/fs reach).
- tests: extend TestGetDefaultModules; TestLoadCLIModuleByName auto-covers the
  new switch cases; add TestAllWiredModulesClassified (no wired module is left
  unclassified) and TestPureDomainModulesAreSafe (emoji runs end-to-end under
  --caps safe).
- go.mod/go.sum: add the seven requires (go mod tidy).
- README: refresh the -m default module list; note the new capabilities.

Full suite -race green; Docker golang:1.25 (the go floor) green; gofmt/vet clean.
@vt128 vt128 merged commit f97d68f into master Jun 22, 2026
6 checks passed
@vt128 vt128 deleted the feat/wire-pure-domain-modules branch June 22, 2026 04:53
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