diff --git a/.changeset/activity-ingest-log.md b/.changeset/activity-ingest-log.md deleted file mode 100644 index 02c55e55..00000000 --- a/.changeset/activity-ingest-log.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@skill-map/cli": patch -"@skill-map/spec": patch ---- - -`POST /api/activity` now emits one diagnostic log line per ingested event so an operator debugging a Provider's live-activity wiring (`sm serve --log-level info`) sees whether a hook fired and where it ended up, instead of the silent 202 short-circuits. The line names the provider, a sanitized hook-type discriminator, and the outcome (resolved with counts / no-signals / no-nodes / unresolved at INFO; no-provider and token mismatch at WARN). The event body is never logged. - -## User-facing - -Run `sm serve --log-level info` to see one line per live-activity event: which provider and hook fired, and whether it resolved, mapped nothing, or was dropped (e.g. an untrusted provider). Hard drops and token mismatches show even at the default level. diff --git a/.changeset/drift-switch-lens-reconcile.md b/.changeset/drift-switch-lens-reconcile.md deleted file mode 100644 index 1adaa1e8..00000000 --- a/.changeset/drift-switch-lens-reconcile.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@skill-map/cli": patch -"@skill-map/spec": patch ---- - -Switching the active-provider lens from the marker-drift notice now dismisses it. `PATCH /api/active-provider` refreshes the `activeProviderMarkers` snapshot to the detected set as part of the switch (mirroring the CLI's `sm config set activeProvider`), so the drift banner clears on a lens change instead of lingering. Previously only the explicit Dismiss (`POST /api/active-provider/accept-markers`) reconciled the snapshot, so switching lens left the notice up. - -## User-facing - -The "new provider markers detected" banner now goes away after you switch lens from it, not only when you press its dismiss button. diff --git a/.changeset/files-follow-selection.md b/.changeset/files-follow-selection.md deleted file mode 100644 index cd6082ad..00000000 --- a/.changeset/files-follow-selection.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@skill-map/cli": patch ---- - -The workspace files panel gains an opt-in rail toggle that makes it follow the map selection. With the toggle on, selecting a node on the map highlights the matching file in the files list, expands its folders, and scrolls it into view. The toggle sits next to the search controls, ships off by default, and its state is remembered per browser. - -## User-facing - -The files panel has a new toggle: turn it on and selecting a node on the map highlights that file in the list and scrolls to it. Off by default. diff --git a/.changeset/lower-max-scan-default.md b/.changeset/lower-max-scan-default.md deleted file mode 100644 index 59c89026..00000000 --- a/.changeset/lower-max-scan-default.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@skill-map/cli": minor -"@skill-map/spec": minor ---- - -Lowers the default scan corpus ceiling `scan.maxScan` from 50000 to 5000 files. Projects above the limit now truncate by default (extra files are left out of the map, not scanned or reference-validated), and `sm scan` prints a reworded advisory pointing at `.skillmapignore` to filter noisy folders (e.g. node_modules/, dist/, build/) or `--max-scan ` to raise the limit. Fully overridable per project via `scan.maxScan` in settings.json or per invocation via `--max-scan`. - -## User-facing - -skill-map now scans up to 5000 files by default (was 50000). Larger projects get a terminal notice suggesting you filter noisy folders with .skillmapignore, or raise the limit with --max-scan. You can set any value under scan.maxScan in .skill-map/settings.json. diff --git a/.changeset/render-cap-advisory.md b/.changeset/render-cap-advisory.md deleted file mode 100644 index 71591b32..00000000 --- a/.changeset/render-cap-advisory.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@skill-map/cli": patch -"@skill-map/spec": patch ---- - -`sm scan` now prints an info advisory when the scanned corpus has more nodes than the map render cap (`scan.maxNodes`, default 256): the full corpus is still scanned and reference-validated, only the graph view paginates. The in-map render-cap banner is now corpus-aware, so it also fires when the whole project exceeds the cap while the selected branch fits, keeping the signal visible when you drill into a small sub-folder. - -## User-facing - -When your project has more files than the map can show at once (256 by default), sm scan now tells you in the terminal, and the map banner appears even while you are viewing a small folder. Nothing is lost, the map just draws part of the project at a time. diff --git a/.changeset/untrusted-plugin-status.md b/.changeset/untrusted-plugin-status.md deleted file mode 100644 index 3f15fc82..00000000 --- a/.changeset/untrusted-plugin-status.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@skill-map/cli": patch -"@skill-map/spec": patch ---- - -Fixes `GET /api/plugins` reporting `status: 'enabled'` for an untrusted drop-in plugin that ships config-enabled (e.g. a `beta` provider). Its code never loads without a local trust grant, so the row now reads `status: 'disabled'` with the untrusted reason (per spec/architecture.md) instead of misleadingly showing as active. Plugin-level, so it covers every kind (provider, extractor, analyzer, action, formatter, hook). - -## User-facing - -An untrusted drop-in plugin no longer shows as enabled in the plugins list. Until you trust it (Settings, or sm plugins trust), it reads disabled with a hint to trust it, since its code does not run without your trust grant. diff --git a/CHANGELOG.md b/CHANGELOG.md index 585df658..949f3572 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,30 @@ > Forward-looking plan: [`ROADMAP.md`](./ROADMAP.md).
+0.85.0 · 2026-07-08 + +### CLI Minor +- Lowers the default scan corpus ceiling `scan.maxScan` from 50000 to 5000 files. Projects above the limit now truncate by default (extra files are left out of the map, not scanned or reference-validated), and `sm scan` prints a reworded advisory pointing at `.skillmapignore` to filter noisy folders (e.g. node_modules/, dist/, build/) or `--max-scan ` to raise the limit. Fully overridable per project via `scan.maxScan` in settings.json or per invocation via `--max-scan`. + +### CLI Patch +- `POST /api/activity` now emits one diagnostic log line per ingested event so an operator debugging a Provider's live-activity wiring (`sm serve --log-level info`) sees whether a hook fired and where it ended up, instead of the silent 202 short-circuits. The line names the provider, a sanitized hook-type discriminator, and the outcome (resolved with counts / no-signals / no-nodes / unresolved at INFO; no-provider and token mismatch at WARN). The event body is never logged. +- Switching the active-provider lens from the marker-drift notice now dismisses it. `PATCH /api/active-provider` refreshes the `activeProviderMarkers` snapshot to the detected set as part of the switch (mirroring the CLI's `sm config set activeProvider`), so the drift banner clears on a lens change instead of lingering. Previously only the explicit Dismiss (`POST /api/active-provider/accept-markers`) reconciled the snapshot, so switching lens left the notice up. +- The workspace files panel gains an opt-in rail toggle that makes it follow the map selection. With the toggle on, selecting a node on the map highlights the matching file in the files list, expands its folders, and scrolls it into view. The toggle sits next to the search controls, ships off by default, and its state is remembered per browser. +- `sm scan` now prints an info advisory when the scanned corpus has more nodes than the map render cap (`scan.maxNodes`, default 256): the full corpus is still scanned and reference-validated, only the graph view paginates. The in-map render-cap banner is now corpus-aware, so it also fires when the whole project exceeds the cap while the selected branch fits, keeping the signal visible when you drill into a small sub-folder. +- Fixes `GET /api/plugins` reporting `status: 'enabled'` for an untrusted drop-in plugin that ships config-enabled (e.g. a `beta` provider). Its code never loads without a local trust grant, so the row now reads `status: 'disabled'` with the untrusted reason (per spec/architecture.md) instead of misleadingly showing as active. Plugin-level, so it covers every kind (provider, extractor, analyzer, action, formatter, hook). + +### Spec Minor (0.77.0) +- Lowers the default scan corpus ceiling `scan.maxScan` from 50000 to 5000 files. Projects above the limit now truncate by default (extra files are left out of the map, not scanned or reference-validated), and `sm scan` prints a reworded advisory pointing at `.skillmapignore` to filter noisy folders (e.g. node_modules/, dist/, build/) or `--max-scan ` to raise the limit. Fully overridable per project via `scan.maxScan` in settings.json or per invocation via `--max-scan`. + +### Spec Patch (0.77.0) +- `POST /api/activity` now emits one diagnostic log line per ingested event so an operator debugging a Provider's live-activity wiring (`sm serve --log-level info`) sees whether a hook fired and where it ended up, instead of the silent 202 short-circuits. The line names the provider, a sanitized hook-type discriminator, and the outcome (resolved with counts / no-signals / no-nodes / unresolved at INFO; no-provider and token mismatch at WARN). The event body is never logged. +- Switching the active-provider lens from the marker-drift notice now dismisses it. `PATCH /api/active-provider` refreshes the `activeProviderMarkers` snapshot to the detected set as part of the switch (mirroring the CLI's `sm config set activeProvider`), so the drift banner clears on a lens change instead of lingering. Previously only the explicit Dismiss (`POST /api/active-provider/accept-markers`) reconciled the snapshot, so switching lens left the notice up. +- `sm scan` now prints an info advisory when the scanned corpus has more nodes than the map render cap (`scan.maxNodes`, default 256): the full corpus is still scanned and reference-validated, only the graph view paginates. The in-map render-cap banner is now corpus-aware, so it also fires when the whole project exceeds the cap while the selected branch fits, keeping the signal visible when you drill into a small sub-folder. +- Fixes `GET /api/plugins` reporting `status: 'enabled'` for an untrusted drop-in plugin that ships config-enabled (e.g. a `beta` provider). Its code never loads without a local trust grant, so the row now reads `status: 'disabled'` with the untrusted reason (per spec/architecture.md) instead of misleadingly showing as active. Plugin-level, so it covers every kind (provider, extractor, analyzer, action, formatter, hook). + +
+ +
0.84.0 · 2026-07-07 ### CLI Minor diff --git a/spec/CHANGELOG.md b/spec/CHANGELOG.md index 0db1a689..b6c8ca6a 100644 --- a/spec/CHANGELOG.md +++ b/spec/CHANGELOG.md @@ -1,5 +1,41 @@ # Spec changelog +## 0.77.0 + +### Minor Changes + +- Lowers the default scan corpus ceiling `scan.maxScan` from 50000 to 5000 files. Projects above the limit now truncate by default (extra files are left out of the map, not scanned or reference-validated), and `sm scan` prints a reworded advisory pointing at `.skillmapignore` to filter noisy folders (e.g. node_modules/, dist/, build/) or `--max-scan ` to raise the limit. Fully overridable per project via `scan.maxScan` in settings.json or per invocation via `--max-scan`. + + ## User-facing + + skill-map now scans up to 5000 files by default (was 50000). Larger projects get a terminal notice suggesting you filter noisy folders with .skillmapignore, or raise the limit with --max-scan. You can set any value under scan.maxScan in .skill-map/settings.json. + +### Patch Changes + +- `POST /api/activity` now emits one diagnostic log line per ingested event so an operator debugging a Provider's live-activity wiring (`sm serve --log-level info`) sees whether a hook fired and where it ended up, instead of the silent 202 short-circuits. The line names the provider, a sanitized hook-type discriminator, and the outcome (resolved with counts / no-signals / no-nodes / unresolved at INFO; no-provider and token mismatch at WARN). The event body is never logged. + + ## User-facing + + Run `sm serve --log-level info` to see one line per live-activity event: which provider and hook fired, and whether it resolved, mapped nothing, or was dropped (e.g. an untrusted provider). Hard drops and token mismatches show even at the default level. + +- Switching the active-provider lens from the marker-drift notice now dismisses it. `PATCH /api/active-provider` refreshes the `activeProviderMarkers` snapshot to the detected set as part of the switch (mirroring the CLI's `sm config set activeProvider`), so the drift banner clears on a lens change instead of lingering. Previously only the explicit Dismiss (`POST /api/active-provider/accept-markers`) reconciled the snapshot, so switching lens left the notice up. + + ## User-facing + + The "new provider markers detected" banner now goes away after you switch lens from it, not only when you press its dismiss button. + +- `sm scan` now prints an info advisory when the scanned corpus has more nodes than the map render cap (`scan.maxNodes`, default 256): the full corpus is still scanned and reference-validated, only the graph view paginates. The in-map render-cap banner is now corpus-aware, so it also fires when the whole project exceeds the cap while the selected branch fits, keeping the signal visible when you drill into a small sub-folder. + + ## User-facing + + When your project has more files than the map can show at once (256 by default), sm scan now tells you in the terminal, and the map banner appears even while you are viewing a small folder. Nothing is lost, the map just draws part of the project at a time. + +- Fixes `GET /api/plugins` reporting `status: 'enabled'` for an untrusted drop-in plugin that ships config-enabled (e.g. a `beta` provider). Its code never loads without a local trust grant, so the row now reads `status: 'disabled'` with the untrusted reason (per spec/architecture.md) instead of misleadingly showing as active. Plugin-level, so it covers every kind (provider, extractor, analyzer, action, formatter, hook). + + ## User-facing + + An untrusted drop-in plugin no longer shows as enabled in the plugins list. Until you trust it (Settings, or sm plugins trust), it reads disabled with a hint to trust it, since its code does not run without your trust grant. + ## 0.76.0 ### Minor Changes diff --git a/spec/index.json b/spec/index.json index 68b13a65..4a508651 100644 --- a/spec/index.json +++ b/spec/index.json @@ -178,11 +178,11 @@ } ] }, - "specPackageVersion": "0.76.0", + "specPackageVersion": "0.77.0", "integrity": { "algorithm": "sha256", "files": { - "CHANGELOG.md": "a4bc863153e9c2bad55ce1e1b715ec6258f8b3a04c688555a753ec21143ff7f5", + "CHANGELOG.md": "c02d452b261734585c6e349d7a99bf6b4c0cf8c4ef772a6668cad68f1dd7ee70", "README.md": "a790cd010b46d47883d1f37e3893cea9d7aa69ec4750c0202e6a0c99991e7980", "architecture.md": "adf7c65e65514110d4083cb39afa7a94b0ff6d0f3f6bb766372afe0755bed00b", "cli-contract.md": "cc4118fd3e45a09690138ceb1f03a83facfdb2f31bbcf0912184e862f00d92e3", diff --git a/spec/package.json b/spec/package.json index 3c7c5d24..58408440 100644 --- a/spec/package.json +++ b/spec/package.json @@ -1,6 +1,6 @@ { "name": "@skill-map/spec", - "version": "0.76.0", + "version": "0.77.0", "description": "JSON Schemas, prose contracts, and conformance suite for the skill-map specification.", "license": "MIT", "type": "module", diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md index 9e3d7492..0a7aaf20 100644 --- a/src/CHANGELOG.md +++ b/src/CHANGELOG.md @@ -1,5 +1,47 @@ # skill-map +## 0.85.0 + +### Minor Changes + +- Lowers the default scan corpus ceiling `scan.maxScan` from 50000 to 5000 files. Projects above the limit now truncate by default (extra files are left out of the map, not scanned or reference-validated), and `sm scan` prints a reworded advisory pointing at `.skillmapignore` to filter noisy folders (e.g. node_modules/, dist/, build/) or `--max-scan ` to raise the limit. Fully overridable per project via `scan.maxScan` in settings.json or per invocation via `--max-scan`. + + ## User-facing + + skill-map now scans up to 5000 files by default (was 50000). Larger projects get a terminal notice suggesting you filter noisy folders with .skillmapignore, or raise the limit with --max-scan. You can set any value under scan.maxScan in .skill-map/settings.json. + +### Patch Changes + +- `POST /api/activity` now emits one diagnostic log line per ingested event so an operator debugging a Provider's live-activity wiring (`sm serve --log-level info`) sees whether a hook fired and where it ended up, instead of the silent 202 short-circuits. The line names the provider, a sanitized hook-type discriminator, and the outcome (resolved with counts / no-signals / no-nodes / unresolved at INFO; no-provider and token mismatch at WARN). The event body is never logged. + + ## User-facing + + Run `sm serve --log-level info` to see one line per live-activity event: which provider and hook fired, and whether it resolved, mapped nothing, or was dropped (e.g. an untrusted provider). Hard drops and token mismatches show even at the default level. + +- Switching the active-provider lens from the marker-drift notice now dismisses it. `PATCH /api/active-provider` refreshes the `activeProviderMarkers` snapshot to the detected set as part of the switch (mirroring the CLI's `sm config set activeProvider`), so the drift banner clears on a lens change instead of lingering. Previously only the explicit Dismiss (`POST /api/active-provider/accept-markers`) reconciled the snapshot, so switching lens left the notice up. + + ## User-facing + + The "new provider markers detected" banner now goes away after you switch lens from it, not only when you press its dismiss button. + +- The workspace files panel gains an opt-in rail toggle that makes it follow the map selection. With the toggle on, selecting a node on the map highlights the matching file in the files list, expands its folders, and scrolls it into view. The toggle sits next to the search controls, ships off by default, and its state is remembered per browser. + + ## User-facing + + The files panel has a new toggle: turn it on and selecting a node on the map highlights that file in the list and scrolls to it. Off by default. + +- `sm scan` now prints an info advisory when the scanned corpus has more nodes than the map render cap (`scan.maxNodes`, default 256): the full corpus is still scanned and reference-validated, only the graph view paginates. The in-map render-cap banner is now corpus-aware, so it also fires when the whole project exceeds the cap while the selected branch fits, keeping the signal visible when you drill into a small sub-folder. + + ## User-facing + + When your project has more files than the map can show at once (256 by default), sm scan now tells you in the terminal, and the map banner appears even while you are viewing a small folder. Nothing is lost, the map just draws part of the project at a time. + +- Fixes `GET /api/plugins` reporting `status: 'enabled'` for an untrusted drop-in plugin that ships config-enabled (e.g. a `beta` provider). Its code never loads without a local trust grant, so the row now reads `status: 'disabled'` with the untrusted reason (per spec/architecture.md) instead of misleadingly showing as active. Plugin-level, so it covers every kind (provider, extractor, analyzer, action, formatter, hook). + + ## User-facing + + An untrusted drop-in plugin no longer shows as enabled in the plugins list. Until you trust it (Settings, or sm plugins trust), it reads disabled with a hint to trust it, since its code does not run without your trust grant. + ## 0.84.0 ### Minor Changes diff --git a/src/package.json b/src/package.json index 3dc85048..4c686306 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "@skill-map/cli", - "version": "0.84.0", + "version": "0.85.0", "description": "skill-map reference implementation: kernel + CLI + adapters.", "license": "MIT", "type": "module", diff --git a/ui/src/data/user-changelog.json b/ui/src/data/user-changelog.json index 81821f78..7a2120cd 100644 --- a/ui/src/data/user-changelog.json +++ b/ui/src/data/user-changelog.json @@ -1,6 +1,54 @@ { "schemaVersion": 1, "entries": [ + { + "version": "0.85.0", + "date": "2026-07-08", + "kind": "user-facing", + "highlights": [ + { + "body": "Run `sm serve --log-level info` to see one line per live-activity event: which provider and hook fired, and whether it resolved, mapped nothing, or was dropped (e.g. an untrusted provider). Hard drops and token mismatches show even at the default level.", + "packages": [ + "@skill-map/cli", + "@skill-map/spec" + ] + }, + { + "body": "The \"new provider markers detected\" banner now goes away after you switch lens from it, not only when you press its dismiss button.", + "packages": [ + "@skill-map/cli", + "@skill-map/spec" + ] + }, + { + "body": "The files panel has a new toggle: turn it on and selecting a node on the map highlights that file in the list and scrolls to it. Off by default.", + "packages": [ + "@skill-map/cli" + ] + }, + { + "body": "skill-map now scans up to 5000 files by default (was 50000). Larger projects get a terminal notice suggesting you filter noisy folders with .skillmapignore, or raise the limit with --max-scan. You can set any value under scan.maxScan in .skill-map/settings.json.", + "packages": [ + "@skill-map/cli", + "@skill-map/spec" + ] + }, + { + "body": "When your project has more files than the map can show at once (256 by default), sm scan now tells you in the terminal, and the map banner appears even while you are viewing a small folder. Nothing is lost, the map just draws part of the project at a time.", + "packages": [ + "@skill-map/cli", + "@skill-map/spec" + ] + }, + { + "body": "An untrusted drop-in plugin no longer shows as enabled in the plugins list. Until you trust it (Settings, or sm plugins trust), it reads disabled with a hint to trust it, since its code does not run without your trust grant.", + "packages": [ + "@skill-map/cli", + "@skill-map/spec" + ] + } + ] + }, { "version": "0.84.0", "date": "2026-07-07",