Nicos Catalog v0.3.0 release candidate
Status on 2026-08-20: public tag and GitHub Release pending on this
checkout. Local publication tests and main CI are green. The module-proxy
result, deployment, launch, and adoption are not claimed until direct evidence
exists.
Main result
Nicos Catalog v0.3.0 adds Nicos Catalog Explorer. The Go binary embeds one
read-only web application for local and synthetic use. The same application can
be exported as a deterministic public static site.
The Explorer visual system uses the clear editorial hierarchy from the internal
Atlas v4 design study. Its route validation, lazy-load recovery, selection,
keyboard behavior, and test depth use Atlas v3 as the engineering model. No
internal Atlas source or private API is part of this release.
Added
nicos-catalog initfor a safe minimal or sample starter corpus.nicos-catalog servefor a loopback-only read-only Explorer.nicos-catalog demo --uifor a temporary synthetic Explorer.nicos-catalog export explorerfor a static public projection.nicos-catalog mcp --stdiofor bounded read-only agent tools.- Overview, Catalog, Search, EntityDetail, Relationships, Graph, and Health views.
- A generated JSON Schema and TypeScript contract.
- Embedded-asset byte checks, UI coverage, accessibility checks, and bundle
budgets. - Opt-in GitHub-local collation with bounded walk, snapshot, duplicate, and
enrollment-gap reports.
Security properties
- The live server binds to loopback only and validates the request host.
- Static export starts from the closed public projection.
- The browser verifies static data digests.
- The application makes no third-party request.
- Graph, HTTP, and MCP responses have fixed limits.
- All v0.3.0 interaction is read-only.
Measured local evidence
- Initial JavaScript: 101,776 gzip bytes. Limit: 204,800 bytes.
- CSS: 4,536 gzip bytes. Limit: 51,200 bytes.
- Explorer logic: 97.1 percent statement coverage and 89.7 percent branch
coverage. - Route, interaction, and accessibility-contract tests: 33 passing tests.
- Go Explorer package floors: at least 85 percent per package.
- Scale profiles: bounded reads at 10, 500, 4,000, and 10,000 entities.
- Performance ratchet on an Apple M1 Pro: at 10,000 entities, accepted p95 was
132.06 ms for load, 1.38 ms for list, 7.38 ms for search, and 3.03 ms for an
aggregate graph. Seedocs/performance.mdfor all sizes and budgets. - Live browser proof: 41 of 41 managed steps passed at 360, 768, 1,440,
and 2,560 pixels. Run:run-20260819T015442.801-3289-001. - Static browser proof: the same 41 steps passed, including direct route
reloads. Run:run-20260819T015459.860-4354-001. - Every route reported zero failed or third-party resource requests. Static
mode uses an explicit HTML source marker and does not probe the live API. - Accessibility media proof: Chromium reported reduced motion, increased
contrast, and forced colors as active. Computed transitions were 0.001 ms,
and the active navigation item kept a visible 2 px highlight outline. - Static export: two independent exports were byte-identical. Each had six
public entities, six edges, and no private sample text. - MCP proof: initialize, tool discovery, and
catalog_searchpassed through
the compiled binary with the public projection.
These values are local build evidence. They are not public release or adoption
evidence.
Operator publication gates
The operator must complete these external actions:
- Push the reviewed commits to
github.com/nstranquist/nicos-catalog. - Confirm that public CI is green on the pushed commit.
- Create and push the signed
v0.3.0tag. - Create the GitHub Release from these notes.
- Confirm that the Go proxy resolves
v0.3.0. - Run
go install github.com/nstranquist/nicos-catalog/cmd/nicos-catalog@v0.3.0from a clean environment. - Update dependent repositories from
v0.2.0tov0.3.0.
No deployment is required for the module release. A hosted static demo needs a
separate deployment approval.