toolnet-memory 0.3.14 → 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/.env.example +0 -1
- package/.release-target +1 -1
- package/README.md +182 -6
- package/bin/toolnet-memory +5 -0
- package/bundle/agy-hook.js +71 -71
- package/bundle/agy.js +65 -65
- package/bundle/api.js +15 -15
- package/bundle/auto-integrate.js +28 -28
- package/bundle/background-refresh.js +7 -7
- package/bundle/claude-hook.js +51 -50
- package/bundle/codex-context.js +29 -28
- package/bundle/codex.js +77 -77
- package/bundle/context-runtime.js +44 -43
- package/bundle/context.js +15 -15
- package/bundle/continuity-certify.js +13 -13
- package/bundle/copilot-hook.js +88 -86
- package/bundle/copilot.js +4 -4
- package/bundle/cursor-hook.js +88 -86
- package/bundle/cursor.js +4 -4
- package/bundle/doctor.js +4 -4
- package/bundle/full-index.js +21 -21
- package/bundle/gc.js +3 -0
- package/bundle/graph-index.js +4 -4
- package/bundle/graph-ui.js +3 -3
- package/bundle/grok-hook.js +64 -63
- package/bundle/grok.js +5 -5
- package/bundle/handoff-refresh.js +10 -10
- package/bundle/help-cli.js +3 -3
- package/bundle/impact.js +4 -4
- package/bundle/incremental.js +5 -4
- package/bundle/init.js +38 -37
- package/bundle/integration-status.js +4 -4
- package/bundle/kiro-hook.js +93 -92
- package/bundle/learner.js +6 -6
- package/bundle/mcp.js +17 -17
- package/bundle/memory-agent.js +7 -7
- package/bundle/memory-query.js +7 -7
- package/bundle/opencode.js +84 -84
- package/bundle/project-manual.js +7 -7
- package/bundle/recovery-certify.js +15 -15
- package/bundle/runtime.js +13 -12
- package/bundle/semantic.js +5 -5
- package/bundle/snapshot.js +4 -4
- package/bundle/status-cli.js +4 -4
- package/bundle/toolnet-cli.js +60 -60
- package/bundle/work-continuity.js +7 -7
- package/package.json +21 -3
- package/release-manifest.json +104 -3
package/.env.example
CHANGED
package/.release-target
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
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.
|
|
14
|
+
Current release: **v0.3.16**
|
|
15
15
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
@@ -28,12 +28,36 @@ 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,
|
|
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
|
|
|
35
35
|
Memory promotion, retrieval, conflict handling, and continuity decisions are deterministic and local. ToolNet Memory does not require an LLM or embedding provider for its memory runtime.
|
|
36
36
|
|
|
37
|
+
### v0.3.15 hardening
|
|
38
|
+
|
|
39
|
+
v0.3.15 strengthens the existing local-first architecture without adding an LLM, embedding provider, vector database, or encryption-key requirement.
|
|
40
|
+
|
|
41
|
+
- Safe retention / garbage collection with dry-run by default.
|
|
42
|
+
- Project-scoped cross-process and shared-volume container hook deduplication.
|
|
43
|
+
- Large-repository scanner limits, bounded indexing concurrency, cancellation, and conservative rename detection.
|
|
44
|
+
- Explicit TypeScript/JavaScript parser capability reporting and TypeScript monorepo/path-alias resolution.
|
|
45
|
+
- Incremental graph repair with dangling-edge protection.
|
|
46
|
+
- Secret Scanner v2 and one durable-data sanitization contract.
|
|
47
|
+
- Strict existing-project resolution for read/query commands.
|
|
48
|
+
- Repository instruction content is treated as untrusted project data rather than system authority.
|
|
49
|
+
Garbage collection is non-destructive by default:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
toolnet-memory gc
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Actual cleanup requires explicit application:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
toolnet-memory gc --apply
|
|
59
|
+
```
|
|
60
|
+
|
|
37
61
|
---
|
|
38
62
|
|
|
39
63
|
## Supported Coding Agents
|
|
@@ -130,6 +154,25 @@ Project identity is stored in:
|
|
|
130
154
|
.toolnet/project.json
|
|
131
155
|
```
|
|
132
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
|
+
|
|
133
176
|
### 4. Build project intelligence
|
|
134
177
|
|
|
135
178
|
```bash
|
|
@@ -147,7 +190,7 @@ Type Resolution
|
|
|
147
190
|
↓
|
|
148
191
|
Rich Graph
|
|
149
192
|
↓
|
|
150
|
-
|
|
193
|
+
Local Code Search — SQLite FTS5/BM25
|
|
151
194
|
↓
|
|
152
195
|
Architecture Intelligence
|
|
153
196
|
↓
|
|
@@ -573,6 +616,117 @@ Secrets and credentials should remain in `.env` or another secret store, not in
|
|
|
573
616
|
|
|
574
617
|
---
|
|
575
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
|
+
|
|
576
730
|
## Code Intelligence
|
|
577
731
|
|
|
578
732
|
ToolNet builds a persistent structural model of the codebase.
|
|
@@ -587,11 +741,33 @@ Capabilities include:
|
|
|
587
741
|
- subsystem clustering,
|
|
588
742
|
- hotspots,
|
|
589
743
|
- dead-code candidates,
|
|
590
|
-
-
|
|
744
|
+
- local lexical code search (SQLite FTS5/BM25),
|
|
591
745
|
- dependency paths,
|
|
592
746
|
- change-impact analysis,
|
|
593
747
|
- visualization datasets.
|
|
594
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
|
+
|
|
595
771
|
Useful commands:
|
|
596
772
|
|
|
597
773
|
```bash
|
|
@@ -601,7 +777,7 @@ toolnet-memory index
|
|
|
601
777
|
# Incremental update
|
|
602
778
|
toolnet-memory incremental
|
|
603
779
|
|
|
604
|
-
#
|
|
780
|
+
# Local lexical code search (legacy command name)
|
|
605
781
|
toolnet-memory semantic "authentication flow"
|
|
606
782
|
|
|
607
783
|
# Change impact
|
|
@@ -915,7 +1091,7 @@ ToolNet Memory uses GitHub Actions for CI and npm releases.
|
|
|
915
1091
|
The current release line is:
|
|
916
1092
|
|
|
917
1093
|
```text
|
|
918
|
-
npm package: toolnet-memory@0.3.
|
|
1094
|
+
npm package: toolnet-memory@0.3.16
|
|
919
1095
|
Git tag: v0.3.14
|
|
920
1096
|
```
|
|
921
1097
|
|