Skip to content

Package the local Coven Memory dashboard - #7

Merged
BunsDev merged 1 commit into
mainfrom
feature/distribution-local
Jul 27, 2026
Merged

Package the local Coven Memory dashboard#7
BunsDev merged 1 commit into
mainfrom
feature/distribution-local

Conversation

@BunsDev

@BunsDev BunsDev commented Jul 27, 2026

Copy link
Copy Markdown
Member

Summary

  • classify legacy daemon contracts as an explicit update-required state
  • package a sanitized, loopback-only dashboard executable
  • preserve signal, URL, and synthetic-data boundaries across installed artifacts

Verification

  • pnpm check (18 files / 143 tests)
  • pnpm test:package (7 tests)
  • pnpm audit:prod
  • cross-repository canonical-memory smoke (blocker_count=0, smoke_status=ok)

Privacy guard review

scripts/sanitize-build-artifact.test.mjs contains three synthetic /Users/example/private-checkout inputs annotated with gitleaks:allow. They are required to prove machine-root removal from packaged manifests and contain no real local path or secret.

Bead: cmem-8qg.4.1

Signed-off-by: Val Alexander <bunsthedev@gmail.com>
Copilot AI review requested due to automatic review settings July 27, 2026 14:28
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
coven-memory Ready Ready Preview Jul 27, 2026 2:28pm

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Packages the Coven Memory dashboard as a publishable npm artifact with a loopback-only executable entrypoint, while hardening privacy boundaries (sanitized build manifests + strict packaged-file allowlist) and surfacing daemon contract incompatibility as an explicit “update required” state in both API and UI.

Changes:

  • Add a coven-memory-dashboard bin entry and restrict published contents to a curated runtime subset, with packaging verification scripts.
  • Introduce a build-artifact sanitizer/scan that removes absolute build roots and enforces policy checks over required runtime paths.
  • Treat legacy/missing daemon routes as daemon_update_required (HTTP 426) and gate the dashboard UI behind an update-required screen.

Reviewed changes

Copilot reviewed 19 out of 21 changed files in this pull request and generated no comments.

Show a summary per file
File Description
vitest.config.ts Excludes Node --test packaging tests from Vitest discovery.
src/server/memory-gateway.ts Detects legacy/missing daemon contracts and raises a dedicated incompatibility error.
src/server/memory-gateway.test.ts Adds coverage for legacy contract + missing route → incompatibility classification.
src/server/memory-contract.ts Adds a legacy list schema used only for incompatibility detection.
src/server/api-response.ts Maps daemon_incompatible to daemon_update_required with HTTP 426.
src/features/memory/use-memory-dashboard.ts Derives a top-level updateRequired state from API error codes.
src/features/memory/use-memory-dashboard.test.tsx Verifies updateRequired derivation on compatibility response (426 + code).
src/features/memory/memory-update-required.tsx New UI gate component prompting users to update/retry.
src/features/memory/memory-dashboard.tsx Replaces panes with the update-required gate when needed.
src/features/memory/memory-dashboard.test.tsx Tests that update-required gating hides the normal panes/controls.
src/app/globals.css Adds styling for the update-required gate.
src/app/api/memory/routes.test.ts Verifies API route maps incompatibility to 426 + no-store payload.
scripts/smoke-dashboard.mjs Allows smoke to launch an installed dashboard entry (and suppress browser open).
scripts/sanitize-build-artifact.test.mjs Tests sanitization removes synthetic absolute roots and rejects /Users//home remnants.
scripts/sanitize-build-artifact.mjs Implements manifest sanitization + runtime policy scanning across packaged paths.
scripts/package-contents-test.mjs Enforces an allowlist/required-list for npm pack --dry-run contents.
scripts/dashboard-bin.test.mjs Node-level tests for loopback URL parsing, browser command selection, and signal handling.
README.md Documents global install + launch behavior and privacy guarantees of the published artifact.
pnpm-lock.yaml Locks dependency graph updates to support runtime tsx usage.
package.json Makes package publishable, adds bin/files/publishConfig, and adds package build/test scripts.
bin/coven-memory-dashboard.mjs Adds the executable entrypoint that launches the production server and validates/opens the loopback URL.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@BunsDev
BunsDev merged commit 42ac843 into main Jul 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants