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

lsm / neokai / 25624089872 / 4
82%
dev: 82%

Build:
DEFAULT BRANCH: dev
Ran 10 May 2026 08:33AM UTC
Files 280
Run time 8s
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

10 May 2026 08:30AM UTC coverage: 23.834% (+0.04%) from 23.792%
25624089872.4

push

github

web-flow
refactor: simplify external event architecture — remove task coupling (#1833)

* feat: implement ExternalEventService and ExternalEventTaskResolver

- Add ExternalEventService implementing ExternalEventPublisher
  - publish() returns published, duplicate_terminal, retryable_duplicate, or ignored
  - Validates source/topic contracts via ExternalEventStore
  - Stores/dedupes via ExternalEventStore
  - Enriches events through ExternalEventTaskResolver
  - Publishes externalEvent.published on InternalEventBus with space-scoped payload
- Add ExternalEventTaskResolver interface + GitHubExternalEventTaskResolver
  - Resolves GitHub PR events to SpaceTasks via trusted metadata or heuristic
  - Explicit ambiguous/unknown/ignored/enriched result types
  - No direct workflow/task/gate table queries
- Add markEventAmbiguous() to ExternalEventStore for terminal ambiguous transitions
- Extend DaemonInternalEventMap with ExternalEventEvents
- Add unit tests covering new event, terminal duplicate, retryable duplicate,
  enriched routedTaskId, ambiguous/unknown task resolution, and bus semantics

* fix: address PR review feedback for ExternalEventService and task resolver

- Persist routedTaskId via ExternalEventStore.setRoutedTaskId() before
  advancing state to routed (was never written to DB).
- Retryable duplicates now re-emit the bus event so failed subscribers
  get another chance; include routedTaskId in retryable result.
- Ignored resolver results no longer mark terminal — leave event in
  published so a later re-observation with complete metadata can enrich.
- Add word-boundary regex for PR number matching (#42 no longer matches
  inside #420 or abc#42x).
- Add optional taskRepoFilter to GitHubTaskResolverConfig for repo-scoped
  narrowing in multi-repo spaces.
- Expand tests: boundary matching, repo filter, markEventAmbiguous,
  setRoutedTaskId, non-terminal ignored, bus re-emit on retryable dup.

* fix: address round-2 review feedback for ExternalEventServi... (continued)

17367 of 72868 relevant lines covered (23.83%)

12.35 hits per line

Source Files on job daemon-online-rpc-4 - 25624089872.4
  • Tree
  • List 280
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25624089872
  • b20d4b66 on github
  • Prev Job for on dev (#25617892557.14)
  • Next Job for on dev (#25632447293.21)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc