Skip to content

Nicos Catalog v0.3.0

Latest

Choose a tag to compare

@nstranquist nstranquist released this 20 Aug 19:53
· 1 commit to main since this release

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 init for a safe minimal or sample starter corpus.
  • nicos-catalog serve for a loopback-only read-only Explorer.
  • nicos-catalog demo --ui for a temporary synthetic Explorer.
  • nicos-catalog export explorer for a static public projection.
  • nicos-catalog mcp --stdio for 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. See docs/performance.md for 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_search passed 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:

  1. Push the reviewed commits to github.com/nstranquist/nicos-catalog.
  2. Confirm that public CI is green on the pushed commit.
  3. Create and push the signed v0.3.0 tag.
  4. Create the GitHub Release from these notes.
  5. Confirm that the Go proxy resolves v0.3.0.
  6. Run go install github.com/nstranquist/nicos-catalog/cmd/nicos-catalog@v0.3.0 from a clean environment.
  7. Update dependent repositories from v0.2.0 to v0.3.0.

No deployment is required for the module release. A hosted static demo needs a
separate deployment approval.