@stackmemoryai/stackmemory 0.2.4 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +353 -83
- package/dist/index.js +382 -0
- package/dist/scripts/cancel-duplicate-tasks.d.ts +7 -0
- package/dist/scripts/cancel-duplicate-tasks.d.ts.map +1 -0
- package/dist/scripts/cancel-duplicate-tasks.js +171 -0
- package/dist/scripts/cancel-duplicate-tasks.js.map +1 -0
- package/dist/scripts/list-linear-tasks.d.ts +6 -0
- package/dist/scripts/list-linear-tasks.d.ts.map +1 -0
- package/dist/scripts/list-linear-tasks.js +122 -0
- package/dist/scripts/list-linear-tasks.js.map +1 -0
- package/dist/scripts/merge-linear-duplicates-safe.d.ts +7 -0
- package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +1 -0
- package/dist/scripts/merge-linear-duplicates-safe.js +265 -0
- package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -0
- package/dist/scripts/merge-linear-duplicates.d.ts +7 -0
- package/dist/scripts/merge-linear-duplicates.d.ts.map +1 -0
- package/dist/scripts/merge-linear-duplicates.js +126 -0
- package/dist/scripts/merge-linear-duplicates.js.map +1 -0
- package/dist/scripts/show-linear-summary.d.ts +6 -0
- package/dist/scripts/show-linear-summary.d.ts.map +1 -0
- package/dist/scripts/show-linear-summary.js +117 -0
- package/dist/scripts/show-linear-summary.js.map +1 -0
- package/dist/src/analytics/api/analytics-api.d.ts +24 -0
- package/dist/src/analytics/api/analytics-api.d.ts.map +1 -0
- package/dist/src/analytics/api/analytics-api.js +279 -0
- package/dist/src/analytics/api/analytics-api.js.map +1 -0
- package/dist/src/analytics/core/analytics-service.d.ts +23 -0
- package/dist/src/analytics/core/analytics-service.d.ts.map +1 -0
- package/dist/src/analytics/core/analytics-service.js +160 -0
- package/dist/src/analytics/core/analytics-service.js.map +1 -0
- package/dist/src/analytics/index.d.ts +12 -0
- package/dist/src/analytics/index.d.ts.map +1 -0
- package/dist/src/analytics/index.js +11 -0
- package/dist/src/analytics/index.js.map +1 -0
- package/dist/src/analytics/queries/metrics-queries.d.ts +11 -0
- package/dist/src/analytics/queries/metrics-queries.d.ts.map +1 -0
- package/dist/src/analytics/queries/metrics-queries.js +179 -0
- package/dist/src/analytics/queries/metrics-queries.js.map +1 -0
- package/dist/src/analytics/types/metrics.d.ts +60 -0
- package/dist/src/analytics/types/metrics.d.ts.map +1 -0
- package/dist/src/analytics/types/metrics.js +2 -0
- package/dist/src/analytics/types/metrics.js.map +1 -0
- package/dist/src/cli/__tests__/index.test.d.ts +5 -0
- package/dist/src/cli/__tests__/index.test.d.ts.map +1 -0
- package/dist/src/cli/__tests__/index.test.js +726 -0
- package/dist/src/cli/__tests__/index.test.js.map +1 -0
- package/dist/src/cli/analytics-viewer.d.ts +3 -0
- package/dist/src/cli/analytics-viewer.d.ts.map +1 -0
- package/dist/src/cli/analytics-viewer.js +89 -0
- package/dist/src/cli/analytics-viewer.js.map +1 -0
- package/dist/src/cli/auto-detect.d.ts +61 -0
- package/dist/src/cli/auto-detect.d.ts.map +1 -0
- package/dist/src/cli/auto-detect.js +350 -0
- package/dist/src/cli/auto-detect.js.map +1 -0
- package/dist/src/cli/browser-test.d.ts +6 -0
- package/dist/src/cli/browser-test.d.ts.map +1 -0
- package/dist/src/cli/browser-test.js +32 -0
- package/dist/src/cli/browser-test.js.map +1 -0
- package/dist/src/cli/claude-sm.d.ts +7 -0
- package/dist/src/cli/claude-sm.d.ts.map +1 -0
- package/dist/src/cli/claude-sm.js +357 -0
- package/dist/src/cli/claude-sm.js.map +1 -0
- package/dist/src/cli/cli.js +157 -0
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/commands/context.d.ts +7 -0
- package/dist/src/cli/commands/context.d.ts.map +1 -0
- package/dist/src/cli/commands/context.js +365 -0
- package/dist/src/cli/commands/context.js.map +1 -0
- package/dist/src/cli/commands/linear-test.d.ts +6 -0
- package/dist/src/cli/commands/linear-test.d.ts.map +1 -0
- package/dist/src/cli/commands/linear-test.js +123 -0
- package/dist/src/cli/commands/linear-test.js.map +1 -0
- package/dist/src/cli/commands/linear.d.ts +6 -0
- package/dist/src/cli/commands/linear.d.ts.map +1 -0
- package/dist/src/cli/commands/linear.js +317 -0
- package/dist/src/cli/commands/linear.js.map +1 -0
- package/dist/src/cli/commands/log.d.ts +7 -0
- package/dist/src/cli/commands/log.d.ts.map +1 -0
- package/dist/src/cli/commands/log.js +168 -0
- package/dist/src/cli/commands/log.js.map +1 -0
- package/dist/src/cli/commands/onboard.d.ts +8 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -0
- package/dist/src/cli/commands/onboard.js +363 -0
- package/dist/src/cli/commands/onboard.js.map +1 -0
- package/dist/src/cli/commands/projects.d.ts +8 -0
- package/dist/src/cli/commands/projects.d.ts.map +1 -0
- package/dist/src/cli/commands/projects.js +220 -0
- package/dist/src/cli/commands/projects.js.map +1 -0
- package/dist/src/cli/commands/search.d.ts +7 -0
- package/dist/src/cli/commands/search.d.ts.map +1 -0
- package/dist/src/cli/commands/search.js +162 -0
- package/dist/src/cli/commands/search.js.map +1 -0
- package/dist/src/cli/commands/session.d.ts +7 -0
- package/dist/src/cli/commands/session.d.ts.map +1 -0
- package/dist/src/cli/commands/session.js +222 -0
- package/dist/src/cli/commands/session.js.map +1 -0
- package/dist/src/cli/commands/tasks.d.ts +7 -0
- package/dist/src/cli/commands/tasks.d.ts.map +1 -0
- package/dist/src/cli/commands/tasks.js +229 -0
- package/dist/src/cli/commands/tasks.js.map +1 -0
- package/dist/src/cli/commands/webhook.d.ts +3 -0
- package/dist/src/cli/commands/webhook.d.ts.map +1 -0
- package/dist/src/cli/commands/webhook.js +157 -0
- package/dist/src/cli/commands/webhook.js.map +1 -0
- package/dist/src/cli/commands/worktree.d.ts +8 -0
- package/dist/src/cli/commands/worktree.d.ts.map +1 -0
- package/dist/src/cli/commands/worktree.js +339 -0
- package/dist/src/cli/commands/worktree.js.map +1 -0
- package/dist/src/cli/index.d.ts +8 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +944 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/project-commands.d.ts +8 -0
- package/dist/src/cli/project-commands.d.ts.map +1 -0
- package/dist/src/cli/project-commands.js +212 -0
- package/dist/src/cli/project-commands.js.map +1 -0
- package/dist/src/cli/utils/viewer.d.ts +3 -0
- package/dist/src/cli/utils/viewer.d.ts.map +1 -0
- package/dist/src/cli/utils/viewer.js +91 -0
- package/dist/src/cli/utils/viewer.js.map +1 -0
- package/dist/src/core/context/__tests__/frame-manager.test.d.ts +5 -0
- package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +1 -0
- package/dist/src/core/context/__tests__/frame-manager.test.js +892 -0
- package/dist/src/core/context/__tests__/frame-manager.test.js.map +1 -0
- package/dist/src/core/context/auto-context.d.ts +22 -0
- package/dist/src/core/context/auto-context.d.ts.map +1 -0
- package/dist/src/core/context/auto-context.js +77 -0
- package/dist/src/core/context/auto-context.js.map +1 -0
- package/dist/src/core/context/frame-manager.d.ts +110 -0
- package/dist/src/core/context/frame-manager.d.ts.map +1 -0
- package/dist/src/core/context/frame-manager.js +593 -0
- package/dist/src/core/context/frame-manager.js.map +1 -0
- package/dist/src/core/errors/__tests__/error-handling.test.d.ts +5 -0
- package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +1 -0
- package/dist/src/core/errors/__tests__/error-handling.test.js +239 -0
- package/dist/src/core/errors/__tests__/error-handling.test.js.map +1 -0
- package/dist/src/core/errors/index.d.ts +135 -0
- package/dist/src/core/errors/index.d.ts.map +1 -0
- package/dist/src/core/errors/index.js +274 -0
- package/dist/src/core/errors/index.js.map +1 -0
- package/dist/src/core/errors/recovery.d.ts +86 -0
- package/dist/src/core/errors/recovery.d.ts.map +1 -0
- package/dist/src/core/errors/recovery.js +274 -0
- package/dist/src/core/errors/recovery.js.map +1 -0
- package/dist/src/core/logger.test.js +1 -1
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/monitoring/error-handler.d.ts +46 -0
- package/dist/src/core/monitoring/error-handler.d.ts.map +1 -0
- package/dist/src/core/monitoring/error-handler.js +212 -0
- package/dist/src/core/monitoring/error-handler.js.map +1 -0
- package/dist/src/core/monitoring/logger.d.ts +24 -0
- package/dist/src/core/monitoring/logger.d.ts.map +1 -0
- package/dist/src/core/monitoring/logger.js +121 -0
- package/dist/src/core/monitoring/logger.js.map +1 -0
- package/dist/src/core/monitoring/metrics.d.ts +7 -0
- package/dist/src/core/monitoring/metrics.d.ts.map +1 -0
- package/dist/src/core/monitoring/metrics.js +13 -0
- package/dist/src/core/monitoring/metrics.js.map +1 -0
- package/dist/src/core/monitoring/progress-tracker.d.ts +95 -0
- package/dist/src/core/monitoring/progress-tracker.d.ts.map +1 -0
- package/dist/src/core/monitoring/progress-tracker.js +178 -0
- package/dist/src/core/monitoring/progress-tracker.js.map +1 -0
- package/dist/src/core/project-manager.d.ts +130 -0
- package/dist/src/core/project-manager.d.ts.map +1 -0
- package/dist/src/core/project-manager.js +582 -0
- package/dist/src/core/project-manager.js.map +1 -0
- package/dist/src/core/projects/project-manager.d.ts +130 -0
- package/dist/src/core/projects/project-manager.d.ts.map +1 -0
- package/dist/src/core/projects/project-manager.js +709 -0
- package/dist/src/core/projects/project-manager.js.map +1 -0
- package/dist/src/core/session/index.d.ts +2 -0
- package/dist/src/core/session/index.d.ts.map +1 -0
- package/dist/src/core/session/index.js +2 -0
- package/dist/src/core/session/index.js.map +1 -0
- package/dist/src/core/session/session-manager.d.ts +69 -0
- package/dist/src/core/session/session-manager.d.ts.map +1 -0
- package/dist/src/core/session/session-manager.js +311 -0
- package/dist/src/core/session/session-manager.js.map +1 -0
- package/dist/src/core/utils/update-checker.d.ts +38 -0
- package/dist/src/core/utils/update-checker.d.ts.map +1 -0
- package/dist/src/core/utils/update-checker.js +213 -0
- package/dist/src/core/utils/update-checker.js.map +1 -0
- package/dist/src/core/worktree/worktree-manager.d.ts +110 -0
- package/dist/src/core/worktree/worktree-manager.d.ts.map +1 -0
- package/dist/src/core/worktree/worktree-manager.js +456 -0
- package/dist/src/core/worktree/worktree-manager.js.map +1 -0
- package/dist/src/features/analytics/api/analytics-api.d.ts +24 -0
- package/dist/src/features/analytics/api/analytics-api.d.ts.map +1 -0
- package/dist/src/features/analytics/api/analytics-api.js +289 -0
- package/dist/src/features/analytics/api/analytics-api.js.map +1 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts +29 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -0
- package/dist/src/features/analytics/core/analytics-service.js +275 -0
- package/dist/src/features/analytics/core/analytics-service.js.map +1 -0
- package/dist/src/features/analytics/index.d.ts +12 -0
- package/dist/src/features/analytics/index.d.ts.map +1 -0
- package/dist/src/features/analytics/index.js +11 -0
- package/dist/src/features/analytics/index.js.map +1 -0
- package/dist/src/features/analytics/queries/metrics-queries.d.ts +11 -0
- package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -0
- package/dist/src/features/analytics/queries/metrics-queries.js +240 -0
- package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -0
- package/dist/src/features/analytics/types/metrics.d.ts +60 -0
- package/dist/src/features/analytics/types/metrics.d.ts.map +1 -0
- package/dist/src/features/analytics/types/metrics.js +2 -0
- package/dist/src/features/analytics/types/metrics.js.map +1 -0
- package/dist/src/features/browser/browser-mcp.d.ts +94 -0
- package/dist/src/features/browser/browser-mcp.d.ts.map +1 -0
- package/dist/src/features/browser/browser-mcp.js +459 -0
- package/dist/src/features/browser/browser-mcp.js.map +1 -0
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts +5 -0
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +1 -0
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +712 -0
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js.map +1 -0
- package/dist/src/features/tasks/pebbles-task-store.d.ts +121 -0
- package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -0
- package/dist/src/features/tasks/pebbles-task-store.js +493 -0
- package/dist/src/features/tasks/pebbles-task-store.js.map +1 -0
- package/dist/src/features/tasks/task-aware-context.d.ts +103 -0
- package/dist/src/features/tasks/task-aware-context.d.ts.map +1 -0
- package/dist/src/features/tasks/task-aware-context.js +412 -0
- package/dist/src/features/tasks/task-aware-context.js.map +1 -0
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/browser-mcp.d.ts +94 -0
- package/dist/src/integrations/browser-mcp.d.ts.map +1 -0
- package/dist/src/integrations/browser-mcp.js +431 -0
- package/dist/src/integrations/browser-mcp.js.map +1 -0
- package/dist/src/integrations/linear/__tests__/auth.test.d.ts +5 -0
- package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +1 -0
- package/dist/src/integrations/linear/__tests__/auth.test.js +517 -0
- package/dist/src/integrations/linear/__tests__/auth.test.js.map +1 -0
- package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +5 -0
- package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +1 -0
- package/dist/src/integrations/linear/__tests__/sync-service.test.js +700 -0
- package/dist/src/integrations/linear/__tests__/sync-service.test.js.map +1 -0
- package/dist/src/integrations/linear/auth.d.ts +99 -0
- package/dist/src/integrations/linear/auth.d.ts.map +1 -0
- package/dist/src/integrations/linear/auth.js +319 -0
- package/dist/src/integrations/linear/auth.js.map +1 -0
- package/dist/src/integrations/linear/auto-sync.d.ts +77 -0
- package/dist/src/integrations/linear/auto-sync.d.ts.map +1 -0
- package/dist/src/integrations/linear/auto-sync.js +268 -0
- package/dist/src/integrations/linear/auto-sync.js.map +1 -0
- package/dist/src/integrations/linear/client.d.ts +113 -0
- package/dist/src/integrations/linear/client.d.ts.map +1 -0
- package/dist/src/integrations/linear/client.js +364 -0
- package/dist/src/integrations/linear/client.js.map +1 -0
- package/dist/src/integrations/linear/config.d.ts +51 -0
- package/dist/src/integrations/linear/config.d.ts.map +1 -0
- package/dist/src/integrations/linear/config.js +103 -0
- package/dist/src/integrations/linear/config.js.map +1 -0
- package/dist/src/integrations/linear/sync-service.d.ts +25 -0
- package/dist/src/integrations/linear/sync-service.d.ts.map +1 -0
- package/dist/src/integrations/linear/sync-service.js +198 -0
- package/dist/src/integrations/linear/sync-service.js.map +1 -0
- package/dist/src/integrations/linear/sync.d.ts +119 -0
- package/dist/src/integrations/linear/sync.d.ts.map +1 -0
- package/dist/src/integrations/linear/sync.js +538 -0
- package/dist/src/integrations/linear/sync.js.map +1 -0
- package/dist/src/integrations/linear/types.d.ts +75 -0
- package/dist/src/integrations/linear/types.d.ts.map +1 -0
- package/dist/src/integrations/linear/types.js +2 -0
- package/dist/src/integrations/linear/types.js.map +1 -0
- package/dist/src/integrations/linear/webhook-server.d.ts +32 -0
- package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -0
- package/dist/src/integrations/linear/webhook-server.js +188 -0
- package/dist/src/integrations/linear/webhook-server.js.map +1 -0
- package/dist/src/integrations/linear/webhook.d.ts +95 -0
- package/dist/src/integrations/linear/webhook.d.ts.map +1 -0
- package/dist/src/integrations/linear/webhook.js +204 -0
- package/dist/src/integrations/linear/webhook.js.map +1 -0
- package/dist/src/integrations/mcp/__tests__/server.test.d.ts +5 -0
- package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +1 -0
- package/dist/src/integrations/mcp/__tests__/server.test.js +790 -0
- package/dist/src/integrations/mcp/__tests__/server.test.js.map +1 -0
- package/dist/src/integrations/mcp/server.d.ts +46 -0
- package/dist/src/integrations/mcp/server.d.ts.map +1 -0
- package/dist/src/integrations/mcp/server.js +1264 -0
- package/dist/src/integrations/mcp/server.js.map +1 -0
- package/dist/src/mcp/mcp-server.d.ts +1 -0
- package/dist/src/mcp/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp/mcp-server.js +11 -0
- package/dist/src/mcp/mcp-server.js.map +1 -1
- package/dist/src/railway/index.d.ts +7 -0
- package/dist/src/railway/index.d.ts.map +1 -0
- package/dist/src/railway/index.js +401 -0
- package/dist/src/railway/index.js.map +1 -0
- package/dist/src/runway/auth/auth-middleware.d.ts +66 -0
- package/dist/src/runway/auth/auth-middleware.d.ts.map +1 -0
- package/dist/src/runway/auth/auth-middleware.js +337 -0
- package/dist/src/runway/auth/auth-middleware.js.map +1 -0
- package/dist/src/runway/server/runway-mcp-server.d.ts +46 -0
- package/dist/src/runway/server/runway-mcp-server.d.ts.map +1 -0
- package/dist/src/runway/server/runway-mcp-server.js +601 -0
- package/dist/src/runway/server/runway-mcp-server.js.map +1 -0
- package/dist/src/runway.bak/auth/auth-middleware.d.ts +66 -0
- package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +1 -0
- package/dist/src/runway.bak/auth/auth-middleware.js +337 -0
- package/dist/src/runway.bak/auth/auth-middleware.js.map +1 -0
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts +46 -0
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +1 -0
- package/dist/src/runway.bak/server/runway-mcp-server.js +601 -0
- package/dist/src/runway.bak/server/runway-mcp-server.js.map +1 -0
- package/dist/src/servers/production/auth-middleware.d.ts +66 -0
- package/dist/src/servers/production/auth-middleware.d.ts.map +1 -0
- package/dist/src/servers/production/auth-middleware.js +346 -0
- package/dist/src/servers/production/auth-middleware.js.map +1 -0
- package/dist/src/servers/railway/index.d.ts +7 -0
- package/dist/src/servers/railway/index.d.ts.map +1 -0
- package/dist/src/servers/railway/index.js +401 -0
- package/dist/src/servers/railway/index.js.map +1 -0
- package/dist/src/services/config-service.d.ts +44 -0
- package/dist/src/services/config-service.d.ts.map +1 -0
- package/dist/src/services/config-service.js +61 -0
- package/dist/src/services/config-service.js.map +1 -0
- package/dist/src/services/context-service.d.ts +17 -0
- package/dist/src/services/context-service.d.ts.map +1 -0
- package/dist/src/services/context-service.js +88 -0
- package/dist/src/services/context-service.js.map +1 -0
- package/dist/src/types/task.d.ts +17 -0
- package/dist/src/types/task.d.ts.map +1 -0
- package/dist/src/types/task.js +2 -0
- package/dist/src/types/task.js.map +1 -0
- package/dist/src/utils/logger.d.ts +13 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +52 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/package.json +40 -5
package/README.md
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
StackMemory is a **memory runtime** for AI coding and writing tools that preserves full project context across:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
- chat thread resets
|
|
8
|
+
- model switching
|
|
9
|
+
- editor restarts
|
|
10
|
+
- long-running repos with thousands of interactions
|
|
11
11
|
|
|
12
12
|
Instead of a linear chat log, StackMemory organizes memory as a **call stack** of scoped work (frames), allowing context to naturally unwind without lossy compaction.
|
|
13
13
|
|
|
@@ -19,16 +19,16 @@ Instead of a linear chat log, StackMemory organizes memory as a **call stack** o
|
|
|
19
19
|
|
|
20
20
|
Modern AI tools forget:
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
- why decisions were made
|
|
23
|
+
- which constraints still apply
|
|
24
|
+
- what changed earlier in the repo
|
|
25
|
+
- what tools already ran and why
|
|
26
26
|
|
|
27
27
|
StackMemory fixes this by:
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
- storing **everything losslessly** (events, tool calls, decisions)
|
|
30
|
+
- injecting only the **relevant working set** into model context
|
|
31
|
+
- keeping memory **project-scoped**, not chat-scoped
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -45,9 +45,9 @@ StackMemory fixes this by:
|
|
|
45
45
|
|
|
46
46
|
Frames can span:
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
- multiple chat turns
|
|
49
|
+
- multiple tool calls
|
|
50
|
+
- multiple sessions
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
@@ -55,19 +55,19 @@ Frames can span:
|
|
|
55
55
|
|
|
56
56
|
### Hosted (default)
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
- Cloud-backed memory runtime
|
|
59
|
+
- Fast indexing + retrieval
|
|
60
|
+
- Durable storage
|
|
61
|
+
- Per-project pricing
|
|
62
|
+
- Works out-of-the-box
|
|
63
63
|
|
|
64
64
|
### Open-source local mirror
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
- SQLite-based
|
|
67
|
+
- Fully inspectable
|
|
68
|
+
- Offline / air-gapped
|
|
69
|
+
- Intentionally **N versions behind**
|
|
70
|
+
- No sync, no org features
|
|
71
71
|
|
|
72
72
|
> OSS is for trust and inspection.
|
|
73
73
|
> Hosted is for scale, performance, and teams.
|
|
@@ -78,9 +78,9 @@ Frames can span:
|
|
|
78
78
|
|
|
79
79
|
StackMemory integrates as an **MCP tool** and is invoked on **every interaction** in:
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
- Claude Code
|
|
82
|
+
- compatible editors
|
|
83
|
+
- future MCP-enabled tools
|
|
84
84
|
|
|
85
85
|
The editor never manages memory directly — it simply asks StackMemory for the **context bundle**.
|
|
86
86
|
|
|
@@ -101,44 +101,87 @@ This creates a **project-scoped memory space** tied to the repo.
|
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
104
|
-
### Step 2: Install
|
|
104
|
+
### Step 2: Install StackMemory
|
|
105
105
|
|
|
106
106
|
```bash
|
|
107
|
-
npm install -g stackmemory
|
|
107
|
+
npm install -g @stackmemoryai/stackmemory@latest
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### Step 3: Setup Claude Code Integration (Automated)
|
|
111
113
|
|
|
112
114
|
```bash
|
|
113
|
-
|
|
115
|
+
# Automatic setup - configures MCP and session hooks
|
|
116
|
+
npm run claude:setup
|
|
114
117
|
```
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
This automatically:
|
|
117
120
|
|
|
118
|
-
|
|
121
|
+
- Creates `~/.claude/stackmemory-mcp.json` MCP configuration
|
|
122
|
+
- Sets up session initialization hooks
|
|
123
|
+
- Updates `~/.claude/config.json` with StackMemory integration
|
|
119
124
|
|
|
120
|
-
|
|
125
|
+
**Manual setup alternative:**
|
|
121
126
|
|
|
122
|
-
|
|
127
|
+
<details>
|
|
128
|
+
<summary>Click to expand manual setup steps</summary>
|
|
129
|
+
|
|
130
|
+
Create MCP configuration:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
mkdir -p ~/.claude
|
|
134
|
+
cat > ~/.claude/stackmemory-mcp.json << 'EOF'
|
|
123
135
|
{
|
|
124
|
-
"
|
|
136
|
+
"mcpServers": {
|
|
125
137
|
"stackmemory": {
|
|
126
|
-
"command": "stackmemory
|
|
127
|
-
"args": ["
|
|
138
|
+
"command": "stackmemory",
|
|
139
|
+
"args": ["mcp-server"],
|
|
140
|
+
"env": { "NODE_ENV": "production" }
|
|
128
141
|
}
|
|
129
142
|
}
|
|
130
143
|
}
|
|
144
|
+
EOF
|
|
131
145
|
```
|
|
132
146
|
|
|
133
|
-
|
|
147
|
+
Update Claude config:
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"mcp": {
|
|
152
|
+
"configFiles": ["~/.claude/stackmemory-mcp.json"]
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
```
|
|
134
156
|
|
|
135
|
-
|
|
157
|
+
</details>
|
|
136
158
|
|
|
137
|
-
|
|
138
|
-
2. Updates the call stack
|
|
139
|
-
3. Retrieves the correct context automatically
|
|
159
|
+
**That's it.**
|
|
140
160
|
|
|
141
|
-
|
|
161
|
+
Every Claude Code session now automatically:
|
|
162
|
+
|
|
163
|
+
1. **Captures all tool calls** - Bash, Edit, Read, Write operations get logged
|
|
164
|
+
2. **Maintains frame stack** - Task/subtask context persists across sessions
|
|
165
|
+
3. **References previous work** - Decisions, constraints, and artifacts automatically surface
|
|
166
|
+
4. **Syncs with Linear** - Bidirectional task synchronization when configured
|
|
167
|
+
|
|
168
|
+
Available MCP tools in Claude Code:
|
|
169
|
+
|
|
170
|
+
| Tool | Description |
|
|
171
|
+
| -------------------- | ------------------------------------------ |
|
|
172
|
+
| `get_context` | Retrieve relevant context for current work |
|
|
173
|
+
| `add_decision` | Record a decision with rationale |
|
|
174
|
+
| `start_frame` | Begin a new context frame |
|
|
175
|
+
| `close_frame` | Close current frame with summary |
|
|
176
|
+
| `create_task` | Create a new task |
|
|
177
|
+
| `update_task_status` | Update task status |
|
|
178
|
+
| `get_active_tasks` | List active tasks (with filters) |
|
|
179
|
+
| `get_task_metrics` | Get task analytics |
|
|
180
|
+
| `linear_sync` | Sync with Linear |
|
|
181
|
+
| `linear_update_task` | Update Linear issue |
|
|
182
|
+
| `linear_get_tasks` | Get tasks from Linear |
|
|
183
|
+
|
|
184
|
+
No prompts to manage. No summaries to babysit. Just seamless context continuity.
|
|
142
185
|
|
|
143
186
|
---
|
|
144
187
|
|
|
@@ -190,24 +233,20 @@ All project memory lives locally.
|
|
|
190
233
|
On every message/tool call:
|
|
191
234
|
|
|
192
235
|
1. **Ingest**
|
|
193
|
-
|
|
194
|
-
* New message delta is appended as events
|
|
236
|
+
- New message delta is appended as events
|
|
195
237
|
|
|
196
238
|
2. **Index**
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
* Digests generated when frames close
|
|
239
|
+
- Anchors updated
|
|
240
|
+
- Digests generated when frames close
|
|
200
241
|
|
|
201
242
|
3. **Retrieve**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
* Pointers to raw data (cold)
|
|
243
|
+
- Active call stack (hot)
|
|
244
|
+
- Relevant digests (warm)
|
|
245
|
+
- Pointers to raw data (cold)
|
|
206
246
|
|
|
207
247
|
4. **Return context bundle**
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
* No global compaction
|
|
248
|
+
- Sized to token budget
|
|
249
|
+
- No global compaction
|
|
211
250
|
|
|
212
251
|
---
|
|
213
252
|
|
|
@@ -236,37 +275,158 @@ On every message/tool call:
|
|
|
236
275
|
|
|
237
276
|
### Free tier (hosted)
|
|
238
277
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
278
|
+
- 1 project
|
|
279
|
+
- Up to **X MB stored**
|
|
280
|
+
- Up to **Y MB retrieval egress / month**
|
|
242
281
|
|
|
243
282
|
### Paid tiers
|
|
244
283
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
284
|
+
- Per-project pricing
|
|
285
|
+
- Higher storage + retrieval
|
|
286
|
+
- Team sharing
|
|
287
|
+
- Org controls
|
|
249
288
|
|
|
250
289
|
**No seat-based pricing.**
|
|
251
290
|
|
|
252
291
|
---
|
|
253
292
|
|
|
293
|
+
## Claude Code Integration
|
|
294
|
+
|
|
295
|
+
StackMemory can automatically save context when using Claude Code, ensuring your AI assistant always has access to previous context and decisions.
|
|
296
|
+
|
|
297
|
+
### Quick Setup
|
|
298
|
+
|
|
299
|
+
1. **Install the wrapper script**:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
# Make scripts executable
|
|
303
|
+
chmod +x scripts/claude-code-wrapper.sh scripts/stackmemory-daemon.sh
|
|
304
|
+
|
|
305
|
+
# Add alias to your shell config
|
|
306
|
+
echo 'alias claude="~/Dev/stackmemory/scripts/claude-code-wrapper.sh"' >> ~/.zshrc
|
|
307
|
+
source ~/.zshrc
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
2. **Use Claude Code with auto-save**:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Instead of: claude-code
|
|
314
|
+
# Use: claude
|
|
315
|
+
|
|
316
|
+
# Context is automatically saved on exit (Ctrl+C)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Integration Methods
|
|
320
|
+
|
|
321
|
+
#### 1. Shell Wrapper (Recommended)
|
|
322
|
+
|
|
323
|
+
Automatically saves context when Claude Code exits:
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# Basic usage
|
|
327
|
+
claude
|
|
328
|
+
|
|
329
|
+
# With Linear auto-sync (syncs every 5 minutes)
|
|
330
|
+
claude --auto-sync
|
|
331
|
+
|
|
332
|
+
# Custom sync interval (10 minutes)
|
|
333
|
+
claude --auto-sync --sync-interval=10
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
#### 2. Linear Auto-Sync Daemon
|
|
337
|
+
|
|
338
|
+
Continuously syncs with Linear in the background:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
# Start auto-sync (default: 5 minutes)
|
|
342
|
+
./scripts/linear-auto-sync.sh start
|
|
343
|
+
|
|
344
|
+
# Custom interval (10 minutes)
|
|
345
|
+
./scripts/linear-auto-sync.sh start 10
|
|
346
|
+
|
|
347
|
+
# Check status
|
|
348
|
+
./scripts/linear-auto-sync.sh status
|
|
349
|
+
|
|
350
|
+
# View logs
|
|
351
|
+
./scripts/linear-auto-sync.sh logs
|
|
352
|
+
|
|
353
|
+
# Stop daemon
|
|
354
|
+
./scripts/linear-auto-sync.sh stop
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
**Requirements:**
|
|
358
|
+
|
|
359
|
+
- Set `LINEAR_API_KEY` environment variable
|
|
360
|
+
- Run in a StackMemory-initialized project
|
|
361
|
+
|
|
362
|
+
#### 3. Background Daemon
|
|
363
|
+
|
|
364
|
+
Continuously saves context every 5 minutes:
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# Start daemon
|
|
368
|
+
./scripts/stackmemory-daemon.sh &
|
|
369
|
+
|
|
370
|
+
# Custom interval (60 seconds)
|
|
371
|
+
./scripts/stackmemory-daemon.sh 60 &
|
|
372
|
+
|
|
373
|
+
# Stop daemon
|
|
374
|
+
kill $(cat /tmp/stackmemory-daemon.pid)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
#### 4. Git Hooks
|
|
378
|
+
|
|
379
|
+
Save context automatically on git commits:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Install in current repo
|
|
383
|
+
./scripts/setup-git-hooks.sh
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
#### 5. Manual Function
|
|
387
|
+
|
|
388
|
+
Add to `~/.zshrc`:
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
claude_with_sm() {
|
|
392
|
+
claude "$@"
|
|
393
|
+
local exit_code=$?
|
|
394
|
+
if [ -d ".stackmemory" ]; then
|
|
395
|
+
stackmemory status
|
|
396
|
+
[ -n "$LINEAR_API_KEY" ] && stackmemory linear sync
|
|
397
|
+
fi
|
|
398
|
+
return $exit_code
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Features
|
|
403
|
+
|
|
404
|
+
- **Automatic context preservation** - Saves on exit (including Ctrl+C)
|
|
405
|
+
- **Linear auto-sync** - Continuous bidirectional sync with Linear
|
|
406
|
+
- **Smart detection** - Only runs in StackMemory-enabled projects
|
|
407
|
+
- **Zero overhead** - No performance impact during Claude Code sessions
|
|
408
|
+
- **Flexible sync intervals** - Configure sync frequency (default: 5 minutes)
|
|
409
|
+
- **Background operation** - Sync continues while you work
|
|
410
|
+
- **Comprehensive logging** - Track all sync operations
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
254
414
|
## Guarantees
|
|
255
415
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
416
|
+
- ✅ Lossless storage (no destructive compaction)
|
|
417
|
+
- ✅ Project-scoped isolation
|
|
418
|
+
- ✅ Survives new chat threads
|
|
419
|
+
- ✅ Survives model switching
|
|
420
|
+
- ✅ Inspectable local mirror
|
|
261
421
|
|
|
262
422
|
---
|
|
263
423
|
|
|
264
424
|
## Non-goals
|
|
265
425
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
426
|
+
- ❌ Chat UI
|
|
427
|
+
- ❌ Vector DB replacement
|
|
428
|
+
- ❌ Tool execution runtime
|
|
429
|
+
- ❌ Prompt engineering framework
|
|
270
430
|
|
|
271
431
|
---
|
|
272
432
|
|
|
@@ -278,40 +438,150 @@ On every message/tool call:
|
|
|
278
438
|
|
|
279
439
|
---
|
|
280
440
|
|
|
441
|
+
## CLI Commands Reference
|
|
442
|
+
|
|
443
|
+
StackMemory provides a comprehensive CLI for task management, context tracking, and Linear integration.
|
|
444
|
+
|
|
445
|
+
### Core Commands
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
stackmemory init # Initialize StackMemory in current project
|
|
449
|
+
stackmemory status # Show current StackMemory status
|
|
450
|
+
stackmemory progress # Show recent changes and progress
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### Task Management
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
# List tasks
|
|
457
|
+
stackmemory tasks list # List all active tasks
|
|
458
|
+
stackmemory tasks list --status pending # Filter by status
|
|
459
|
+
stackmemory tasks list --priority high # Filter by priority
|
|
460
|
+
stackmemory tasks list --query "bug" # Search in title/description
|
|
461
|
+
stackmemory tasks list --all # Include completed tasks
|
|
462
|
+
|
|
463
|
+
# Manage tasks
|
|
464
|
+
stackmemory task add "Fix login bug" --priority high --tags "bug,auth"
|
|
465
|
+
stackmemory task show <task-id> # Show task details
|
|
466
|
+
stackmemory task start <task-id> # Start working on task
|
|
467
|
+
stackmemory task done <task-id> # Mark task complete
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### Search
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
stackmemory search "analytics" # Search tasks and context
|
|
474
|
+
stackmemory search "api" --tasks # Search only tasks
|
|
475
|
+
stackmemory search "decision" --context # Search only context
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Activity Log
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
stackmemory log # View recent activity
|
|
482
|
+
stackmemory log --lines 50 # Show more entries
|
|
483
|
+
stackmemory log --type task # Filter by type (task, frame, event, sync)
|
|
484
|
+
stackmemory log --follow # Watch for changes in real-time
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### Context Stack Management
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
# View context
|
|
491
|
+
stackmemory context show # Show current context stack
|
|
492
|
+
stackmemory context show --verbose # Show detailed frame info
|
|
493
|
+
|
|
494
|
+
# Manage context frames
|
|
495
|
+
stackmemory context push "feature-work" --type task
|
|
496
|
+
stackmemory context push "debug-session" --type session
|
|
497
|
+
stackmemory context add decision "Using SQLite for storage"
|
|
498
|
+
stackmemory context add observation "API returns 404 on missing user"
|
|
499
|
+
stackmemory context pop # Pop top frame
|
|
500
|
+
stackmemory context pop --all # Clear entire stack
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### Analytics Dashboard
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
stackmemory analytics --view # Terminal dashboard
|
|
507
|
+
stackmemory analytics --port 3000 # Web dashboard
|
|
508
|
+
stackmemory analytics --sync # Sync before displaying
|
|
509
|
+
stackmemory analytics --export json # Export metrics as JSON
|
|
510
|
+
stackmemory analytics --export csv # Export as CSV
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
### Linear Integration
|
|
514
|
+
|
|
515
|
+
```bash
|
|
516
|
+
# Setup
|
|
517
|
+
stackmemory linear setup # OAuth setup
|
|
518
|
+
stackmemory linear status # Check connection
|
|
519
|
+
|
|
520
|
+
# Sync
|
|
521
|
+
stackmemory linear sync # Bidirectional sync
|
|
522
|
+
stackmemory linear sync --direction from_linear
|
|
523
|
+
stackmemory linear sync --direction to_linear
|
|
524
|
+
|
|
525
|
+
# Auto-sync
|
|
526
|
+
stackmemory linear auto-sync --start # Start background sync
|
|
527
|
+
stackmemory linear auto-sync --stop # Stop background sync
|
|
528
|
+
stackmemory linear auto-sync --status # Check sync status
|
|
529
|
+
|
|
530
|
+
# Update tasks
|
|
531
|
+
stackmemory linear update ENG-123 --status in-progress
|
|
532
|
+
stackmemory linear update ENG-123 --status done
|
|
533
|
+
|
|
534
|
+
# Configure
|
|
535
|
+
stackmemory linear config --show
|
|
536
|
+
stackmemory linear config --set-interval 15
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
### MCP Server
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
stackmemory mcp-server # Start MCP server for Claude
|
|
543
|
+
stackmemory mcp-server --port 3001 # Custom port
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
---
|
|
547
|
+
|
|
281
548
|
## Status
|
|
282
549
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
550
|
+
- Hosted: **Private beta**
|
|
551
|
+
- OSS mirror: **Early preview**
|
|
552
|
+
- MCP integration: **Stable**
|
|
553
|
+
- CLI: **v0.2.7** - Full task, context, and Linear management
|
|
286
554
|
|
|
287
555
|
---
|
|
288
556
|
|
|
289
557
|
## Roadmap (high level)
|
|
290
558
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
559
|
+
- Team / org projects
|
|
560
|
+
- Cross-repo memory
|
|
561
|
+
- Background project compilers
|
|
562
|
+
- Fine-grained retention policies
|
|
563
|
+
- Editor UX surfacing frame boundaries
|
|
296
564
|
|
|
297
565
|
---
|
|
298
566
|
|
|
299
567
|
## License
|
|
300
568
|
|
|
301
|
-
|
|
302
|
-
|
|
569
|
+
- Hosted service: Proprietary
|
|
570
|
+
- Open-source mirror: Apache 2.0 / MIT (TBD)
|
|
303
571
|
|
|
304
572
|
---
|
|
305
573
|
|
|
306
574
|
## Additional Resources
|
|
307
575
|
|
|
308
576
|
### ML System Design
|
|
577
|
+
|
|
309
578
|
- [ML System Insights](./ML_SYSTEM_INSIGHTS.md) - Comprehensive analysis of 300+ production ML systems
|
|
310
579
|
- [Agent Instructions](./AGENTS.md) - Specific guidance for AI agents working with ML systems
|
|
311
580
|
|
|
312
581
|
### Documentation
|
|
582
|
+
|
|
313
583
|
- [Product Requirements](./PRD.md) - Detailed product specifications
|
|
314
584
|
- [Technical Architecture](./TECHNICAL_ARCHITECTURE.md) - System design and database schemas
|
|
315
585
|
- [Beads Integration](./BEADS_INTEGRATION.md) - Git-native memory patterns from Beads ecosystem
|
|
316
586
|
|
|
317
|
-
---
|
|
587
|
+
---
|