You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .memory/decisions.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,16 @@ Memories stored by HackLM Memory.
30
30
31
31
-[gap-analysis-no-changelog] Gap analysis prompt forbids changelog/past-event suggestions. The LM must not suggest entries phrased as "last cleanup did X" or "removed Y yesterday".
32
32
33
-
-[category-limits-rationale] Instruction=15, Decision=20, others unchanged. Instructions and Decisions grow fastest on active projects. Context length is not the constraint — quality is.
33
+
-[open-source-license] Project is licensed under GPL-3.0-only. MIT removed. Both root LICENSE and extension/LICENSE hold the GPL v3 text. Both package.json files have "license": "GPL-3.0-only".
34
34
35
+
-[docs-site-zensical] Docs site uses Zensical (pip install zensical). Config in zensical.toml at repo root. Serve: .venv/Scripts/zensical.exe serve. Build: zensical build → site/. Deploys to GitHub Pages via .github/workflows/docs.yml on push to main.
35
36
36
-
-[model-resolution] Model resolution always happens inside lm.ts. Callers pass a family string or nothing. They never call vscode.lm.selectChatModels directly. This keeps fallback logic in one place.
37
+
38
+
-[globalstate-keys-file] All globalState keys live in extension/src/globalStateKeys.ts as named exports. Never use bare string literals for globalState keys elsewhere.
39
+
40
+
-[category-limits-source] CATEGORY_LIMITS constant removed from markdownStore.ts. Category limits come from VS Code config only (package.json defaults via config.get). Default fallback is hardcoded as 20 in utils.ts.
41
+
42
+
-[stale-slug-pruner-removed] pruneStaleEntries removed from cleanupMemory.ts. Stale slugs last-cleanup and last-session-debrief no longer exist. ADRs 0001 and 0013 deleted from docs/decisions/ as they documented completed migration periods.
43
+
44
+
45
+
-[adr-location] ADRs live in docs/decisions.md but are NOT in the Zensical nav. The nav has an ADR page (docs/adr.md) instead. That page links back to docs/decisions.md on GitHub.
Copy file name to clipboardExpand all lines: .memory/preferences.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,13 +28,17 @@ Memories stored by HackLM Memory.
28
28
29
29
-[globalstate-cleanup-log-key] The cleanup log is stored under a namespaced globalState key, same as all other extension state. Never write it to a bare key or a separate file outside globalState.
30
30
31
-
-[tree-view-message-on-empty] When a tree view has no data to show, set treeView.message to a short guidance string in code. This supplements viewsWelcome and handles dynamic empty states after initial load.
32
-
33
31
-[globalstate-keys-enumerated] All globalState key names are defined as constants in a single file. Never scatter bare string keys across modules.
34
32
35
33
-[tree-item-context-value] Every TreeItem that supports commands sets a contextValue string. Without it, when-clause conditions in package.json menus cannot target that item type.
36
34
35
+
-[globalstate-keys] All globalState key constants live in one file. No module defines its own key inline. Import from the constants file or the key does not exist.
37
36
38
-
-[dedup-cleanup-thresholds] Dedup thresholds and cleanup merge thresholds serve different purposes. Never unify them into a single constant. Write thresholds guard against storing duplicates. Cleanup thresholds control when stored entries get merged or removed.
37
+
-[docs-site-local-serve] Run the docs site locally with .venv/Scripts/zensical.exe serve. Build the static output with zensical build. Output goes to site/. Never commit the site/ directory.
38
+
39
+
-[adr-link-to-adrs] The ADR page (docs/adr.md) links to docs/decisions.md for the full ADR list. Keep that link current when new ADRs are added.
40
+
41
+
-[node-protocol-imports] Use node: protocol for built-in imports (node:fs/promises, node:path). Never import bare 'fs/promises' or 'path'.
42
+
43
+
-[lm-model-resolution-centralized] Model selection and resolution happen only in lm.ts. No other module calls selectChatModels directly. Import the resolved model from lm.ts or do not use it.
39
44
40
-
-[globalstate-keys] All globalState key constants live in one file. No module defines its own key inline. Import from the constants file or the key does not exist.
Copy file name to clipboardExpand all lines: .memory/quirks.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,5 +6,6 @@ Memories stored by HackLM Memory.
6
6
7
7
-[tree-item-id] Every TreeItem must have a stable unique id set explicitly. Without it, VS Code cannot preserve reveal state or selection across refreshes.
8
8
9
-
10
9
-[empty-justification] Passing an empty options object to sendRequest suppresses the justification string in the VS Code permission prompt. The user sees a blank reason. Always pass a justification.
10
+
11
+
-[adr-location] ADRs live in docs/decisions.md (a single flat file, not a directory). No separate per-ADR files. Add new ADRs as new H2 sections at the bottom of that file.
0 commit comments