Commit 6775736
ci(framework): assert capability packages ship a runtime entry (no dts-only / half-built) (#2432)
Capability packages (services / triggers / plugins) are loaded by the
multi-tenant runtime via a DYNAMIC import of their published entry. If a package
ships a dts-only / half-built / 0-byte dist — an interrupted build, or a package
retired in source but still referenced — the import resolves to nothing and the
capability SILENTLY fails to load (e.g. record-change automation never fires,
with no user-visible signal). The shared tsup config always emits JS, so this
can only happen by accident, and nothing in CI caught it.
Extend "Verify build outputs" (which runs right after the full `pnpm build`)
with a filesystem assertion that every buildable capability package actually
produced its declared `main` runtime entry. Self-maintaining: reads each
package's own manifest, skips dirs with no package.json (e.g. a retired
service-feed / service-ai leftover) and packages without a build script.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent b007dbd commit 6775736
1 file changed
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
240 | 266 | | |
241 | 267 | | |
242 | 268 | | |
| |||
0 commit comments