Skip to content

Absorb Memory Map as a browser-local SaaS Maker tool #210

Description

@sarthakagrawal927

Why

Memory Map is a useful bounded tool, like GitStat, rather than an independent active product. Absorb it into SaaS Maker tooling while preserving its existing capabilities.

Scope

Move the browser-local ChatGPT-export analysis tool from chatgpt-memory-insights into an independently testable SaaS Maker tooling package. Choose the final route/package layout on pickup. Preserve its established UI, export parsing, statistics, semantic graph, memory evidence/history, search, opt-in local chat and optional browser-local persistence. It remains credential-free client-side processing, not a hosted analytics service or generic AI gateway.

Archives and derived text must remain on the visitor’s device. Preserve pinned model profiles, download disclosures, incremental parsing, deterministic fallbacks, explicit save/delete controls, and the distinction between candidate inferences and verified facts. Review SaaS Maker’s boundary instructions for the bounded tool’s ownership without introducing a new analytics-dashboard product.

Tasks

  • Inventory source, assets, model loading, browser persistence/origin behavior, existing checks and public entry points.
  • Integrate as a bounded tooling package with preserved UI and reproducible repo commands; reconcile workspace dependencies and docs.
  • Plan compatibility for the old entry point and any saved browser-local indexes; do not imply indexes automatically move between origins.
  • Verify chunked exports, deterministic and semantic results, offline/error fallbacks and explicit persistence/deletion; verify archive text never leaves the device.
  • Verify builds and responsive rendering, consolidate tracking and retire the independent Memory Map identity after parity. (2026-10-09: done per the owner decisions. Memory Map stays a live tool under SaaS Maker, and the chatgpt-memory-insights repo stays active hosting the DaddyRad MCP server, so it is not transferred or retired. Evidence in the final comment.)

Deferred scope

Owner requested tracking only. Do not implement, deploy, migrate, archive or move repositories as part of creating this task. Preserve all current source, data and public surfaces until verified parity. At completion, reconcile source issues, update the canonical SaaS Maker catalog and regenerate consumers/dossiers. Transfer the superseded repository to sarthakagrawal927, archive it, and move its local checkout intact out of active Fleet after verifying retained work. Deployment and data migrations require their applicable approval.

Activity

  1. sarthakagrawal927 commented on Oct 9, 2026

    @sarthakagrawal927
    MemberAuthor

    Plan (merge agent)

    Source: Significant-Hobbies/chatgpt-memory-insights @ 950a85ce1fd4fb255d145e1c514e776426a9b4e8 (clean main).

    Layout: new private workspace package apps/memory-map (@saas-maker/memory-map), a standalone static Astro build. Not under tooling/ because tooling intentionally has no npm dependencies, and not a route inside the showcase app, because that would change the browser origin and with it the saved IndexedDB indexes. The package keeps its own pinned toolchain (Astro 7, Transformers.js 3.8.1, zip.js, Plot, Tailwind 4, Biome/ultracite, knip) and its own quality gate. Root typecheck/build pick it up through turbo. CI gets a check:memory-map step.

    Moves verbatim: src/ (UI, export parsing incl. chunked conversations-*.json, stats, semantic graph, evidence and history, search, Memory Chat worker, IndexedDB save/forget), tests, public/ (agent surfaces, fonts, footer art, analytics loaders), functions/_middleware.ts, scripts/ (code-health, Playwright import qualification), configs, DESIGN.md, PRODUCT.md. Pinned model ids and revisions, download disclosures, deterministic fallbacks and the candidate-vs-verified distinction are unchanged, because the code is unchanged.

    Retained in the source repo for now: the packer/ Rust CLI (memory-pack), its release workflow and install.sh. These depend on that repo's GitHub Releases, so moving them is a separate owner decision. Also kept there: artifacts/design screenshots, docs/qualification evidence and agent metadata (.codex/.agents/.claude/.impeccable/.fleet), which stay as history.

    Dropped in the package: the deploy script, require-clean-main.mjs and wrangler.toml, so this PR cannot deploy to the production Pages project.

    Compatibility: the hostname stays chatgpt.significanthobbies.com. If the owner keeps that hostname when cutting over the Pages deploy source, saved IndexedDB (memory-map database) indexes stay available. Any new origin starts empty: indexes do not move between origins, and users must re-import.

    Owner cutover checklist (not done here):

    • Point the chatgpt-memory-insights Pages deploy at apps/memory-map (or a new project on the same hostname); no DNS change needed if the hostname is kept
    • Decide where memory-pack (packer) lives and where its releases come from
    • Repoint catalog systems wiredFiles/footerSurfaces and the dossier after cutover; then lifecycle retirement
    • Reconcile source repo issues (Fix package deploy workflow commands #12, docs: define spotlight products and fleet directory #37, …); transfer the repo to sarthakagrawal927, archive it, and move the local checkout out of active Fleet

    2026-10-09: all boxes closed by the cutover (see the final comment). Per the owner decisions, the source repo is not transferred or retired; it now hosts the DaddyRad MCP server. Issues #12 and #37 became #213 and #214.

  2. sarthakagrawal927 commented on Oct 9, 2026

    @sarthakagrawal927
    MemberAuthor

    Source merge landed in #211 (squash 6ef53142)

    Memory Map now lives at apps/memory-map (@saas-maker/memory-map), copied verbatim from chatgpt-memory-insights@950a85ce. It has no deploy path, so production is unchanged. CI is green, including the new pnpm check:memory-map step that runs the package's full quality boundary.

    Verification (local and CI)

    • The package check passes: format and lint clean, astro check 0 errors, 104/104 tests with coverage above the floors, knip, complexity and duplication within baselines, 0 advisories on this package's dependency paths, and the build succeeds.
    • test:import passes 6/6 in Chromium, covering model-download failure recovery at 390px and 1280px, pinned compact WASM inference, and analytics never collecting archive text.
    • An extra Playwright run on the built app used a split conversations-000/001.json ZIP:
      • 4/4 conversations were parsed, and semantic search returned the right evidence;
      • there was no overflow at 390px or 1280px;
      • Save created the memory-map IndexedDB, reload restored an identical report, and Forget deleted the DB and returned to import;
      • a unique archive marker appeared in no external request URL or body, and there were no page errors.
    • The root lint, typecheck, tests, docs and catalog checks and all four app builds pass.
    • Catalog: the ownerNotes for chatgpt-memory-insights now record the new source location and pending cutover, and pnpm catalog:sync has been run. Lifecycle is unchanged.

    Remaining (owner cutover, last box)

    • Approve and run: point the chatgpt-memory-insights Pages project at apps/memory-map/dist. Keep chatgpt.significanthobbies.com so saved IndexedDB indexes survive; any other origin starts empty. Add a deploy script and guard at that point.
    • Decide the home and release channel for memory-pack (packer/, packer-release.yml, install.sh); these are still in the source repo.
    • After cutover: repoint catalog systems paths (Clarity, footer surfaces) to saas-maker/apps/memory-map/..., retire the lifecycle, and refresh dossiers.
    • Reconcile source issues (Fix package deploy workflow commands #12 debt ratchet, docs: define spotlight products and fleet directory #37 qualification) into SaaS Maker, then transfer the repo to sarthakagrawal927, archive it, and move the local checkout out of active Fleet.

    2026-10-09: all boxes closed by the cutover (see the final comment). Per the owner decisions, the source repo is not transferred or retired; it now hosts the DaddyRad MCP server. Issues #12 and #37 became #213 and #214.

  3. sarthakagrawal927 commented on Oct 9, 2026

    @sarthakagrawal927
    MemberAuthor

    Cutover complete (owner decisions 2026-10-09)

    Owner follow-up: only #216, before the next memory-pack release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions