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

Rotorsoft / act-root
100%

Build:
DEFAULT BRANCH: master
Repo Added 19 Feb 2025 09:44PM UTC
Files 117
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

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • ACT-101
  • ACT-102
  • ACT-103
  • act-1009-close-probe-pagination
  • act-1010-bound-autoclose-cycle
  • act-1011-windowed-close
  • act-1024-with-snaps-seek
  • act-1029-behavior-contract-tests
  • act-1030-differential-tck
  • act-1057-property-differential-tck
  • act-1090-defer-outcome
  • act-1091-public-defer
  • act-1103-slice1-lane-types
  • act-1110-builder-base
  • act-1113-doc-drift
  • act-1114-sqlite-filter-grammar
  • act-1115-snap-signal
  • act-1119-pg-pool-defaults
  • act-1120-notify-conformance
  • act-1121-act-constructor
  • act-1124-defer-durability
  • act-1124-store-restore-port-method
  • act-1125-restore-compaction-options
  • act-1125-state-lists
  • act-1128-restore-ui-dry-run
  • act-1132-pg-cursor
  • act-1133-iterate-pagination
  • act-1133-online-close-foundation
  • act-1134-close-when-factory
  • act-1139-naming-audit
  • act-1140-seed-sync
  • act-1141-otel
  • act-1168-full-state
  • act-1175-close-cadence-days
  • act-1178-commit-visibility
  • act-1179-intra-event-ack
  • act-1182-claim-source-contract
  • act-1185-typed-iact
  • act-1188-core-safety
  • act-1189-pg-notify-resilience
  • act-1193-receiver-idempotency
  • act-1196-sse-buffer-slot
  • act-1197-adapter-parity
  • act-1200-tck-and-fixtures
  • act-1201-pg-claim-lock-scope
  • act-1204-core-orchestration
  • act-1220-claim-source-regex
  • act-1220-lane-defer-durability
  • act-1222-close-archive-double-fire
  • act-1223-priority-starvation
  • act-1225-http-hardening
  • act-1231-listen-reconnect-crash
  • act-1232-leaf-quickwins
  • act-1233-dst-and-version
  • act-1238-validate-folded-state
  • act-1257-1258-inmemory-divergence
  • act-1261-1263-adapter-conformance
  • act-1262-backoff-persist
  • act-1267-time-travel-before-floor
  • act-1268-idempotency-lru-order
  • act-1269-backoff-config-validation
  • act-1270-inmemory-backward-snap-floor
  • act-1274-consolidate-snap-floor
  • act-1277-query-pii-gate
  • act-1278-advance-and-defer
  • act-1278-partial-backoff-window
  • act-1279-redis-broker-listener
  • act-1280-trpc-status-parity
  • act-1286-trpc-actor-401
  • act-1287-openapi-idempotency-required
  • act-1288-defertimer-rearm
  • act-1293-receiver-finalize
  • act-1294-query-stats-pii
  • act-1295-trpc-validation-status
  • act-1296-partial-block
  • act-1312-sse-overlay
  • act-1325-lane-guard
  • act-1328-1330-easy-fixes
  • act-1329-settle-breaker
  • act-1335-idempotency-eviction-gc
  • act-1345-warm-cache-snapshot
  • act-1346-sse-genesis-event
  • act-1347-sqlite-ack-retry
  • act-1356-autoclose-trailing-snapshot
  • act-1357-qstats-pagination-comparator
  • act-1360-reset-defer-dedup
  • act-1363-dynamic-priority-upgrade
  • act-1364-receiver-4xx-release
  • act-1365-sqlite-pii-date-reviver
  • act-1369-fold-cache-per-act
  • act-1370-pii-date-reviver
  • act-1371-paginate-stream-walks
  • act-1373-listener-containment
  • act-1374-audit-domain-head
  • act-1375-inmemory-stream-cursor
  • act-1382-sqlite-block-returning
  • act-1383-settled-payload
  • act-1387-init-latch
  • act-1388-onclose-breaker
  • act-1389-interrupted-close
  • act-1391-strip-tokenizer
  • act-1392-merged-state
  • act-1395-v1-literal
  • act-1396-cli-display
  • act-1397-restart-pii-guard
  • act-1398-close-subscription
  • act-1399-csv-date-reviver
  • act-1405-snapshot-pii
  • act-1417-sensitive-marker
  • act-1418-ack-diff
  • act-1419-overlay-exhaustive
  • act-1420-stream-text
  • act-1421-seed-lock
  • act-1422-pg-column-edges
  • act-1423-broadcast-fanout
  • act-1423-resync-frame
  • act-1424-audit-sensitive
  • act-1436-settled-containment
  • act-1437-emit-containment
  • act-1438-cache-blip
  • act-1439-1440-projection-dupes
  • act-1441-dispose-registry
  • act-1442-graceful-shutdown
  • act-1443-sqlite-default-url
  • act-1445-sqlite-priority-merge
  • act-1446-fresh-claim-contract
  • act-1448-claim-scale
  • act-1465-1466-fold-contiguity
  • act-1467-1469-target-guard
  • act-1468-settle-await
  • act-1471-wire-safe-deletes
  • act-1472-presence-wire
  • act-1473-overlay-survives-publish
  • act-1474-sse-guards
  • act-1484-correlated-table
  • act-1485-correlated-work-set
  • act-1487-correlate-universal-producer
  • act-1488-delete-legacy-probe
  • act-1510-arm-correlate
  • act-1510-fairness-reserve
  • act-1520-windowed-close-cap
  • act-1521-audit-pending-work
  • act-1527-retire-existing-methods
  • act-1532-event-window-cache
  • act-1541-ambient-reacting-to
  • act-1543-explicit-expected-version
  • act-1545-lane-filter
  • act-1556-schema-dates
  • act-1562-detached-guard
  • act-1563-dynamic-target-guard
  • act-1564-dynamic-lane-guards
  • act-1577-sqlite-contention
  • act-1579-log-severity
  • act-1581-one-store-one-app
  • act-1582-static-floor-eviction
  • act-1583-lane-normalization
  • act-1584-report-once-keying
  • act-1592-store-failure-retry-budget
  • act-1594-read-schema
  • act-1595-created-precision
  • act-1596-notify-shutdown
  • act-1597-no-mixing
  • act-723-app-audit
  • act-739-with-retry
  • act-743-extract-idempotency-key
  • act-745-bootstrap-act-ops
  • act-746-idempotency-store-port
  • act-747-compute-min-safe-ttl
  • act-785-migration-overlay
  • act-803-listen-drain-flags
  • act-829-delta-event-shape
  • act-842-shared-utilities
  • act-843-acthttp-trpc
  • act-844-acthttp-hono
  • act-845-acthttp-openapi
  • act-846-acthttp-sse
  • act-847-server-migration
  • act-855-sensitive-foundation
  • act-860-encryptor-port
  • act-861-cache-pii-contract
  • act-868-pii-store-contract
  • act-869-inmemory-pii-isolation
  • act-870-pg-pii-column
  • act-871-sqlite-pii-column
  • act-888-internal-naming-sweep
  • act-921-pii-adapter-encryption
  • act-979-duplicate-reaction-guard
  • act-980-tck-lease-semantics
  • act-981-sse-dedup
  • act-982-property-durable
  • act-984-pg-claim-errors
  • act-984-store-error-circuit-breaker
  • act-986-resolver-memo-regex
  • act-987-notify
  • act-docs-warnings
  • act-fix-correlate-arm
  • act-quality-security-sweep
  • act-remove-act-sse
  • act-scoped-module
  • act-sse-browser-safe
  • better-drain
  • chore-act-patch-null-propagation-doc
  • chore-docs-jsx
  • chore-docs-tck-paths
  • chore-lint-cleanup
  • chore/act-tck-ci-filter
  • chore/act-tck-initial-release
  • chore/biome-migration
  • chore/biome-tighten-rules
  • chore/jsdoc-consistency
  • chore/typedoc-warnings
  • dependabot/npm_and_yarn/npm_and_yarn-9dde766235
  • dependabot/npm_and_yarn/npm_and_yarn-c4bc6a0a9e
  • docs/act-301-stability-charter
  • docs/architecture-pages
  • docs/comprehensive-update
  • feat/act-302-tck
  • feat/act-401-cross-slice-event-contracts
  • feat/act-402-contracts-cli
  • feat/act-403-auto-deprecation
  • feat/act-404-correlator
  • feat/act-501-instance-scoped-ports
  • feat/act-503-test-helper
  • feat/act-601-backoff
  • feat/act-602-act-http
  • feat/act-604-non-retryable-error
  • feat/act-639-query-stats
  • feat/act-browser-safe-types-export
  • feat/act-diagram-css-export
  • feat/act-event-sourcing-trace-decorator
  • feat/act-patch
  • feat/act-patch-delta
  • feat/act-pino-release
  • feat/act-sqlite
  • feat/auto-inject-reacting-to
  • feat/batched-projection-replay
  • feat/cache-port
  • feat/close-the-books
  • feat/domain-patches
  • feat/event-upcasting
  • feat/generic-actor-descriptive-generics
  • feat/idempotency-correlation
  • feat/projection-rebuild
  • feat/settle
  • feat/store-get-streams
  • feat/time-travel-queries
  • feature/act-builder
  • feature/act-nvim
  • fix-debug-wave-findings
  • fix/act-patch-perf
  • fix/act-reset-needs-drain
  • fix/act-sqlite-version-reset
  • fix/adapter-peer-deps
  • fix/builder-type-explosion
  • fix/cache-populate-on-load
  • fix/docs-mdx-tenant-of
  • fix/security-issues
  • fix/stream-exact-match
  • fix/workspace-dep-sync
  • optimize/skip-drain-non-reactive-events
  • perf-test
  • perf/batch-event-fetch
  • perf/ci-regression-guard
  • perf/correlation-checkpoint
  • perf/drain-map-lookup
  • perf/poll-lease-fusion
  • perf/watermark-aware-claim
  • refactor/api-audit
  • refactor/decompose-act
  • refactor/internal-cleanup
  • refactor/logger-port
  • refactor/root-cleanup
  • refactor/root-optimizations
  • refactor/root-polish
  • refactor/root-refactors
  • remove-void-resolver
  • renovate/dev-dependencies
  • renovate/libsql-client-0.17.x
  • renovate/major-dev-dependencies
  • renovate/node-22.17.x
  • renovate/node-22.x
  • renovate/npm-anthropic-ai-sdk-vulnerability
  • renovate/patch-dev-dependencies
  • renovate/pg-8.17.x
  • renovate/pg-8.x
  • renovate/pino-10.1.x
  • renovate/pino-10.2.x
  • renovate/pino-10.3.x
  • renovate/pino-10.x
  • renovate/pino-9.9.x
  • renovate/pino-9.x
  • renovate/pino-pretty-13.1.x
  • renovate/rotorsoft-act-0.x
  • renovate/zod-4.0.x
  • renovate/zod-4.1.x
  • renovate/zod-4.3.x
  • renovate/zod-4.4.x
  • renovate/zod-4.x
  • ro/feature-371-replace-custom-semrel-actions-with-stand
  • ro/feature-376-allow-partial-state-definitions-with-rea
  • ro/feature-378-support-partial-zod-schemas-for-partial-
  • ro/feature-382-add-slice-builder-to-compose-partial-sta
  • ro/feature-386-add-projection-builder-and-extract-share
  • ro/feature-388-update-all-documentation-with-latest-bui
  • ro/feature-390-add-record-shorthand-syntax-to-state-bui
  • ro/feature-409-support-adding-projections-to-slices-for
  • ro/feature-411-fix-strict-typings-in-builders-slice-wit
  • ro/feature-413-fix-strict-type-accumulation-in-all-buil
  • test/property-based-suite
  • test/stress-pg-suite

30 Aug 2026 10:37PM UTC coverage: 100.0%. Remained the same
33339638071

push

github

web-flow
fix(act-pg): exclude the boundary event from created_after (#1603)

Postgres stores `created` at microsecond resolution but hands back a JS
Date, which carries milliseconds. A row stamped ...976999 reads back as
...976, so `created > '...976'` compared the row against its own
timestamp and returned it. InMemory and SQLite both exclude it, so
Postgres was the odd one out, and the documented "scan since last time"
pattern re-delivered the boundary event there and nowhere else. With a
limit it returned the wrong event rather than one extra.

Millisecond is the resolution the contract is expressed in, since that is
all a Date carries, so strictly-after means "at least the next
millisecond". Advancing the bound rather than truncating the column fixes
rows already written at microsecond precision, needs no table rewrite on
an events table, and keeps the comparison a plain range scan on
(created, id).

The store TCK gains the case that would have caught it: both bounds must
exclude the event they are pinned to. Its existing window case is built
as `ts ± 60_000`, so no bound ever landed on an event's own timestamp.
Verified the new case fails on Postgres without this fix and passes on
InMemory and SQLite unchanged.

Closes #1595


Claude-Session: https://claude.ai/code/session_014Vfpx1bDy3t57oHBynvNPF

Co-authored-by: rotorsoft <rotorsoft@outlook.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

4332 of 4332 branches covered (100.0%)

Branch coverage included in aggregate %.

10 of 10 new or added lines in 2 files covered. (100.0%)

9302 of 9302 relevant lines covered (100.0%)

1178.88 hits per line

Relevant lines Covered
Build:
Build:
9302 RELEVANT LINES 9302 COVERED LINES
1178.88 HITS PER LINE
Source Files on master
  • Tree
  • List 117
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33339638071 master fix(act-pg): exclude the boundary event from created_after (#1603) Postgres stores `created` at microsecond resolution but hands back a JS Date, which carries milliseconds. A row stamped ...976999 reads back as ...976, so `created > '...976'` com... push 30 Aug 2026 10:39PM UTC web-flow github
100.0
33339147622 master fix(act): revive dates on read instead of re-validating the payload (#1601) * fix(act): revive dates on read instead of re-validating the payload Reading an event ran a throwing z.parse() over its data whenever the schema mentioned a date. All t... push 30 Aug 2026 10:29PM UTC web-flow github
100.0
33276871839 master fix(act): don't quarantine a stream while the database is failing (ACT-1592) (#1593) * fix(act): refund claims a store failure spent, not the handler's retry budget `claim` persists `retry = retry + 1` before any handler runs, and only a confirm... push 29 Aug 2026 09:48PM UTC web-flow github
100.0
33274414677 master fix(act): keep static reaction targets out of the subscribed LRU (ACT-1582) (#1588) * fix(act): keep static reaction targets out of the subscribed LRU A static target is recorded at a +Infinity priority floor so the dynamic resolver path can nev... push 29 Aug 2026 08:51PM UTC web-flow github
100.0
33273496848 master docs(act): one store belongs to one application (#1590) Two Acts built from different registries over one store silently lose reactions: correlation keeps one shared read cursor, and a correlator key with no row of its own is seeded from it, so t... push 29 Aug 2026 08:29PM UTC web-flow github
100.0
33273395274 master fix(act): key the dynamic-lane reports on the declaration, not the target (#1587) `report_once` exists so one misdeclaration costs one log line, but two of its three callers built the key from the resolved target. The documented per-aggregate sha... push 29 Aug 2026 08:26PM UTC web-flow github
100.0
33106512168 master fix(act): normalize the lane name on both sides of the agreement guard (#1586) Two reactions to the same target must declare the same lane, and the build-time guard stored the raw declaration to compare later ones against. An omitted lane and an ... push 27 Aug 2026 07:05PM UTC web-flow github
100.0
33077769791 master fix(act): warn instead of error on self-healing failures (#1580) Error-level logs are routinely wired to paging, and six sites reported events that lose nothing and recover on their own — so healthy operation paged someone. Four are fire-and-for... push 27 Aug 2026 01:40PM UTC web-flow github
100.0
33075268786 master fix(act): explain a failed correlation-lease handback instead of logging it raw (#1578) * fix(act): explain a failed correlation-lease handback instead of logging it raw The handback is best-effort — the lease carries its own expiry, so failing ... push 27 Aug 2026 01:11PM UTC web-flow github
100.0
32896299477 master fix(act): apply the lane guards to dynamic resolutions (#1575) * fix(act): apply the lane guards to dynamic resolutions A build-time guard only ever sees a static `.to({lane})` — a `.to(fn)` lane is a function until an event arrives — so both la... push 25 Aug 2026 08:39PM UTC web-flow github
100.0
See All Builds (1159)
  • Repo on GitHub
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