Changelog
What’s changed across the Sightmap spec and SDKs. Per-package canonical changelogs live alongside the source — links below each entry. For day-to-day API churn, watch GitHub releases on the SDK repo.
v0.12 — $ref component references
Section titled “v0.12 — $ref component references”May 21, 2026
Component definitions can now be reused by reference. Any entry in a components: array — at file root, within a view, or under children: — may be a single-key { $ref: ComponentName } object that expands inline to a deep copy of the named component before matching. Names resolve against a project-wide registry built from the root-level components: of every loaded file. Definition lives in one place; a view’s components: becomes a compact, machine-readable manifest of which globals it expects to see — a signal drift-detection tooling can act on.
@sightmap/sightmap0.12.0 — Schema accepts{ $ref: Name }entries in anycomponents:array. Two-pass loader: build the registry from root-levelcomponents:across all files, then expand$refentries (deep copy viastructuredClone) with cycle detection.checkadds two error-severity diagnostics:ref-unresolved(unknown name) andref-circular(self-referential chain). Dedup at match time: when a view attests a name by$refand the same name is also a file-root global, the view-scoped expansion subsumes the global — the component appears once in the resolved output. The expanded clone carries the registry definition’ssourceanddependenciesverbatim; a$refis an attestation of where a component appears, not a redefinition. See Component references and SEP-0002.- All packages 0.12.0 — Monorepo lockstep.
@sightmap/mcp,@sightmap/react,@sightmap/playwright,@sightmap/agent-browserre-vendor the schema and pick up$refexpansion via the shared kernel; no per-package surface changes beyond that.
Adopter pin. Adding $ref entries to a .sightmap/ corpus requires @sightmap/sightmap@>=0.12.0. Hosts (plugin consumers) MUST require the same. Older SDKs reject documents with $ref as schema-invalid (per the additionalProperties: false policy in spec/VERSIONING.md).
Cross-SEP interaction. Expansion uses structuredClone, so SEP-0001’s dependencies[] field is preserved transparently through $ref expansion. Both SEPs compose without special-casing.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.11 — dependencies[] field on views and components
Section titled “v0.11 — dependencies[] field on views and components”May 21, 2026
Views and components gain an optional dependencies: string[] field — minimatch globs naming supplementary files (hooks, stores, style modules, helper utilities) whose changes should trigger re-curation of the entry. source remains the canonical primary binding; dependencies[] adds the secondary file-set without forcing every supplementary file into its own component entry. Purely curation-time — runtime adapters read DOM/fiber state, not source files.
@sightmap/sightmap0.11.0 — Re-vendors the schema withdependencieson view and component subschemas.explain --by path <file>now consultsdependencies[]globs in addition to exactsourcematches; hits gain amatchedByprovenance field in--jsonoutput ("source"vs"dependencies").match --jsonadds aviews[]array (additive alongside the existing singularview);ResolvedViewandResolvedComponentsurface the optionaldependenciesfield.checkadds three diagnostics —dependencies.self-redundant(warning),dependencies.overlaps-entry(warning), and a narrowedunknown-source(warning) for zero-match globs.fmtcanonicalizesdependencies[]by lexicographic sort + deduplication and positions the key aftersource. See Dependencies and SEP-0001.- All packages 0.11.0 — Monorepo lockstep across
@sightmap/mcp,@sightmap/react,@sightmap/playwright,@sightmap/agent-browser. Schema re-vendor; no per-package surface changes.
Adopter pin. Adding dependencies to a .sightmap/ corpus requires @sightmap/sightmap@>=0.11.0. Hosts MUST require the same. Older SDKs reject documents with dependencies as schema-invalid.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.9 — Browser-driven snapshot capture
Section titled “v0.9 — Browser-driven snapshot capture”May 13, 2026
sightmap_runtime_snapshot gains two new capture modes alongside the existing endpoint mode. The new browser mode drives a live browser through the @playwright/mcp passthrough — pre-navigate addInitScript installs the bippy hook before React’s first commit, so the agent can capture snapshots from any React app, including non-Vite projects, apps without @sightmap/react, and static first-paint apps. The new literal mode accepts pre-captured snapshots from any source (Subtext’s live-eval-script, devtools paste, CI capture).
@sightmap/mcp0.9.0 —sightmap_runtime_snapshotaccepts threesource.kinddiscriminants:{ kind: "endpoint", url }— HTTP GET against the Vite plugin endpoint (existing).{ kind: "browser", url, routes?, inject? }— drives@playwright/mcp(requires@playwright/mcp >= 0.0.75). The bippy IIFE + bootstrap pre-navigate-inject viaPLAYWRIGHT_MCP_INIT_SCRIPT; post-navigatebrowser_evaluateremains as a fallback.{ kind: "literal", snapshot }— accepts and validates a pre-captured snapshot from any source.
- All packages 0.9.0 — Test/docs follow-up to the v0.8 pivot.
@sightmap/mcpadds server-levelcallTool()integration coverage for the 7 pivot-era curation tools.@sightmap/reactclosesSightmapProviderand Vite-plugin coverage gaps.@sightmap/sightmapREADME scrubbed of the removed--no-codegenflag and codegen-in-init paragraph. Six pre-pivot specs/plans get aSUPERSEDEDbanner pointing at the 2026-05-13 pivot doc. No runtime behavior changes outside@sightmap/mcp.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.8 — Codegen retirement, runtime introspection, agent-led curation
Section titled “v0.8 — Codegen retirement, runtime introspection, agent-led curation”May 13, 2026
The architectural pivot. sightmap-react gen and the static AST adapters retire. .sightmap/ becomes the curated authority — agent-authored against a live runtime, not derived from source. The bridge is <SightmapProvider>’s bippy-backed fiber-tree, exposed via the Vite plugin and consumed by MCP. The curation surface widens to match: full view CRUD, plus a proposal staging family that lets agents batch observations during exploration and commit them atomically. There is no gen --check replacement, by design — static drift detection would require re-introducing the adapters we just removed.
@sightmap/react0.8.0 — Runtime introspection lands; static codegen retires.<SightmapProvider>installs a bippy-backed hook at module init, walks the live React fiber tree, and exposeswindow.__sightmap__.snapshot()(lowercase, used by the runtime snapshot endpoint) alongsidewindow.__SIGHTMAP__(uppercase, the agent introspection surface —getCurrentView,match,walkTree,inspectAt,findByDataSightmap). New Vite plugin endpoint/__sightmap__/snapshot.jsoncaches POSTed snapshots and serves them on GET. NewautoInjectoption onsightmap()prepends the runtime import to the app entry. Selector ranker:data-sightmap>data-testid> ARIA > semantic > id. Portal-aware fiber walker attributes host elements without bleeding through React portals. Removed:rr7DeclarativeAdapter,rr7FrameworkAdapter, thesightmap-reactCLI (gen,validate), the orchestrator, smart-merge, and TODO scaffolding. See @sightmap/react.@sightmap/sightmap0.8.0 —sightmap initno longer runs codegen. The codegen invocation inrunFreshFrameworkSetupis removed and the--no-codegenflag retires (no longer applies). The SightmapProvider codemod stays — the provider IS the runtime hook.init --manualnow writes pre/post lint hooks into the project’s.claude/settings.jsonso agents get immediate feedback (sightmap check --jsonbefore view-YAML writes,sightmap audit --jsonafter). Outro message redirects users topnpm devand/sightmap:bootstrapfor population. See @sightmap/cli.@sightmap/mcp0.8.0 — Curation surface widens:sightmap_update_viewaccepts structural patches (name,route,components) in addition to semantic ones (backward-compatible). Newsightmap_add_viewandsightmap_delete_viewcomplete view CRUD. Newsightmap_runtime_snapshotfetches the live fiber-tree from the React Vite plugin endpoint. New proposal staging family:sightmap_propose_view,sightmap_propose_component,sightmap_review_proposals,sightmap_commit_proposals— lets agents annotate observations during exploration and batch them into atomic YAML writes. The codegen-owned partition framing (“Component/route/selector edits are NOT supported here”) is removed from tool descriptions: agents own the full corpus; the linter + hooks keep things on rails. See @sightmap/mcp.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.7.1 — Security hardening
Section titled “v0.7.1 — Security hardening”May 13, 2026
Eleven Dependabot alerts cleared. Tar (path traversal, symlink poisoning, APFS race) and Vite path-traversal advisories resolved via dependency bumps. No published-surface change.
@sightmap/sightmap0.7.1 —pacote^18.0.6 → ^21.1.0, pullingtar6.2.1 → 7.5.15 transitively. Pacote API surface (pacote.tarball.stream,pacote.manifest) unchanged across the 18→21 majors; affects thesightmap initplugin-tarball install path only. Workspace devDeps:vite^5.4.0 → ^7.0.0 (vite 5.x has no back-ported fix),vitest^2.1.9 → ^3.0.0 (required because vitest 2.x’s vite-node uses a vite-5-incompatible SSR transform).
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.7 — @sightmap/agent-browser + matcher specificity
Section titled “v0.7 — @sightmap/agent-browser + matcher specificity”May 13, 2026
A sightmap-aware wrapper for Vercel’s agent-browser CLI joins the playwright wrapper as a no-MCP path for shell-invocation agents. Route matching aligns with the lint rules: most-specific match wins, with declaration order as a tiebreak (was first-match-wins).
@sightmap/agent-browser0.7.0 — New package. CLI wrapper aroundagent-browserwith sightmap-awaresnapshot,match,act,networkcommands plus passthrough. JSON-first parsing ofagent-browser --jsonenvelopes — cleaner than the text-framing parser the playwright wrapper uses. Works above any provider (Browserless, Browserbase, Kernel, AgentCore, BrowserUse) via-p <provider>flowing through passthrough at zero wrapper overhead.@sightmap/pluginseparately gains aSessionStarthook that surfacessightmap-agent-browser(andsightmap-playwright) when on PATH. See @sightmap/agent-browser.@sightmap/sightmap0.7.0 — Matcher switches from first-match-wins to most-specific-match-wins.resolveByUrlnow scores every matching view via the new exportedrouteSpecificityhelper (literal=3,:param=2,*=1,**/empty=0) and keeps the highest scorer; ties fall back to declaration order. The lint rule (route-shadowing) already assumed specificity semantics — the two halves of the package previously disagreed silently. Breaking for corpora where a wildcard view sorted alphabetically before a more specific static route — those calls (match("/install")etc.) previously returned the wildcard view and its memory/intent; they now return the specific view, as agents expect.@sightmap/mcp0.7.0,@sightmap/playwright0.7.0,@sightmap/react0.7.0 — Monorepo lockstep.sightmap_matchandsightmap_checktool outputs change shape to reflect the new resolution; no source changes in the MCP package itself.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.6 — Engine extraction + @sightmap/playwright
Section titled “v0.6 — Engine extraction + @sightmap/playwright”May 13, 2026
The enrichment kernel — snapshot enrichment, sightmap-aware act resolution, network-request annotation, in-page eval builder — moves from @sightmap/mcp into @sightmap/sightmap as a reusable engine. A new sibling package, @sightmap/playwright, wraps @playwright/cli with the same enriched commands as MCP, no protocol overhead.
@sightmap/sightmap0.6.0 — New exports:enrichSnapshot,resolveSightmapAct,annotateNetworkRequests,buildInPageEvalFunction, plus types (EnrichedSnapshot,InPageSightmapMatch,BoundingRect,SightmapSnapshotComponent,ResolveSightmapActInput/Result,ParsedNetworkRequest,AnnotatedNetworkRequest). Same semantics as the prior MCP internals; now reusable for tool builders integrating sightmap into IDEs, CI checks, or custom workflows.@sightmap/playwright0.6.0 — New package. CLI wrapper around@playwright/cliwith sightmap-awaresnapshot,match,act,networkcommands plus passthrough. Same enrichment kernel as@sightmap/mcp. The no-MCP path for browser-driven introspection. See @sightmap/playwright.@sightmap/mcp0.6.0 — Internal refactor to consume the extracted engine. Public CLI and tool surface unchanged.--curate-onlybecomes the documented path for Subtext-style consumers driving their own browser.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.5 — Init UX polish + opt-in provider codemod
Section titled “v0.5 — Init UX polish + opt-in provider codemod”May 12, 2026
The sightmap init provider-wrap step gains a three-way prompt — wrap, snippet, or skip — to reduce silent codemod failures across framework edge cases. Plus launcher detection, init-time smoke tests, and a marketplace install command fix.
@sightmap/sightmap0.5.0 —sightmap initprovider-codemod step is now opt-in via three-way prompt: Wrap automatically (current behavior), Show me the snippet to paste (per-framework template), or Skip. When the codemod can’t safely produce a wrap,initprints the framework-appropriate snippet inline instead of warning out. NewrenderProviderSnippet()helpers cover Vite/CRA, Next app/pages, React Router 7, and a generic fallback. Monorepo support: package-manager detection walks up parent directories forpnpm-lock.yaml,pnpm-workspace.yaml,yarn.lock.@sightmap/sightmap0.5.1 — Launcher detection: the MCP server entry in.mcp.json/.claude/settings.jsonwas hardcoded tonpx, which under Node 25 + npm 11 silently dies on stdin in pnpm workspaces.buildSightmapMcpServerDefnow picksbunx/pnpm dlx/yarn dlx/npx -yper lockfile signals. New init-time smoke test spawns the configured MCP command and sends a JSON-RPCinitializeto surface silent spawn failures with actionable warnings. New--no-smokeflag bypasses the check for CI / headless runs.@sightmap/sightmap0.5.2 —sightmap initplugin-flow command fix: prints/plugin install sightmap@sightmap(and the Codex equivalent), not the wrongsightmap@sightmap-marketplacesuffix. The marketplace’s actual name in@sightmap/plugin’s.claude-plugin/marketplace.jsonissightmap.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md
v0.4 — sightmap init (zero-to-one installer)
Section titled “v0.4 — sightmap init (zero-to-one installer)”May 12, 2026
A single npx @sightmap/sightmap init command that takes a new adopter from zero to a working Sightmap loop. Detects your framework (React/Vite, Next App or Pages router, React Router 7), the coding-agent harness(es) in use (Claude Code, Codex, Cursor, OpenCode), and any Sightmap-aware browser MCP already installed (Subtext today; allowlist grows by PR as partnerships form). Runs framework setup (adapter install, <SightmapProvider> codemod with diff preview, codegen) and branches between a plugin path (prints copy-paste install commands per host) and a manual path (writes MCP config + copies skills/hooks/agents from the @sightmap/plugin tarball).
@sightmap/sightmap0.4.0 — newsightmap initCLI subcommand. Flags:--yes,--plugin,--manual,--host,--with-browser,--curate-only,--no-codegen,--no-provider. Per-host writers for.mcp.json(Claude Code),~/.codex/config.toml,.cursor/mcp.json, andopencode.json— each merges into existing config without clobbering other servers. The<SightmapProvider>codemod usesrecastto wrap the app entry’s.render()call; always shows a diff before applying and no-ops ifSightmapProvideris already present. See @sightmap/cli.@sightmap/mcp0.4.0 — new--curate-onlyflag that skips the upstream browser-MCP spawn and registers only the curation tools (useful when paired with an existing Sightmap-aware browser tool like Subtext). NewSIGHTMAP_PLUGIN_VERSIONenv var startup compat check against a built-inKNOWN_INCOMPATIBLE_RANGEStable — emits a soft warning for untested combinations, exits with a clear error on known-incompatible pairs. See @sightmap/mcp.@sightmap/plugin0.3.2 — repo extracted out of thesightmap-jsmonorepo to its own GitHub home at sightmap/plugin; the plugin now ships on its own release cadence. AddscompatibleMcpVersiontoplugin.json— the single source of truth for@sightmap/mcpversion pinning, consumed bysightmap initand propagated into the project’s.mcp.json. See Plugin (Claude Code).
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md - Plugin —
sightmap/plugin
v0.3 — sightmap fmt
Section titled “v0.3 — sightmap fmt”May 10, 2026
A canonical-formatter CLI for .sightmap/ directories. sightmap fmt --check is CI-ready (exits 1 on non-canonical); sightmap fmt --write rewrites in place. Comment-preserving — # HEADER blocks and inline comments survive the round-trip.
@sightmap/sightmap0.3.0 — newsightmap fmt [path] [--check] [--write] [--json]CLI subcommand and a siblingcanonicalize(text)public API (both share canonical-form rules through a newcanonical-rulesmodule). Implements the spec’s normative canonical-formatting rules: top-level and per-entry-type key order, top-level list sort, universal string quoting (PLAIN > single > double), blank-line normalization between top-level seq entries. Three new diagnostic codes:fmt.not-canonical(warning),fmt.parse-errorandfmt.schema-invalid(errors —fmtrefuses to rewrite broken files). The 7 vendoredfmtconformance fixtures (100–106) now assert in the test suite; previously skipped. See @sightmap/cli.@sightmap/react0.3.0 and@sightmap/mcp0.3.0 — lockstep version bump alongside@sightmap/sightmap@0.3.0. No direct API or behavior changes; the adapter and curation tools route YAML output throughformat()and aren’t yet pipelined throughcanonicalize(). That follow-up landed onmainafter the 0.3.0 cut and will be in the next release.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md
v0.2 — Agent-driven curation
Section titled “v0.2 — Agent-driven curation”May 10, 2026
Headline: @sightmap/mcp grows a curation tool family so an MCP-capable agent can author and refine a .sightmap/ directly — list and fetch views, run diagnostics, patch the agent-authored fields, scaffold a project. Component / route / selector edits stay owned by the React codegen flow, keeping the agent-edits-semantics / codegen-edits-structure split intact.
@sightmap/mcp0.2.0 — curation tools (sightmap_list_views,sightmap_get_view,sightmap_check,sightmap_update_view,sightmap_init_project);sightmap_sep_trackMCP prompt for SEP authoring (draft→spec→fixture→verifywith confirmation gates); multi-app loading via repeatable--sightmap-dir. See @sightmap/mcp.@sightmap/sightmap0.2.0 —sightmap checksubcommand (combines validate + lint; drives the advisory hook bundle);sightmap check-conventionsfor spec-repo filename rules; newformatexport — value-based canonical YAML writer used bysightmap_update_viewand the starter scaffolder; browser-safe entry (dist/browser.js) so Vite-style bundlers don’t pull in Node-only helpers;route-shadowinglint now mirrors React Router 7 specificity rather than file/declaration order. See @sightmap/cli and @sightmap/core.@sightmap/react0.2.0 — React Router 7 framework-mode adapter (--router react-router-7-framework, orautowhich picks framework-mode whenapp/routes.tsis present); the declarative adapter now resolvestsconfigpath aliases,<Route Component={X}>,React.lazy(() => import(...)), and directory-style imports. Newgen --live <url>flag merges runtime route discovery into the static AST scan. First-run polish: scaffolded TODO comments in new view files, alphabetized edit targets in the CLI summary. See @sightmap/react.@sightmap/plugin0.2.0 — two new subagents (sightmap-auditorread-only audit,sightmap-assistantwrite-capable) and six slash commands (/sightmap:audit,/sightmap:init,/sightmap:bootstrap,/sightmap:explain,/sightmap:fix,/sightmap:gen). Distribution is via the Claude Code marketplace; first marketplace publish is queued for v0.3. See Plugin (Claude Code).
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md
v0.1 — Initial public release
Section titled “v0.1 — Initial public release”May 10, 2026
The Sightmap project goes public.
- Spec stream
1— views, components, requests, and memory. The complete YAML format is documented in the spec and codified bysightmap.schema.json(JSON Schema setup). @sightmap/sightmap0.1.0 — library +sightmapCLI. Five commands:validate,lint,check,match,explain. Library API:parse,validate,merge,loadDirectory,match,explain,lint. See @sightmap/cli and @sightmap/core.@sightmap/react0.1.0 — React adapter.<SightmapProvider>,data-componentdecoration, thesightmap-react gencodegen flow, the Vite plugin. See @sightmap/react.@sightmap/mcp0.1.0 — MCP server. Browser introspection +.sightmap/curation tools for any MCP-capable agent. See @sightmap/mcp.@sightmap/plugin0.1.0 — Claude Code plugin. SessionStart loader, PreToolUse advisory, PostToolUse validate + cascade. See Plugin (Claude Code).- Conformance fixtures — the language-agnostic test suite covering schema, route matching, scoping, and merge semantics. See Conformance fixtures.
Canonical sources:
- Spec —
sightmap/spec - SDK —
sightmap/sightmap-js; per-package changelogs underpackages/*/CHANGELOG.md
Future entries will be added above this one, newest first.