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

accordproject / template-engine / 29924877602
56%

Build:
DEFAULT BRANCH: main
Ran 22 Jul 2026 01:42PM UTC
Jobs 2
Files 28
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

22 Jul 2026 01:39PM UTC coverage: 55.698% (+1.3%) from 54.447%
29924877602

push

github

web-flow
feat: enforce runtime State/Response/Event hierarchy at compile time (#166)

* feat: enforce runtime State/Response/Event hierarchy at compile time

Derive RuntimeState/RuntimeRequest/RuntimeResponse/RuntimeEvent unions from
the template's Concerto model (concrete subclasses of the runtime base types)
and use them as the bounds/positions in the injected TemplateLogic
declarations. A "state" that is a plain concept (not an asset extending
State) now binds to `never` and fails to compile (TS2344); likewise an
invalid response or emitted event fails in return position (TS2322).

Also emit generated model files under `generated/` so the logic's own
`./generated/<ns>` imports resolve in the twoslash sandbox - previously they
did not, so all model types were `any` and no type checking occurred.

compileLogic now surfaces the TS2344 hierarchy violation as a hard error
(scoped to the logic entry file) instead of silently ignoring diagnostics.

Known limitation: request is not enforceable via the input parameter
(TypeScript method parameters are bivariant); some templates still suppress
the errors with @ts-expect-error and should be updated separately.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: mttrbrts <code@rbrts.uk>

* feat: enforce request hierarchy at model level; drop unused SLC base64

Two follow-ups to the runtime hierarchy work:

1. Request enforcement (was unenforceable at compile time). The runtime
   Request hierarchy cannot be checked by the type system: `request` appears
   only as the `trigger` parameter, and TypeScript method parameters are
   bivariant, so the model-derived `never` bound accepts any type (State,
   Response and Event are caught because they sit in constraint / return
   positions). compileLogic now asserts the invariant against the model: when
   the logic defines a `trigger`, the model must declare a concrete subclass of
   org.accordproject.runtime@0.2.0.Request.

   Note the base Request/Respons... (continued)

430 of 895 branches covered (48.04%)

Branch coverage included in aggregate %.

49 of 51 new or added lines in 3 files covered. (96.08%)

25 existing lines in 2 files now uncovered.

787 of 1290 relevant lines covered (61.01%)

2654.36 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
77.39
2.17% src/TemplateArchiveProcessor.ts

Coverage Regressions

Lines Coverage ∆ File
20
77.39
2.17% src/TemplateArchiveProcessor.ts
5
86.79
3.87% src/utils.ts
Jobs
ID Job ID Ran Files Coverage
1 windows-latest - 29924877602.1 22 Jul 2026 01:42PM UTC 55
57.58
GitHub Action Run
2 ubuntu-latest - 29924877602.2 22 Jul 2026 01:42PM UTC 55
57.58
GitHub Action Run
Source Files on build 29924877602
  • Tree
  • List 28
  • Changed 23
  • Source Changed 4
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29924877602
  • f5fbfc20 on github
  • Prev Build on main (#29819535373)
  • Delete
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