Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,12 @@
"threadnote/no-effect-runtime": "off"
}
},
{
"files": ["test/helpers/node-*.ts"],
"rules": {
"effecttsgo/node-builtin-import": "off"
}
},
{
"files": ["test/**/*.test.ts", "test/**/*.spec.ts", "test/e2e/**/*.e2e.ts"],
"rules": {
Expand Down
11 changes: 1 addition & 10 deletions .oxlintrc.max-lines.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,10 @@
"categories": {
"correctness": "off"
},
"ignorePatterns": [
"src/code_graph/build_status.ts",
"src/code_graph/indexer.ts",
"src/code_graph/inventory.ts",
"src/manager_graph.tsx",
"src/mcp_server.ts",
"src/memory.ts",
"website/src/content/docs.ts"
],
"plugins": [],
"rules": {
"max-lines": [
"warn",
"error",
{
"max": 2000,
"skipBlankLines": false,
Expand Down
6 changes: 6 additions & 0 deletions .oxlintrc.strict.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@
"threadnote/no-effect-runtime": "off"
}
},
{
"files": ["test/helpers/node-*.ts"],
"rules": {
"effecttsgo/node-builtin-import": "off"
}
},
{
"files": ["test/**/*.test.ts", "test/**/*.spec.ts", "test/e2e/**/*.e2e.ts"],
"rules": {
Expand Down
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,11 +236,17 @@ threadnote graph repair --all --dry-run
threadnote graph compact --dry-run
```

`graph status` reports active SQLite database, WAL, and SHM bytes plus page/freelist and reclaimable-byte diagnostics.
When both 512 MiB and 20% of the database are reclaimable it recommends explicit compaction. `graph compact` takes
zero-wait maintenance and checkout locks, verifies the active snapshot before and after SQLite's transactional
`VACUUM`, and defers safely during a build. Preview it with `--dry-run`; `--force` is available below the reviewed
threshold.
`graph status` reports physical SQLite database, WAL, and SHM bytes separately from pages in use and freelist bytes
already reusable inside the database. A large physical file can therefore contain little live graph data without
causing future writes to grow it. When freelist bytes are both at least 512 MiB and 20% of the database, a running
Manager automatically compacts one eligible database at a time after active builders release their locks and sufficient
disk headroom is verified. SQLite can require more than twice the database size as temporary free space during `VACUUM`, so Manager
withholds compaction when that conservative headroom cannot be proved. Automatic compaction runs in an isolated child
process, keeping Manager responsive; Manager shows the latest check, deferral, failure, or reclaimed bytes. Structural
fragmentation analysis can scan live SQLite pages, so it is never scheduled automatically. Compaction rechecks the
active snapshot before and after the transactional rewrite, and interruption leaves the original database intact.
`graph compact --dry-run` remains available to inspect additional fragmentation explicitly, choose the timing, or
troubleshoot; `--force` is the expert override below the reviewed threshold.

`graph diagnostics` is home-wide and does not resolve a repository from the current directory. It reports every local
graph database, ready snapshot, indexed view, active build, waiter, storage total, health issue, and obsolete store;
Expand All @@ -260,6 +266,8 @@ before acting. The CLI equivalent for an orphaned store is

`threadnote manage` fails fast when graph repair or another native graph maintenance operation is already active;
an already-running Manager returns an explicit busy response for graph requests until maintenance finishes.
Manager labels graph views with repository name, the branch observed at a stated boundary, and trusted local folder whenever available; opaque
checkout and worktree identities are reserved for last-resort diagnostics and exact CLI targeting.

Maven, Gradle, Kotlin Multiplatform/Android conventions, SwiftPM, conservative Xcode metadata, and nested or integrated
Bazel workspaces form a static workspace model; repository build scripts are never executed. Bazel `WORKSPACE`,
Expand Down
14 changes: 14 additions & 0 deletions THIRD_PARTY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Direct runtime software and packages bundled into the published JavaScript retai
- `remark-gfm` (MIT)
- `three` (MIT), used for GPU-accelerated manager graph rendering
- `js-yaml` (MIT)
- `yaml` 2.9.0 (ISC), used for comment-preserving Manager Workset manifest updates
- TypeScript compiler 5.9 (`typescript-compiler`, Apache-2.0), bundled for native TypeScript/JavaScript graph extraction
- `fflate` 0.8.2 (MIT), used for bounded local text extraction from tracked OpenXML, OpenDocument, and EPUB archives
- `unpdf` 1.6.2 (MIT) and its bundled PDF.js engine (Apache-2.0), used for local tracked-PDF text and link extraction
Expand Down Expand Up @@ -42,6 +43,19 @@ Grammar and parser license copies, source revisions, ABIs, and SHA-256 checksums
pinned MIT-licensed BGE Small embedding model is installed automatically by `threadnote install`; other model files
require an explicit `threadnote models install` action. Catalog entries identify every model source and license.

### `yaml` 2.9.0 license notice

Copyright Eemeli Aro <eemeli@gmail.com>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby
granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

## Public website

The separately deployed GitHub Pages website is not part of the standalone release. Its build uses Vite and
Expand Down
1 change: 1 addition & 0 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading