toolnet-memory 0.3.15 → 0.3.16

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/.release-target CHANGED
@@ -1 +1 @@
1
- 0.3.15
1
+ 0.3.16
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  **One project. Multiple coding agents. Continuous context.**
13
13
 
14
- Current release: **v0.3.15**
14
+ Current release: **v0.3.16**
15
15
 
16
16
  </div>
17
17
 
@@ -28,7 +28,7 @@ ToolNet Memory combines four layers:
28
28
  - **Fast project context** — small local startup context for normal work.
29
29
  - **Work continuity** — current goal, phase, blockers, decisions, and next actions.
30
30
  - **Durable memory** — filtered project knowledge that survives agent/session changes.
31
- - **Code intelligence** — symbols, dependencies, call graphs, architecture, semantic search, impact analysis, and graph visualization.
31
+ - **Code intelligence** — symbols, dependencies, call graphs, architecture, local SQLite FTS5/BM25 code search, impact analysis, and graph visualization.
32
32
 
33
33
  ToolNet Memory is **not a raw transcript dump**. Raw session history is kept separate from durable project memory and is protected from normal agent reads.
34
34
 
@@ -154,6 +154,25 @@ Project identity is stored in:
154
154
  .toolnet/project.json
155
155
  ```
156
156
 
157
+ For Git projects, new project identity is derived from normalized Git
158
+ repository identity instead of absolute checkout path.
159
+
160
+ A fresh clone can recover a registered existing ToolNet project identity from
161
+ the configured remote identity registry.
162
+
163
+ Pre-registry legacy projects require explicit adoption when identity cannot be
164
+ proven automatically:
165
+
166
+ ```text
167
+ toolnet-memory init --adopt-remote <remote-name>
168
+ ```
169
+
170
+ To intentionally initialize without remote identity lookup:
171
+
172
+ ```text
173
+ toolnet-memory init --no-remote-identity
174
+ ```
175
+
157
176
  ### 4. Build project intelligence
158
177
 
159
178
  ```bash
@@ -171,7 +190,7 @@ Type Resolution
171
190
 
172
191
  Rich Graph
173
192
 
174
- Semantic Code Index
193
+ Local Code Search — SQLite FTS5/BM25
175
194
 
176
195
  Architecture Intelligence
177
196
 
@@ -597,6 +616,117 @@ Secrets and credentials should remain in `.env` or another secret store, not in
597
616
 
598
617
  ---
599
618
 
619
+ ## Runtime Capability Truth
620
+
621
+ ToolNet Memory is local-first and deterministic.
622
+
623
+ | Component | Required | Notes |
624
+ | -------------------- | -------- | ----- |
625
+ | LLM | no | |
626
+ | Embedding provider | no | |
627
+ | Vector database | no | |
628
+ | Mandatory crypto key | no | |
629
+
630
+ Automatic memory promotion and conflict handling are deterministic and evidence-based.
631
+
632
+ ### Local Code Search
633
+
634
+ The current code-search implementation is:
635
+
636
+ ```text
637
+ Local Code Search — SQLite FTS5/BM25
638
+ Index: SQLite FTS5
639
+ Ranking: BM25
640
+ Mode: lexical
641
+ ```
642
+
643
+ It does not use embeddings or a vector database.
644
+
645
+ The following historical names remain compatibility aliases and are not being
646
+ removed in this release:
647
+
648
+ - `SemanticCodeEngine`
649
+ - `semantic_code_search`
650
+ - `toolnet-memory semantic`
651
+ - `semantic-index`
652
+
653
+ ### Parser support
654
+
655
+ | Language family | Status |
656
+ | ---------------------------- | ----------- |
657
+ | TypeScript / TSX | supported |
658
+ | JavaScript / JSX / MJS / CJS | supported |
659
+ | Python | unsupported |
660
+ | Go | unsupported |
661
+ | Rust | unsupported |
662
+ | C / C++ | unsupported |
663
+
664
+ The supported TypeScript/JavaScript family uses the TypeScript Compiler API.
665
+
666
+ Tree-sitter is not implemented in this release.
667
+
668
+ ### Cross-machine project identity
669
+
670
+ Existing `.toolnet/project.json` identity remains canonical.
671
+
672
+ New Git projects use normalized Git repository identity instead of absolute
673
+ checkout path. A registered existing ToolNet project can therefore be adopted
674
+ by another checkout of the same Git repository.
675
+
676
+ For a pre-registry legacy project, adoption is explicit:
677
+
678
+ ```text
679
+ toolnet-memory init --adopt-remote <remote-name>
680
+ ```
681
+
682
+ ToolNet refuses unverified silent adoption when repository identity cannot be
683
+ proven.
684
+
685
+ ### Multi-host behavior
686
+
687
+ Cross-host convergence is implemented under `src/multi-host/**` using immutable
688
+ append-only operations plus deterministic reduction.
689
+
690
+ The removed legacy `src/sync/**` scaffold was not the active sync engine.
691
+
692
+ ToolNet does not claim a WebSocket real-time sync protocol or vector-clock CRDT
693
+ implementation.
694
+
695
+ ### Storage truth
696
+
697
+ **Supported:**
698
+
699
+ - Local
700
+ - Hugging Face S3-compatible storage
701
+ - S3-compatible storage
702
+ - Cloudflare R2 through the S3-compatible provider
703
+
704
+ **Unsupported:**
705
+
706
+ - Google Drive storage
707
+ - GitHub storage backend
708
+
709
+ ### Security truth
710
+
711
+ ToolNet provides secret scanning and durable-data sanitization.
712
+
713
+ ToolNet does not provide client-side encryption by default and does not require
714
+ an encryption key.
715
+
716
+ Remote payload protection at rest therefore depends on the configured storage
717
+ provider unless optional ToolNet client-side encryption is implemented in a
718
+ future release.
719
+
720
+ Project instruction files are treated as untrusted project data, not as system
721
+ or developer authority.
722
+
723
+ For the detailed capability matrix, see:
724
+
725
+ - `docs/runtime-truth.md`
726
+ - `docs/repository-capabilities.md`
727
+
728
+ ---
729
+
600
730
  ## Code Intelligence
601
731
 
602
732
  ToolNet builds a persistent structural model of the codebase.
@@ -611,11 +741,33 @@ Capabilities include:
611
741
  - subsystem clustering,
612
742
  - hotspots,
613
743
  - dead-code candidates,
614
- - semantic code search,
744
+ - local lexical code search (SQLite FTS5/BM25),
615
745
  - dependency paths,
616
746
  - change-impact analysis,
617
747
  - visualization datasets.
618
748
 
749
+ ### Local Code Search
750
+
751
+ ToolNet code search is deterministic and local.
752
+
753
+ ```text
754
+ Index backend: SQLite FTS5
755
+ Ranking: BM25
756
+ Mode: lexical
757
+ Embeddings: no
758
+ Vector DB: no
759
+ LLM/model: no
760
+ Network: not required
761
+ ```
762
+
763
+ The historical public names remain available for compatibility:
764
+
765
+ - CLI: `toolnet-memory semantic`
766
+ - MCP: `semantic_code_search`
767
+ - API: `SemanticCodeEngine`
768
+
769
+ Those names are compatibility aliases and do not indicate embedding-based semantic retrieval.
770
+
619
771
  Useful commands:
620
772
 
621
773
  ```bash
@@ -625,7 +777,7 @@ toolnet-memory index
625
777
  # Incremental update
626
778
  toolnet-memory incremental
627
779
 
628
- # Semantic search
780
+ # Local lexical code search (legacy command name)
629
781
  toolnet-memory semantic "authentication flow"
630
782
 
631
783
  # Change impact
@@ -939,7 +1091,7 @@ ToolNet Memory uses GitHub Actions for CI and npm releases.
939
1091
  The current release line is:
940
1092
 
941
1093
  ```text
942
- npm package: toolnet-memory@0.3.14
1094
+ npm package: toolnet-memory@0.3.16
943
1095
  Git tag: v0.3.14
944
1096
  ```
945
1097