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

Rotorsoft / act-root / 32607202617
100%

Build:
DEFAULT BRANCH: master
Ran 23 Aug 2026 12:16AM 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 12:11AM UTC coverage: 100.0%. Remained the same
32607202617

push

github

web-flow
ACT-1541 fix(act): make reactingTo injection ambient across reaction dispatches (#1542)

* fix(act): make reactingTo injection ambient across reaction dispatches

The scoped IAct proxy auto-injected the triggering event only for handlers
that dispatched through the injected third argument. A handler closing over
a module-level `app` — the ordinary shape when the app is a module export —
bypassed the proxy, so the commit minted a fresh correlation id and left
causation.event undefined. The reaction still ran and still committed; only
the causal record was lost, silently.

Install the triggering event in an AsyncLocalStorage around the handler and
fall back to it in action(), so every dispatch reached from inside a reaction
threads the chain regardless of which IAct reference made the call. Explicit
reactingTo still wins. Batch projection handlers are out of scope: no IAct,
many events, no single triggering event to inherit.

This makes the code match what state-management.md already documented.

Closes #1541

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

* test(act): cover ambient reactingTo on the singleton-port path

The sandbox cases build with ActOptions.scoped, which installs the ports
ALS. The reporting app runs the other configuration: reactions declared
straight on act() with no slice, ports injected via the singleton
store(adapter), so _scoped is the identity wrapper. Pin that shape too.

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

* refactor(act): drop the per-payload do rebinding made redundant by ambient context

With action() resolving reactingTo from the ambient reaction context, the
scoped proxy's per-payload `do` override computed exactly the same value
the orchestrator now derives on its own. Two mechanisms, one result.

Delete the rebinding: `scope... (continued)

4237 of 4237 branches covered (100.0%)

Branch coverage included in aggregate %.

4 of 4 new or added lines in 3 files covered. (100.0%)

9191 of 9191 relevant lines covered (100.0%)

1331.96 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32607202617.1 23 Aug 2026 12:16AM UTC 114
100.0
GitHub Action Run
Source Files on build 32607202617
  • Tree
  • List 114
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32607202617
  • 1ee180a7 on github
  • Prev Build on master (#32586650779)
  • Next Build on master (#32610427202)
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