Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
a397886
feat: add XML tool calling support as provider setting
jthweny Mar 21, 2026
1ce143a
fix: add useXmlToolCalling i18n keys to all locales
jthweny Mar 21, 2026
4269390
fix: add useXmlToolCalling keys to advancedSettings in all locale set…
jthweny Mar 21, 2026
c0877f3
feat: add useXmlToolCalling support to all providers
jthweny Mar 21, 2026
8a6d111
fix: improve XML tool calling reliability across providers
jthweny Mar 21, 2026
116061a
fix: update tests and snapshots for compact XML tool descriptions
jthweny Mar 22, 2026
1977f54
chore: remove unused xml-tool-descriptions.ts (knip)
jthweny Mar 22, 2026
fe27805
fix: update test assertions for missing tool_use.id error message
jthweny Mar 22, 2026
5e02378
docs: add intelligent memory system design spec
jthweny Mar 22, 2026
f563508
docs: address spec review feedback — sql.js, schema versioning, PII f…
jthweny Mar 22, 2026
5fbe17d
docs: add intelligent memory system implementation plan
jthweny Mar 22, 2026
98d6d31
feat: add three specialized subagents for intelligent memory system i…
jthweny Mar 22, 2026
93b4f25
feat(memory): add types and interfaces for intelligent memory system
jthweny Mar 22, 2026
d021796
feat(memory): add scoring module with decay and reinforcement formulas
jthweny Mar 22, 2026
b999753
feat(memory): add types and message preprocessor with noise filtering
jthweny Mar 22, 2026
1407657
feat(memory): add memory learning settings and message types
jthweny Mar 22, 2026
7ad6d0d
feat(memory): add prompt compiler for system prompt and analysis agen…
jthweny Mar 22, 2026
1969e48
feat(memory): add SQLite memory store via sql.js with schema versioning
jthweny Mar 22, 2026
2891cfe
feat(memory): add analysis agent with LLM invocation and response par…
jthweny Mar 22, 2026
0fe62ef
feat(memory): inject user profile section into system prompt
jthweny Mar 22, 2026
e63276b
feat(memory): add memory writer with PII filter, dedup, and workspace…
jthweny Mar 22, 2026
2f5eb45
feat(memory): add pipeline orchestrator with triggers, concurrency gu…
jthweny Mar 22, 2026
3f44db8
feat(memory): integrate orchestrator with extension host and message …
jthweny Mar 22, 2026
673cdbc
feat(memory): add memory learning toggle indicator to chat UI
jthweny Mar 22, 2026
0a8ac63
feat(memory): add memory learning settings section to SettingsView
jthweny Mar 22, 2026
2f2226e
feat(memory): add memory learning settings section to SettingsView
jthweny Mar 22, 2026
ef1482a
build: ensure sql.js WASM files are bundled in extension dist
jthweny Mar 22, 2026
5201e29
feat: add 8 verification and cleanup subagents for memory system
jthweny Mar 22, 2026
9fa6f0d
test(memory): add E2E tests for full pipeline, scoring, workspace sco…
jthweny Mar 22, 2026
df96e99
fix(memory): resolve type errors in src/core/memory
jthweny Mar 22, 2026
7961bff
fix(memory): resolve cross-agent type mismatches and add JSDoc
jthweny Mar 22, 2026
a7126a7
feat(memory): add personality traits system and frontend integration
jthweny Mar 22, 2026
6b80262
fix(memory): wire missing state flow and pipeline triggers
jthweny Mar 22, 2026
a55ea3e
docs: add memory sync spec and 5 new subagents
jthweny Mar 22, 2026
6fc24a7
fix(memory): resolve memory-specific provider profile instead of main…
jthweny Mar 22, 2026
effe896
Add deleteAllEntries() to MemoryStore
jthweny Mar 22, 2026
a4af083
feat(memory): add MemoryChatPicker dialog component
jthweny Mar 22, 2026
e136127
Add batchAnalyzeHistory() and clearAllMemory() to MemoryOrchestrator
jthweny Mar 22, 2026
0a26055
Add memory sync message types to WebviewMessage and ExtensionMessage
jthweny Mar 22, 2026
1644707
test(memory): add tests for clearAllMemory and provider-null guard
jthweny Mar 22, 2026
6e3dd14
Add startMemorySync and clearMemory message handlers
jthweny Mar 22, 2026
47aee65
feat(memory): add prior chat sync UI with progress and clear memory
jthweny Mar 22, 2026
83c9faa
docs: add memory debugging spec for system prompt, sync persistence, …
jthweny Mar 22, 2026
4a2895b
Fix system prompt preview missing memory profile section
jthweny Mar 22, 2026
6e80dcc
Add [Memory] debug logging to analysis pipeline
jthweny Mar 22, 2026
9c73980
fix: resolve race condition where memory store is queried before init…
jthweny Mar 22, 2026
4b4efcd
fix(memory): harden prompt compiler token cap and raise to 2000
jthweny Mar 22, 2026
e1010ca
fix: guard against concurrent memory syncs causing flickering
jthweny Mar 22, 2026
40f4e63
fix: persist memory sync progress bar across settings tab switches
jthweny Mar 22, 2026
cd4ecc8
feat(memory): auto-refresh memory status after sync/clear actions
jthweny Mar 22, 2026
cc05554
feat(memory): add visual feedback for memory status in Settings and c…
jthweny Mar 22, 2026
30d5af2
fix: resolve lint warnings in PersonalityTraitsPanel
jthweny Mar 22, 2026
1e43390
fix: guard MemoryChatPicker against undefined taskHistory in tests
jthweny Mar 22, 2026
4bdf50c
docs: add multi-orchestrator mode design spec
jthweny Mar 22, 2026
9c9efa0
docs: rewrite multi-orchestrator spec with full per-agent task instru…
jthweny Mar 22, 2026
aba3af3
feat(multi-orch): add shared types and constants
jthweny Mar 22, 2026
5a7d55f
feat(multi-orch): add message types and global settings
jthweny Mar 22, 2026
8b5a571
feat(multi-orch): add multi-orchestrator mode definition
jthweny Mar 22, 2026
175707c
feat(multi-orch): add agent count selector to chat area for multi-orc…
jthweny Mar 22, 2026
bd3d185
feat(multi-orch): add worktree manager for agent isolation
jthweny Mar 22, 2026
5b82735
feat(multi-orch): add report aggregator for unified result formatting
jthweny Mar 22, 2026
c04d89c
feat(multi-orch): add panel spawner for parallel agent tab panels
jthweny Mar 22, 2026
ce1faeb
feat(multi-orch): add status panel and plan review panel components
jthweny Mar 22, 2026
2b90de6
feat(multi-orch): add LLM-powered plan generator for task decomposition
jthweny Mar 22, 2026
94d9f9a
feat(multi-orch): add top-level orchestrator coordinating full lifecycle
jthweny Mar 22, 2026
7c76d6f
feat(multi-orch): add message handlers for plan, approve, abort, and …
jthweny Mar 22, 2026
b5f2859
test(multi-orch): add unit tests for types, plan generator, and repor…
jthweny Mar 22, 2026
1aa2eba
feat(multi-orch): add multi-orchestrator settings section
jthweny Mar 22, 2026
d7bf0c1
feat: add getOrCreateMultiOrchestrator factory to ClineProvider
jthweny Mar 22, 2026
4784c50
fix(multi-orch): wire full message chain between extension and webview
jthweny Mar 22, 2026
ed966a1
Add E2E integration tests for multi-orchestrator subsystem
jthweny Mar 22, 2026
d1c8798
fix: resolve test failures from personality traits update and MemoryS…
jthweny Mar 22, 2026
7a73a84
fix: getMultiOrchestrator now lazily creates the instance on-demand
jthweny Mar 22, 2026
c4a1958
fix: persist multi-orchestrator settings across webview reloads
jthweny Mar 22, 2026
1dd470f
fix: multi-orchestrator send path bypasses standard task guards
jthweny Mar 22, 2026
0c3e9cf
fix(multi-orchestrator): prevent architect mode from running as paral…
jthweny Mar 22, 2026
1cf3e6f
fix(multi-orchestrator): smarter task decomposition to avoid over-spl…
jthweny Mar 22, 2026
cc24b3c
fix: enforce agent count limit in multi-orchestrator
jthweny Mar 22, 2026
e666071
fix: switch spawned agent panels to correct mode before task creation
jthweny Mar 22, 2026
11941dd
debug: add MultiOrch tracing logs across the full agent-count pipeline
jthweny Mar 22, 2026
b020f0d
fix: enable auto-approval for spawned multi-orchestrator agent panels
jthweny Mar 22, 2026
bb21c14
debug: add extensive logging and robustness to plan-generator
jthweny Mar 22, 2026
a07d7ea
fix: harden PanelSpawner error handling, disposal, and ViewColumn safety
jthweny Mar 22, 2026
dda1a66
debug: add [MultiOrch:Handler] tracing across full Enter-to-execute flow
jthweny Mar 22, 2026
9b27f86
fix: add missing contextTokens to makeTokenUsage in e2e tests
jthweny Mar 22, 2026
ac7481d
fix(multi-orchestrator): close race conditions in agent startup lifec…
jthweny Mar 22, 2026
033d205
fix: align multi-orchestrator tests with updated plan-generator imple…
jthweny Mar 22, 2026
13e0d42
fix: wire MultiOrchStatusPanel and PlanReviewPanel into ChatView main…
jthweny Mar 22, 2026
a282304
docs: add multi-orchestrator debugging spec for agent count, parallel…
jthweny Mar 22, 2026
4b60c92
fix: remove short-request heuristic that overrode user's agent count
jthweny Mar 22, 2026
4f2203d
fix: parallelize panel spawning and task creation in multi-orchestrator
jthweny Mar 22, 2026
9edf375
debug(multi-orch): add diagnostic logging for spawned task failure in…
jthweny Mar 22, 2026
ac1bd80
fix: resolve multi-orchestrator auto-approval by using per-provider o…
jthweny Mar 22, 2026
2158d18
fix(multi-orch): use ViewColumn.Beside for panel placement, sequentia…
jthweny Mar 22, 2026
161bcff
fix(multi-orch): force exact agent count from user selection
jthweny Mar 22, 2026
ba99070
fix(multi-orch): force-approve ALL operations in spawned agent panels
jthweny Mar 22, 2026
33ffa3c
fix(multi-orch): prevent task completion loop by excluding resume ask…
jthweny Mar 23, 2026
ca73a7c
fix(multi-orch): wire worktree paths to spawned provider working dire…
jthweny Mar 23, 2026
17c4553
fix(multi-orch): stop task completion loop + add agent system prompt
jthweny Mar 23, 2026
e7d910d
fix(multi-orch): close panels after completion + capture agent reports
jthweny Mar 23, 2026
02b8581
feat(multi-orch): use vscode.setEditorLayout for proper N-column pane…
jthweny Mar 23, 2026
135c26e
docs: create Multi-Orchestrator Master Spec (living document)
jthweny Mar 23, 2026
b8c6a13
fix(multi-orch): BUG-002 — fire all agent start() calls simultaneously
jthweny Mar 23, 2026
8a20a6c
fix(multi-orch): BUG-003 — use focusNextGroup to place panels in corr…
jthweny Mar 23, 2026
09dc855
fix(multi-orch): thread ViewColumn to DiffViewProvider to fix BUG-001
jthweny Mar 23, 2026
0b05564
fix(BUG-005): suppress approve/deny button flicker in multi-orch agen…
jthweny Mar 23, 2026
15a0fb6
feat(multi-orch): add post-completion verification phase (FEAT-001)
jthweny Mar 23, 2026
d272928
fix: verification sweep — fix test failures and missing type export
jthweny Mar 23, 2026
94771f7
fix(multi-orch): use actual ViewColumn from panel, not symbolic value
jthweny Mar 23, 2026
ec9027d
docs: update master spec — BUG-001 and BUG-002 marked as fixed
jthweny Mar 23, 2026
f037640
fix(multi-orch): stagger agent starts + suppress diff views in agent …
jthweny Mar 23, 2026
7d5a867
docs: create exhaustive multi-orchestrator bug report and engineering…
jthweny Mar 23, 2026
f78cb0b
docs: add Bug #21 — finished sub-tasks don't flow back to multi-orche…
jthweny Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions .cursor/agents/memory-batch-backend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
name: memory-batch-backend
description: Add batch analysis pipeline for prior chat history sync. Implements batchAnalyzeHistory() on the orchestrator, clearAllMemory(), new message types, and message handlers. Use for the prior chat sync backend.
---

You build the backend for the prior chat sync feature.

## Spec

Read: `docs/superpowers/specs/2026-03-22-memory-sync-and-provider-fix.md`

## Your Tasks

### 1. Add `deleteAllEntries()` to MemoryStore

In `src/core/memory/memory-store.ts`, add:
```typescript
deleteAllEntries(): void {
this.db!.run("DELETE FROM memory_entries")
this.db!.run("DELETE FROM analysis_log")
this.persist()
}
```

### 2. Add `batchAnalyzeHistory()` and `clearAllMemory()` to Orchestrator

In `src/core/memory/orchestrator.ts`, add:

```typescript
async batchAnalyzeHistory(
taskIds: string[],
globalStoragePath: string,
providerSettings: ProviderSettings,
onProgress: (completed: number, total: number) => void,
): Promise<{ totalAnalyzed: number; entriesCreated: number; entriesReinforced: number }> {
// Import readApiMessages from task-persistence
// For each taskId: read messages, preprocess, analyze, write
// Call onProgress after each task
// Run garbageCollect at the end
}

clearAllMemory(): void {
this.store.deleteAllEntries()
}
```

You'll need to import `readApiMessages` from `../../core/task-persistence/apiMessages` (check the exact import path).

### 3. Add message types

In `packages/types/src/vscode-extension-host.ts`:

Add to WebviewMessage type union:
- `"startMemorySync"`
- `"clearMemory"`

Add to ExtensionMessage type union:
- `"memorySyncProgress"`
- `"memorySyncComplete"`
- `"memoryCleared"`

### 4. Add message handlers

In `src/core/webview/webviewMessageHandler.ts`, add before `default:`:

```typescript
case "startMemorySync": {
const { taskIds } = JSON.parse(message.text || "{}") as { taskIds: string[] }
const orchestrator = provider.getMemoryOrchestrator()
if (!orchestrator) break

const memoryConfigId = provider.getValue("memoryApiConfigId")
if (!memoryConfigId) break

try {
const { name: _, ...memSettings } = await provider.providerSettingsManager.getProfile({
id: memoryConfigId,
})

const globalStoragePath = provider.contextProxy.globalStorageUri.fsPath

orchestrator.batchAnalyzeHistory(
taskIds,
globalStoragePath,
memSettings,
(completed, total) => {
provider.postMessageToWebview({
type: "memorySyncProgress",
text: JSON.stringify({ completed, total }),
})
},
).then((result) => {
provider.postMessageToWebview({
type: "memorySyncComplete",
text: JSON.stringify(result),
})
}).catch(() => {
provider.postMessageToWebview({
type: "memorySyncComplete",
text: JSON.stringify({ totalAnalyzed: 0, entriesCreated: 0, entriesReinforced: 0 }),
})
})
} catch {
// Profile not found
}
break
}

case "clearMemory": {
const orchestrator = provider.getMemoryOrchestrator()
if (orchestrator) {
orchestrator.clearAllMemory()
await provider.postMessageToWebview({ type: "memoryCleared" })
}
break
}
```

## Key References

- `readApiMessages({ taskId, globalStoragePath })` — from `src/core/task-persistence/apiMessages.ts`
- `preprocessMessages()` — from `./preprocessor`
- `runAnalysis()` — from `./analysis-agent`
- `processObservations()` — from `./memory-writer`
- `compileMemoryForAgent()` — from `./prompt-compiler`

Commit after each sub-task. Use `--no-verify` on commits.
33 changes: 33 additions & 0 deletions .cursor/agents/memory-build-verifier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: memory-build-verifier
description: Build pipeline verifier for the Intelligent Memory System. Ensures the extension builds, bundles correctly, sql.js WASM is included in dist, and esbuild externals are configured. Use for build verification.
---

You are a build and packaging specialist for VS Code extensions.

## Your Job

1. Run `pnpm build` from the workspace root
2. Check that `src/dist/extension.js` is generated without errors
3. Verify `src/dist/sql-wasm.wasm` exists (copied by `copyWasms` in `packages/build/src/esbuild.ts`)
4. Check that `sql.js` is NOT in the esbuild `external` array (it should be bundled, only the WASM is external)
5. Verify the memory-store's `locateFile` correctly resolves in the bundled output

## Key Files

- `src/esbuild.mjs` — main esbuild config, line 106: `external: ["vscode", "esbuild", "global-agent"]`
- `packages/build/src/esbuild.ts` — `copyWasms()` function that copies WASM files to dist
- `src/core/memory/memory-store.ts` — `initSqlJs({ locateFile })` that must find `sql-wasm.wasm`

## Troubleshooting

- If build fails with "Could not resolve sql.js": it's not installed in `src/` workspace. Run `cd src && pnpm add sql.js`
- If WASM not in dist: check `copyWasms()` in `packages/build/src/esbuild.ts` for the sql.js section
- If `require.resolve` fails in build: sql.js may need to be in esbuild externals
- If extension crashes on load: the `locateFile` path resolution may be wrong for the bundled environment

## Rules

- Never modify memory system functionality — only fix build/packaging issues
- Commit: `build(memory): fix {issue}`
- Use `--no-verify` on commits
82 changes: 82 additions & 0 deletions .cursor/agents/memory-chat-picker-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
name: memory-chat-picker-ui
description: Build the MemoryChatPicker dialog component for selecting prior chats to analyze. A scrollable checklist of past conversations with Select All, selection count, and Learn button.
---

You build the chat picker dialog for the prior chat sync feature.

## Spec

Read: `docs/superpowers/specs/2026-03-22-memory-sync-and-provider-fix.md`

## Your Task

Create `webview-ui/src/components/settings/MemoryChatPicker.tsx`

### Component

A Radix `Dialog` containing a scrollable list of prior chats with checkboxes.

```typescript
interface MemoryChatPickerProps {
open: boolean
onOpenChange: (open: boolean) => void
taskHistory: Array<{ id: string; task: string; ts: number }>
onStartSync: (taskIds: string[]) => void
isSyncing: boolean
}
```

### Layout

```
┌─────────────────────────────────────────┐
│ Select Chats to Analyze [X] │
│─────────────────────────────────────────│
│ ☑ Select All 12 of 47 selected │
│─────────────────────────────────────────│
│ ☑ Fix the auth bug in login... │
│ 2 hours ago │
│ ☑ Add dark mode to settings... │
│ Yesterday │
│ ☐ Update deps and run tests... │
│ 3 days ago │
│ ☐ Refactor the API layer... │
│ Last week │
│ ... (scrollable) │
│─────────────────────────────────────────│
│ [Cancel] [Learn] │
└─────────────────────────────────────────┘
```

### Patterns to Follow

- Use `Dialog`, `DialogContent`, `DialogHeader`, `DialogTitle`, `DialogFooter` from `webview-ui/src/components/ui/dialog.tsx`
- Use `Checkbox` from `webview-ui/src/components/ui/checkbox.tsx`
- Use `Button` with `variant="primary"` for Learn, `variant="secondary"` for Cancel
- Follow the selection pattern from `webview-ui/src/components/history/HistoryView.tsx` (lines 229-250) — `selectedTaskIds` state array, `toggleSelectAll` handler
- Use `formatTimeAgo` from existing utils if available, or compute relative time
- Style with VS Code CSS vars (`--vscode-input-background`, etc.)
- Scrollable area: `max-h-[400px] overflow-y-auto`
- Disable Learn button when `isSyncing` or no chats selected

### State

```typescript
const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set())

const toggleItem = (id: string, checked: boolean) => {
setSelectedIds(prev => {
const next = new Set(prev)
checked ? next.add(id) : next.delete(id)
return next
})
}

const toggleAll = (checked: boolean) => {
setSelectedIds(checked ? new Set(taskHistory.map(t => t.id)) : new Set())
}
```

Commit: `feat(memory): add MemoryChatPicker dialog component`
Use `--no-verify` on commits.
44 changes: 44 additions & 0 deletions .cursor/agents/memory-cleanup-agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: memory-cleanup-agent
description: Code cleanup and polish agent for the Intelligent Memory System. Removes dead code, duplicate files, unnecessary comments, normalizes code style, and ensures production readiness. Use as the final step before merge.
---

You are a code cleanup and polish specialist. Your job is to make the memory system production-ready.

## Your Job

### 1. Remove Dead Code
- Unused imports in all `src/core/memory/` files
- Unused variables or functions
- Commented-out code blocks
- Console.log statements that should be removed (keep console.error for actual error handling)

### 2. Normalize Code Style
- Match the existing codebase style (check other files in `src/core/` for reference)
- Consistent use of tabs vs spaces (this project uses tabs)
- Consistent quote style (double quotes based on tsconfig/eslint)
- Consistent trailing commas

### 3. Documentation
- Add JSDoc comments to public functions/classes (one line is fine)
- Ensure the analysis agent's system prompt is clean and well-formatted
- Remove any `// src/core/memory/...` path comments at the top of files (a common agent artifact)

### 4. Remove Agent Artifacts
- Lines like `// Created by memory-data-layer agent`
- Duplicate `// src/core/memory/filename.ts` comments
- Extra blank lines at the start of files
- Trailing whitespace

### 5. Verify No Secrets
- Check that no API keys, tokens, or passwords exist in any memory system file
- Check that PII_PATTERNS in memory-writer.ts are the correct regex patterns
- Ensure no hardcoded file paths that are machine-specific

## Rules

- Run `cd src && npx eslint core/memory/ --ext=ts --fix` first for auto-fixable issues
- Then manual cleanup
- Commit: `chore(memory): clean up {description}`
- Use `--no-verify` on commits
- This is the LAST step — everything should compile, all tests should pass, before you start
55 changes: 55 additions & 0 deletions .cursor/agents/memory-consistency-checker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
name: memory-consistency-checker
description: Cross-module consistency checker for the Intelligent Memory System. Verifies all imports resolve, exports match consumers, interface contracts are honored, and no stubs remain. Use for final consistency validation.
---

You are a codebase consistency analyst. Your job is to verify that all parts of the Intelligent Memory System are wired together correctly.

## Your Job

### 1. Import/Export Verification
For every file in `src/core/memory/`, check:
- Every `import { X } from "./Y"` — does Y actually export X?
- Every `export` — is it consumed by at least one other file?
- Are there circular imports?

### 2. Interface Contract Verification
Check that consumers match producers:
- `orchestrator.ts` calls `MemoryStore` methods — do the method signatures match?
- `orchestrator.ts` calls `processObservations()` — does the signature match `memory-writer.ts`?
- `orchestrator.ts` calls `runAnalysis()` — does the signature match `analysis-agent.ts`?
- `ClineProvider.ts` calls `MemoryOrchestrator` methods — do they exist?
- `webviewMessageHandler.ts` calls `provider.getMemoryOrchestrator()` — is it defined?
- `system.ts` accepts `userProfileSection` — is it passed from the caller?

### 3. Stub Detection
Check if any files contain stub/placeholder code:
- Search for `// TODO`, `// STUB`, `throw new Error("not implemented")`
- Check if `memory-store.ts`, `memory-writer.ts` are real implementations or stubs
- Check if `orchestrator.ts` has all methods the plan specifies

### 4. Type Flow
- Verify `globalSettingsSchema` has all 4 memory fields
- Verify `WebviewMessage` type has `toggleMemoryLearning` and `updateMemorySettings`
- Verify `ExtensionMessage` type has `memoryLearningState`
- Verify `ChatTextArea` destructures `memoryLearningEnabled` and `memoryApiConfigId`

### 5. Config Flow
- Trace: user toggles in ChatTextArea → posts message → handler in webviewMessageHandler → updates globalState → orchestrator.setEnabled()
- Trace: settings saved in SettingsView → cachedState → save handler → globalState

## Output

Report each issue found with:
- File and line number
- What's wrong
- Suggested fix

Then fix each issue, commit, and re-verify.

## Rules

- Read files thoroughly — don't guess
- Use `grep` to find all consumers of each export
- Commit: `fix(memory): resolve consistency issue in {description}`
- Use `--no-verify` on commits
Loading
Loading