Skip to content

v0.7.0

Choose a tag to compare

@Lockyc Lockyc released this 19 Jul 03:10
· 41 commits to main since this release

First-class graph queries, and a breaking graph.json shape change.

⚠️ Breaking: graph.json components are now flat

Each component's declared mycelium.toml fields serialize at the component top
level — .components[].summary, .components[].provides[], .components[].stack[] —
instead of under a .sidecar wrapper. This makes components consistent with overlay
nodes (already flat).

Migration: any consumer that queried .components[].sidecar.provides[] must drop
the .sidecar hop → .components[].provides[] (same for summary, stack).

First-class queries — no hand-written jq

Mycelium now provides the common graph queries instead of leaving agents to
construct them:

  • myco query <name> [args] — capability, component, components (filtered by
    kind/stack), used-by, uses, search — over a local graph.json (--dir) or
    a live hub (--url); readable text, or --json to pipe. Bare myco query prints a
    self-documenting index.
  • Hub /q/* routes — the same queries over HTTP: GET /q (index),
    /q/capability/<name>, /q/components?kind=&stack=, /q/used-by/<name>,
    /q/search?q=. Already-filtered JSON, explicit 404 on an unknown query name — never
    the silent-empty result that hand-written jq gives.

Query semantics live once in internal/query; the CLI and the HTTP routes are thin
adapters over it. Docs (MAP.md, schema/graph.md §Querying, README) now lead with the
query interface and demote jq to a labelled fallback.

Full Changelog: v0.6.2...v0.7.0