• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Rotorsoft / act-root / 32648709197
100%

Build:
DEFAULT BRANCH: master
Ran 23 Aug 2026 03:34PM UTC
Jobs 1
Files 114
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Aug 2026 03:29PM UTC coverage: 100.0%. Remained the same
32648709197

push

github

web-flow
refactor(act): give ambient context its own module and clear it out of internal (#1549)

* refactor(act): give ambient context its own module and clear it out of internal

internal/ modules are stateless implementations — event-sourcing.ts says so
in its own header ("no module-level mutable state"). #1541 broke that by
adding internal/reacting.ts, an AsyncLocalStorage, and having action() read
it. It was the only module-level state and the only node:async_hooks import
in the whole folder.

Ambient context now lives in src/scoped.ts: both the ports bag (previously
declared in ports.ts) and the reaction context. ports.ts goes back to being
about adapters, internal/ back to being stateless.

Public surface is unchanged. `scoped` and `Scoped` are exported through
index.ts's star-export of ports.ts and are in the stability snapshot, so
ports.ts re-exports both by name from their new home. `reacting` stays
unreachable from the entry point — only its source text appears in the
snapshot, via the transitive-import walk.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5eB6CMELZJfayCYpQta8N

* refactor(act): move the disposer registry out of internal too

internal/disposers.ts held `const entries: Entry[] = []`, a process-wide
mutable registry — the last module-level state in the folder. It is lifecycle
state, not an implementation detail, and its only consumer is the `dispose()`
port.

Moved to src/disposers.ts alongside scoped.ts. internal/ now holds no
module-level state and no node:async_hooks at all.

Not public surface: internal/index.ts is not star-exported (index.ts takes
only DeferSignal from it), so the snapshot hits for register_disposer are
captured text from the transitive-import walk, not API.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5eB6CMELZJfayCYpQta8N

* refactor(act): invert the ambient dependency s... (continued)

4237 of 4237 branches covered (100.0%)

Branch coverage included in aggregate %.

16 of 16 new or added lines in 5 files covered. (100.0%)

9195 of 9195 relevant lines covered (100.0%)

1336.54 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32648709197.1 23 Aug 2026 03:34PM UTC 114
100.0
GitHub Action Run
Source Files on build 32648709197
  • Tree
  • List 114
  • Changed 7
  • Source Changed 7
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32648709197
  • aeff0d0d on github
  • Prev Build on master (#32645275341)
  • Next Build on master (#32851693390)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc