5 Commits

Author SHA1 Message Date
Alex Dunmow
71d005f1fb feat(bnp): marshal public_routes + sitemap into built manifests (ADR 0026)
pluginsdk v0.2.7. The packer validates public_routes (reserved
prefixes, traversal, duplicates), requires an HTTP handler for routes
or sitemap, and stamps both into manifest.pb; codeless builds reject
them; writeMod round-trips the new plugin.mod keys so a version bump
cannot strip live route claims.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 02:45:58 +08:00
Alex Dunmow
7cfc371a42 feat(build): stamp allowed_hosts/max_response_mb into the manifest (ADR 0023)
ninja plugin build now validates plugin.mod's allowed_hosts against the
egress host-pattern grammar (failing the build on a bad pattern) and
stamps allowed_hosts + max_response_mb into the packed manifest, the way
data_dir already crosses mod → manifest. Bumps pluginsdk to v0.2.5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 02:01:45 +08:00
Alex Dunmow
1fb8a634ab chore: pluginsdk v0.2.0 (P3 host-composed chrome)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 14:56:53 +08:00
Alex Dunmow
42789ffd0f refactor: migrate plugin SDK imports from block/core to block/pluginsdk
Rewrite import prefix git.dev.alexdunmow.com/block/core/{plugin,blocks,
templates,abi} to git.dev.alexdunmow.com/block/pluginsdk/* across the CLI's
plugin build/verify logic (internal/bnp), plugin commands (cmd/ninja/cmd),
and the wasm build fixtures (testdata/fixture, testdata/capfixture). go.mod
adds pluginsdk@v0.1.0; core is retained only for cmd/ninja/cmd/theme.go
(ParseModFull), which is left untouched as in-flight work.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:39:22 +08:00
Alex Dunmow
2f065e3ed4 feat: ninja CLI in its own repo (block/cli, WO-WZ-023)
The ninja developer CLI moves out of block/core into its own module
git.dev.alexdunmow.com/block/cli. Pins block/core@v0.18.2 for abi/v1, the
plugin.mod parser, and DESCRIBE guest builds; vendors its own orchestrator
registry client (internal/api, generated from a vendored plugin_registry.proto)
since it cannot import block/core/internal. Produces byte-identical v1
artifacts (verified: art-deco codeless SHA256-identical to the pre-move build).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 22:39:32 +08:00