dreamcontext 0.13.1 → 0.14.1

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.
Files changed (124) hide show
  1. package/README.md +14 -1
  2. package/dist/dashboard/assets/{BrainCanvas3D-f5Y6PT-1.js → BrainCanvas3D-iDGz4HV0.js} +1 -1
  3. package/dist/dashboard/assets/{_baseUniq-Ta62vsP4.js → _baseUniq-BKTLnguK.js} +1 -1
  4. package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-jzxJ_ECp.js → ar-SA-G6X2FPQ2-WxRw8CvG.js} +1 -1
  5. package/dist/dashboard/assets/{arc-D-o-9UoH.js → arc-CXFvfgn5.js} +1 -1
  6. package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-DiKlGJXZ.js → architectureDiagram-Q4EWVU46-CgpaMT3q.js} +1 -1
  7. package/dist/dashboard/assets/{az-AZ-76LH7QW2-BL9xCgsH.js → az-AZ-76LH7QW2-Tml7S2e-.js} +1 -1
  8. package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Ry_R9evo.js → bg-BG-XCXSNQG7-C3fv9p_Z.js} +1 -1
  9. package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-RsaId3-k.js → blockDiagram-DXYQGD6D-CeVR1IHD.js} +1 -1
  10. package/dist/dashboard/assets/{bn-BD-2XOGV67Q-CUgI7mYR.js → bn-BD-2XOGV67Q-qnJuYH4H.js} +1 -1
  11. package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-DPghs0tx.js → c4Diagram-AHTNJAMY-xcFu2zZM.js} +1 -1
  12. package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-BRaiYGc1.js → ca-ES-6MX7JW3Y-4tyHbEgd.js} +1 -1
  13. package/dist/dashboard/assets/channel-CTaS69UP.js +1 -0
  14. package/dist/dashboard/assets/{chunk-4BX2VUAB-O7GB9cgM.js → chunk-4BX2VUAB-J7mFJb__.js} +1 -1
  15. package/dist/dashboard/assets/{chunk-4TB4RGXK-BQOhV1JT.js → chunk-4TB4RGXK-DqrxE_QA.js} +1 -1
  16. package/dist/dashboard/assets/{chunk-55IACEB6-DhAIH--W.js → chunk-55IACEB6-D8eCITwq.js} +1 -1
  17. package/dist/dashboard/assets/{chunk-EDXVE4YY-Chs7mD-k.js → chunk-EDXVE4YY-DBzJ4Kk6.js} +1 -1
  18. package/dist/dashboard/assets/{chunk-FMBD7UC4-BowamHD9.js → chunk-FMBD7UC4-5rx_crEA.js} +1 -1
  19. package/dist/dashboard/assets/{chunk-OYMX7WX6-D8UJr8j4.js → chunk-OYMX7WX6-CLE6jH1t.js} +1 -1
  20. package/dist/dashboard/assets/{chunk-QZHKN3VN-BOqj47Nb.js → chunk-QZHKN3VN-OS-irsoP.js} +1 -1
  21. package/dist/dashboard/assets/{chunk-YZCP3GAM-UDOQPnhm.js → chunk-YZCP3GAM-Bucdr9No.js} +1 -1
  22. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DYWavBQh.js +1 -0
  23. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DYWavBQh.js +1 -0
  24. package/dist/dashboard/assets/clone-Dpdgvgqp.js +1 -0
  25. package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-D-2ct0N_.js → cose-bilkent-S5V4N54A-0zXaPrUS.js} +1 -1
  26. package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-y64ojEgs.js → cs-CZ-2BRQDIVT-BTejWsyZ.js} +1 -1
  27. package/dist/dashboard/assets/{da-DK-5WZEPLOC-CuGITxZe.js → da-DK-5WZEPLOC-DWf9m3vM.js} +1 -1
  28. package/dist/dashboard/assets/{dagre-KV5264BT-Cl90-nVJ.js → dagre-KV5264BT-B_fWcb4P.js} +1 -1
  29. package/dist/dashboard/assets/{de-DE-XR44H4JA-C4yUFwSz.js → de-DE-XR44H4JA-6DFCnmxt.js} +1 -1
  30. package/dist/dashboard/assets/{diagram-5BDNPKRD-CifW537A.js → diagram-5BDNPKRD-BDjjAQT6.js} +1 -1
  31. package/dist/dashboard/assets/{diagram-G4DWMVQ6-JF8e4CmK.js → diagram-G4DWMVQ6-CgDZIIvU.js} +1 -1
  32. package/dist/dashboard/assets/{diagram-MMDJMWI5-CYpfsP8h.js → diagram-MMDJMWI5-OsjvtQBN.js} +1 -1
  33. package/dist/dashboard/assets/{diagram-TYMM5635-b9Z_ORTT.js → diagram-TYMM5635-DOB390r8.js} +1 -1
  34. package/dist/dashboard/assets/{el-GR-BZB4AONW-CgIyu6Mx.js → el-GR-BZB4AONW-BCXqQAzU.js} +1 -1
  35. package/dist/dashboard/assets/{erDiagram-SMLLAGMA-HTrqyUnO.js → erDiagram-SMLLAGMA-uT8z1D4S.js} +1 -1
  36. package/dist/dashboard/assets/{es-ES-U4NZUMDT-g-shI88D.js → es-ES-U4NZUMDT-daNwi4rl.js} +1 -1
  37. package/dist/dashboard/assets/{eu-ES-A7QVB2H4-DRfvnooC.js → eu-ES-A7QVB2H4-CP2B7v-S.js} +1 -1
  38. package/dist/dashboard/assets/{fa-IR-HGAKTJCU-KqJ-bb8r.js → fa-IR-HGAKTJCU-B7fyLZjD.js} +1 -1
  39. package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-Ccm3nZmM.js → fi-FI-Z5N7JZ37--r4W4BJL.js} +1 -1
  40. package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-B27j9wPy.js → flowDiagram-DWJPFMVM-BAfgGiph.js} +1 -1
  41. package/dist/dashboard/assets/{fr-FR-RHASNOE6-DvWMfb10.js → fr-FR-RHASNOE6-D_z2sz4o.js} +1 -1
  42. package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-DFbnEWs4.js → ganttDiagram-T4ZO3ILL-C493I8Kn.js} +1 -1
  43. package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-Bl-6_fjw.js → gitGraphDiagram-UUTBAWPF-DD3Jw4hy.js} +1 -1
  44. package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CfsSyCvn.js → gl-ES-HMX3MZ6V-3iPIpzVQ.js} +1 -1
  45. package/dist/dashboard/assets/{graph-BJt4v-K6.js → graph-CJvnKdzN.js} +1 -1
  46. package/dist/dashboard/assets/{he-IL-6SHJWFNN-DvCmEeEq.js → he-IL-6SHJWFNN-BnseHvRA.js} +1 -1
  47. package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-Caxq3QFJ.js → hi-IN-IWLTKZ5I-Cdvylq2s.js} +1 -1
  48. package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-Cak3F0Es.js → hu-HU-A5ZG7DT2-cYA2nqI5.js} +1 -1
  49. package/dist/dashboard/assets/{id-ID-SAP4L64H-G6xGS3sm.js → id-ID-SAP4L64H-ByI8qeN-.js} +1 -1
  50. package/dist/dashboard/assets/index-CdlG9S--.css +32 -0
  51. package/dist/dashboard/assets/{index-CchlcoQO.js → index-D85kugqO.js} +188 -188
  52. package/dist/dashboard/assets/{index-CmFgzgpQ.js → index-DRgJ1sc2.js} +1 -1
  53. package/dist/dashboard/assets/{infoDiagram-42DDH7IO-CpKMgFKt.js → infoDiagram-42DDH7IO-BJyNzQje.js} +1 -1
  54. package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-RFbi-dXL.js → ishikawaDiagram-UXIWVN3A-DWwmai-U.js} +1 -1
  55. package/dist/dashboard/assets/{it-IT-JPQ66NNP-CRMjGfJO.js → it-IT-JPQ66NNP-Cm3-aA2z.js} +1 -1
  56. package/dist/dashboard/assets/{ja-JP-DBVTYXUO-qKukhnUz.js → ja-JP-DBVTYXUO-BtKUGXop.js} +1 -1
  57. package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-CTNV9WYX.js → journeyDiagram-VCZTEJTY-CWpo_QlB.js} +1 -1
  58. package/dist/dashboard/assets/{kaa-6HZHGXH3-B5jCPUdj.js → kaa-6HZHGXH3-Cz-3C5qm.js} +1 -1
  59. package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-BlL73uqK.js → kab-KAB-ZGHBKWFO-CquppFs3.js} +1 -1
  60. package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-COgJyhmy.js → kanban-definition-6JOO6SKY-CZisoM6K.js} +1 -1
  61. package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CG0hwSh6.js → kk-KZ-P5N5QNE5-B2l0aVOL.js} +1 -1
  62. package/dist/dashboard/assets/{km-KH-HSX4SM5Z-D7_LIf3_.js → km-KH-HSX4SM5Z-gnd97XjM.js} +1 -1
  63. package/dist/dashboard/assets/{ko-KR-MTYHY66A-DDs6LMMU.js → ko-KR-MTYHY66A-CZ7y0WRr.js} +1 -1
  64. package/dist/dashboard/assets/{ku-TR-6OUDTVRD-AmvNC30P.js → ku-TR-6OUDTVRD-cJLiwVTI.js} +1 -1
  65. package/dist/dashboard/assets/{layout-CpLiDGZe.js → layout-ZskR1t-z.js} +1 -1
  66. package/dist/dashboard/assets/{linear-hxRkR_6Y.js → linear-nhlpqszd.js} +1 -1
  67. package/dist/dashboard/assets/{lt-LT-XHIRWOB4-DIZituwF.js → lt-LT-XHIRWOB4-Ij6EZ9jl.js} +1 -1
  68. package/dist/dashboard/assets/{lv-LV-5QDEKY6T-BF9ddjMv.js → lv-LV-5QDEKY6T-o1fSS6fk.js} +1 -1
  69. package/dist/dashboard/assets/{min-BXf0ulcG.js → min-DWO9jrZ-.js} +1 -1
  70. package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-CkrPsGZI.js → mindmap-definition-QFDTVHPH-hvcnCi0m.js} +1 -1
  71. package/dist/dashboard/assets/{mr-IN-CRQNXWMA-DvT8rSdX.js → mr-IN-CRQNXWMA-CbMNXet8.js} +1 -1
  72. package/dist/dashboard/assets/{my-MM-5M5IBNSE-oTzpHZmp.js → my-MM-5M5IBNSE-BLZNRrAe.js} +1 -1
  73. package/dist/dashboard/assets/{nb-NO-T6EIAALU-mFTc2K9E.js → nb-NO-T6EIAALU-B3vJdKTo.js} +1 -1
  74. package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-BvHG6k52.js → nl-NL-IS3SIHDZ-B6D5z-iI.js} +1 -1
  75. package/dist/dashboard/assets/{nn-NO-6E72VCQL-DlLoXNop.js → nn-NO-6E72VCQL-5zTuWq4x.js} +1 -1
  76. package/dist/dashboard/assets/{oc-FR-POXYY2M6-Cxl6Ws6i.js → oc-FR-POXYY2M6-CjWsH2WL.js} +1 -1
  77. package/dist/dashboard/assets/{pa-IN-N4M65BXN-BWtil7Y8.js → pa-IN-N4M65BXN-BoIcIn-E.js} +1 -1
  78. package/dist/dashboard/assets/{percentages-BXMCSKIN-CLq2oyzj.js → percentages-BXMCSKIN-F5X-Tg4w.js} +7 -7
  79. package/dist/dashboard/assets/{pica-CMJDNnKQ.js → pica-kqAcDU9z.js} +1 -1
  80. package/dist/dashboard/assets/{pieDiagram-DEJITSTG-wlxYzLe8.js → pieDiagram-DEJITSTG-nYd2z-pn.js} +1 -1
  81. package/dist/dashboard/assets/{pl-PL-T2D74RX3-Bmw53sUP.js → pl-PL-T2D74RX3-GchO6UuX.js} +1 -1
  82. package/dist/dashboard/assets/{pt-BR-5N22H2LF-ULX3TBZk.js → pt-BR-5N22H2LF-BUsepHJF.js} +1 -1
  83. package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-DfHyDkUR.js → pt-PT-UZXXM6DQ-CCrWB7t1.js} +1 -1
  84. package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-BR5iSy7H.js → quadrantDiagram-34T5L4WZ-CyQyFV43.js} +1 -1
  85. package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BNuuSVYh.js → requirementDiagram-MS252O5E-DzDNbaAz.js} +1 -1
  86. package/dist/dashboard/assets/{ro-RO-JPDTUUEW-BC_5xxMm.js → ro-RO-JPDTUUEW-Bg8qasSV.js} +1 -1
  87. package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-CQPnfmdC.js → ru-RU-B4JR7IUQ-l7KGf_aH.js} +1 -1
  88. package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-CwwUGQVB.js → sankeyDiagram-XADWPNL6-t78W7pty.js} +1 -1
  89. package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-Dida7vc4.js → sequenceDiagram-FGHM5R23-C-A4YWsY.js} +1 -1
  90. package/dist/dashboard/assets/{si-LK-N5RQ5JYF-C53L84xe.js → si-LK-N5RQ5JYF-Bvh5jeZQ.js} +1 -1
  91. package/dist/dashboard/assets/{sk-SK-C5VTKIMK-BcDGWL_O.js → sk-SK-C5VTKIMK-Cw6feZYR.js} +1 -1
  92. package/dist/dashboard/assets/{sl-SI-NN7IZMDC-FuMpHBk9.js → sl-SI-NN7IZMDC-B-NqJ9YS.js} +1 -1
  93. package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-CNvfKe7v.js → stateDiagram-FHFEXIEX-DIcQEopN.js} +1 -1
  94. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-CFAZrDsQ.js +1 -0
  95. package/dist/dashboard/assets/{subset-shared.chunk-Do9_AHqy.js → subset-shared.chunk-w-9tnfIy.js} +1 -1
  96. package/dist/dashboard/assets/{subset-worker.chunk-i2BHHQN3.js → subset-worker.chunk-BF01ymYz.js} +1 -1
  97. package/dist/dashboard/assets/{sv-SE-XGPEYMSR-CAB9zxpi.js → sv-SE-XGPEYMSR-Ktas5ybY.js} +1 -1
  98. package/dist/dashboard/assets/{ta-IN-2NMHFXQM-yDO7M7xr.js → ta-IN-2NMHFXQM-WVntmT4J.js} +1 -1
  99. package/dist/dashboard/assets/{th-TH-HPSO5L25-B1m3C6pX.js → th-TH-HPSO5L25-DP9jkhxy.js} +1 -1
  100. package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-CujUrKzh.js → timeline-definition-GMOUNBTQ-CQLRxE6-.js} +1 -1
  101. package/dist/dashboard/assets/{tr-TR-DEFEU3FU-CL5wc1n8.js → tr-TR-DEFEU3FU-DUBzAzD0.js} +1 -1
  102. package/dist/dashboard/assets/{uk-UA-QMV73CPH-BbweuNSf.js → uk-UA-QMV73CPH-DBIjqvxV.js} +1 -1
  103. package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-ar0AgOfJ.js → vennDiagram-DHZGUBPP-ChnhJ1dN.js} +1 -1
  104. package/dist/dashboard/assets/{vi-VN-M7AON7JQ--lCR5VP0.js → vi-VN-M7AON7JQ-D47IGQ3F.js} +1 -1
  105. package/dist/dashboard/assets/{wardley-RL74JXVD-DWD-UZhX.js → wardley-RL74JXVD-CnuAa4Oy.js} +1 -1
  106. package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-Et52gtVy.js → wardleyDiagram-NUSXRM2D-D63qjR_j.js} +1 -1
  107. package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-pMHGVahC.js → xychartDiagram-5P7HB3ND-BUdyr5Wc.js} +1 -1
  108. package/dist/dashboard/assets/{zh-CN-LNUGB5OW-DSVSl5q1.js → zh-CN-LNUGB5OW-_ICN38Lj.js} +1 -1
  109. package/dist/dashboard/assets/{zh-HK-E62DVLB3-DxZ5YtvV.js → zh-HK-E62DVLB3-Bjez10pk.js} +1 -1
  110. package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-DlXNVnbL.js → zh-TW-RAJ6MFWO-Do-CPv3_.js} +1 -1
  111. package/dist/dashboard/index.html +2 -2
  112. package/dist/index.js +6803 -5920
  113. package/package.json +3 -2
  114. package/skill/SKILL.md +1 -1
  115. package/skill/references/cli-reference.md +5 -2
  116. package/skill/references/integrations.md +11 -0
  117. package/skill/references/knowledge-and-recall.md +2 -1
  118. package/skill-sync/references/merge-rules.md +15 -1
  119. package/dist/dashboard/assets/channel-BxXtm6aL.js +0 -1
  120. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DRDRixtt.js +0 -1
  121. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DRDRixtt.js +0 -1
  122. package/dist/dashboard/assets/clone-DDdzwqUk.js +0 -1
  123. package/dist/dashboard/assets/index-BoxnNYGo.css +0 -32
  124. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-B8F8hUBl.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dreamcontext",
3
- "version": "0.13.1",
3
+ "version": "0.14.1",
4
4
  "description": "dreamcontext — the persistent brain for your AI agents. Remembers what you built, knows how your project works.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -66,6 +66,7 @@
66
66
  "vitest": "^3.0.6"
67
67
  },
68
68
  "optionalDependencies": {
69
- "node-pty": "^1.1.0"
69
+ "node-pty": "^1.1.0",
70
+ "@huggingface/transformers": "^4.2.0"
70
71
  }
71
72
  }
package/skill/SKILL.md CHANGED
@@ -332,7 +332,7 @@ Status: `todo → in_progress → in_review → completed`. Sections: `why`, `us
332
332
  ## Memory & Knowledge — essentials
333
333
 
334
334
  - **Quick updates (no sleep):** edit `0.soul.md`/`1.user.md`/`2.memory.md` directly; `dreamcontext core changelog add` for code changes; `dreamcontext tasks log` for progress.
335
- - **Recall (first-line discovery):** `dreamcontext memory recall "<query>" [--top N] [--types knowledge,feature,task,memory,changelog] [--json]`. Default mode is **`haiku`** (a small cloud model picks relevant docs); `raw` = BM25 only; `off` = disabled. Control with `dreamcontext recall on|raw|off|status`. Auto-injected on prompts (opt out `DREAMCONTEXT_MEMORY_HOOK=0`).
335
+ - **Recall (first-line discovery):** `dreamcontext memory recall "<query>" [--top N] [--types knowledge,feature,task,memory,changelog] [--json]`. Default mode is **`haiku`** (a small cloud model picks relevant docs); `raw` = BM25 only; `hybrid` = experimental BM25+local-embedding fusion (no LLM call); `off` = disabled. Control with `dreamcontext recall on|raw|hybrid|off|status`. Auto-injected on prompts (opt out `DREAMCONTEXT_MEMORY_HOOK=0`).
336
336
  - **Quick capture:** `dreamcontext memory remember "<text>"` writes a `type=note` CHANGELOG entry; sleep reconciles it later. (`2.memory.md` no longer has a LIFO ship-narrative section — ship events live in CHANGELOG.)
337
337
  - **Knowledge files:** index auto-loaded; create with `dreamcontext knowledge create <name>`; pin frequently-needed ones (`pinned: true`); read non-pinned on demand and `knowledge touch` after. Group a flat file into a context folder with `dreamcontext knowledge move <slug> <folder>` (atomic move + inbound `[[wikilink]]` rewrite — never `mv` + hand-edit links).
338
338
  - **Features are sleep-only** (see rule 9).
@@ -145,7 +145,9 @@ Sections for `features insert`: `changelog`, `notes`, `technical_details`, `cons
145
145
  | `memory delete <slug>` | Delete a knowledge file (irreversible; recover via git). `-f/--force`. |
146
146
  | `memory list` | List the corpus by type. `--types <csv>`, `--plain`. |
147
147
  | `memory status` | Corpus size + breakdown by type. |
148
- | `recall status\|on\|off\|raw` | Control recall mode: `on`=haiku (default, LLM picks docs), `raw`=BM25 only, `off`=disabled. |
148
+ | `recall status\|on\|off\|raw\|hybrid` | Control recall mode: `on`=haiku (default, LLM picks docs), `raw`=BM25 only, `hybrid`=experimental BM25+local-embedding fusion (no LLM), `off`=disabled. |
149
+ | `embed refresh` | Bring the hybrid-recall embedding index up to date (embeds only changed chunks). `--force` re-chunks everything; `--if-present` no-ops unless a cache already exists (cron/sleep-safe). |
150
+ | `embed status` | Embedding cache presence, model, vector count, size. |
149
151
 
150
152
  ---
151
153
 
@@ -218,6 +220,7 @@ Sync the WHOLE brain (`_dream_context/`) — tasks, knowledge, features, sleep s
218
220
  | `brain discover` | List `dreamcontext-brain`-topic repos you can access on GitHub. |
219
221
  | `brain sync` | Fetch → semantic-merge-on-conflict → commit → push (or, in `in-tree` mode, commit-only — never auto-pushes). `--pull-only` (take team content in, never push), `--push-only`, `--strict` (WARN scrub hits block too), `--resume` / `--continue` (the attended `/dream-sync` handoff — see below). |
220
222
  | `brain enable` / `brain disable` | Explicit master switch for cloud sync on this project (v3.3). |
223
+ | `brain platform` | Carry the Claude Code layer (CLAUDE.md + `.claude/`) INSIDE the brain repo: moves them into `_dream_context/platform/` and symlinks them back from the project root, so they sync with the team. Missing root symlinks are re-created automatically by every `brain sync` (fresh clones self-wire) and flagged by `doctor`. `--status` reports without changing anything. Machine-local files (`platform/.claude/settings.local.json`, `scheduled_tasks.lock`) never sync. |
221
224
  | `brain scrub` | Dry-run the secrets/absolute-path scrub gate against the current staged tree. |
222
225
 
223
226
  **Automatic sync:** every `dreamcontext sleep done` runs a brain sync (fetch/merge/commit/push); failure never fails sleep. Session-start does a non-blocking background pull. **On an agent-class merge conflict** (two people edited the same prose section) the CLI stops at `already-awaiting-agent` and defers to the **`/dream-sync` skill** — the agent half that reads base/ours/theirs and writes the semantic merge, then `brain sync --continue`. Never drive `--resume`/`--continue` unattended.
@@ -251,7 +254,7 @@ Sync the WHOLE brain (`_dream_context/`) — tasks, knowledge, features, sleep s
251
254
  | Var | Effect |
252
255
  |---|---|
253
256
  | `DREAMCONTEXT_MEMORY_HOOK=0` | Disable auto-injected recall on prompts. |
254
- | `DREAMCONTEXT_RECALL_MODE=haiku\|raw\|off` | Override recall mode for the session (else uses `recall` setting; default `haiku`). |
257
+ | `DREAMCONTEXT_RECALL_MODE=haiku\|raw\|hybrid\|off` | Override recall mode for the session (else uses `recall` setting; default `haiku`). |
255
258
  | `DREAMCONTEXT_AUTO_DASHBOARD=0` | Don't auto-open the dashboard on session start. |
256
259
  | `DREAMCONTEXT_DASHBOARD_PORT` | Default dashboard port (else 4173). |
257
260
  | `DREAMCONTEXT_AUTO_UPGRADE=0` | Disable automatic CLI self-upgrade. |
@@ -244,6 +244,17 @@ dreamcontext brain status # mode (separate/in-tree), remote, sync st
244
244
  - **Manual sync any time:** `dreamcontext brain sync` (or `--pull-only` to just take team content in).
245
245
  - **On a prose merge conflict** (two people edited the same `##` section of a knowledge/feature doc), the CLI resolves every deterministic file itself and stops at `already-awaiting-agent`, deferring the rest to the **`/dream-sync` skill** — the agent reads base/ours/theirs snapshots, writes the real semantic merge, and hands back with `brain sync --continue`. (`--resume`/`--continue` are attended-only; never drive them unattended.)
246
246
 
247
+ ### Platform layer — share CLAUDE.md + .claude with the team
248
+
249
+ A separate-mode brain repo is rooted at `_dream_context/`, so the Claude Code files at the
250
+ project root (CLAUDE.md, `.claude/` skills/agents/hooks) would never sync on their own.
251
+ `dreamcontext brain platform` fixes that: it moves them into `_dream_context/platform/` and
252
+ symlinks them back from the project root (Claude Code resolves the links transparently).
253
+ From then on they sync with the brain like everything else; every `brain sync` re-creates
254
+ missing root symlinks on a fresh clone, and `doctor` flags broken links. Machine-local files
255
+ (`platform/.claude/settings.local.json`, `scheduled_tasks.lock`) stay gitignored.
256
+ `brain platform --status` reports without changing anything.
257
+
247
258
  ### Editing / reconfiguring
248
259
 
249
260
  - **Turn cloud sync on/off:** `dreamcontext brain enable` / `brain disable`.
@@ -55,7 +55,7 @@ The `memory` command group is your interface to the curated corpus: `knowledge/*
55
55
  | **delete** | Remove a knowledge file (irreversible; recover via git) | `dreamcontext memory delete <slug> -f` |
56
56
  | **list** | Enumerate the corpus by type | `dreamcontext memory list [--types …]` |
57
57
  | **status** | See corpus size + breakdown by type | `dreamcontext memory status` |
58
- | **recall mode** | Switch how recall ranks (haiku/raw/off) | `dreamcontext recall on\|raw\|off\|status` |
58
+ | **recall mode** | Switch how recall ranks (haiku/raw/hybrid/off) | `dreamcontext recall on\|raw\|hybrid\|off\|status` |
59
59
 
60
60
  ### recall — your first-line discovery tool
61
61
 
@@ -96,6 +96,7 @@ Writes a CHANGELOG entry (`type=note`, `scope=quick`); the sleep cycle reconcile
96
96
  |---|---|---|
97
97
  | `haiku` (**default**) | A small cloud model picks 0–3 relevant docs per prompt (smarter than keywords; BM25 fallback) | `dreamcontext recall on` |
98
98
  | `raw` | BM25 keyword scoring only — no LLM call | `dreamcontext recall raw` |
99
+ | `hybrid` (**experimental**) | BM25 + local dense embeddings fused (multilingual, no LLM call; falls back to BM25 if the model is unavailable) | `dreamcontext recall hybrid` |
99
100
  | `off` | No recall injection at all | `dreamcontext recall off` |
100
101
  | — | Inspect current mode | `dreamcontext recall status` |
101
102
 
@@ -30,11 +30,25 @@ returns `action:'disabled'`.
30
30
  | `overrides/**` | tracked | tracked |
31
31
  | `state/*.md` (tasks) | tracked (source of truth) | gitignored (local mirror; issues/ClickUp are source of truth) |
32
32
  | `state/.config.json`, `.active-version.json`, `.migrations.json` | tracked | tracked |
33
- | `state/.secrets.json`, `.sleep.json`, `.sleep-history.json`, `.agent-sessions.json`, `.session-digests/`, `.conflicts/`, `.brain-merge/`, `.version-check.json`, `.auto-upgrade.json`, `.brain-local.json`, `.tasks-map.json`, `.tasks-sync.*`, `.tasks-queue.json`, `.obsidian/`, `tmp/`, `**/.env` | gitignored | gitignored |
33
+ | `state/.secrets.json`, `.sleep.json`, `.sleep-history.json`, `.agent-sessions.json`, `.session-digests/`, `.conflicts/`, `.brain-merge/`, `.version-check.json`, `.auto-upgrade.json`, `.brain-local.json`, `.lab-prefs.json`, `.tasks-map.json`, `.tasks-sync.*`, `.tasks-queue.json`, `.obsidian/`, `tmp/`, `**/.env`, `**/.DS_Store` | gitignored | gitignored |
34
+ | `lab/**` (insights + cache) | tracked | tracked |
35
+ | `lab/credentials.json` / `lab/credentials.*` (except the tracked `credentials.example.json`) | gitignored | gitignored |
36
+ | `platform/**` (Claude Code layer: CLAUDE.md + .claude) | tracked | tracked |
37
+ | `platform/.claude/settings.local.json`, `platform/.claude/scheduled_tasks.lock` | gitignored | gitignored |
34
38
 
35
39
  Built by `buildBrainGitignore(taskBackend)` (`src/lib/git-sync/brain-repo.ts`) and written on
36
40
  bootstrap (`brain init`/`attach`); `ensureLocalOnlyArtifacts` re-asserts it after a clone/pull.
37
41
 
42
+ ## 3b. Platform layer — CLAUDE.md + .claude travel with the brain
43
+
44
+ A separate-mode brain repo is rooted at `_dream_context/`, so the Claude Code project files at
45
+ the PROJECT root would never sync. `dreamcontext brain platform` migrates them: the real files
46
+ move to `_dream_context/platform/{CLAUDE.md,.claude}` and the project root keeps relative
47
+ symlinks into it (Claude Code resolves them transparently). On every `runBrainSync` the engine
48
+ best-effort re-creates missing root symlinks (`healPlatformLinks`), so a fresh clone of the brain
49
+ is fully wired after its first sync; `doctor` flags missing links and root-vs-platform conflicts.
50
+ Machine-local runtime files inside `platform/.claude/` (see table) never sync.
51
+
38
52
  ## 4. Credential supply (GIT_ASKPASS — decision F)
39
53
 
40
54
  The token is NEVER embedded in a remote URL, env, or argv. Every networked git call runs inside
@@ -1 +0,0 @@
1
- import{aq as o,ar as n}from"./index-CchlcoQO.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BQOhV1JT.js";import{_ as i}from"./index-CchlcoQO.js";import"./chunk-FMBD7UC4-BowamHD9.js";import"./chunk-YZCP3GAM-UDOQPnhm.js";import"./chunk-55IACEB6-DhAIH--W.js";import"./chunk-EDXVE4YY-Chs7mD-k.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BQOhV1JT.js";import{_ as i}from"./index-CchlcoQO.js";import"./chunk-FMBD7UC4-BowamHD9.js";import"./chunk-YZCP3GAM-UDOQPnhm.js";import"./chunk-55IACEB6-DhAIH--W.js";import"./chunk-EDXVE4YY-Chs7mD-k.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-BJt4v-K6.js";var e=4;function a(o){return r(o,e)}export{a as c};