原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"cuda",
"embeddings",
"gpu",
"mcp",
"qdrant",
"rag",
"semantic-search",
"sentence-transformers",
"vector-search",
"vaultspec",
"claude-code",
"code-search",
"hybrid-search",
"python",
"reranking",
"retrieval-augmented-generation",
"splade"
],
"is_fork": false,
"size_kb": 18187,
"has_wiki": false,
"homepage": "https://pypi.org/project/vaultspec-rag/",
"languages": {
"Just": 18867,
"Python": 8471092,
"PowerShell": 288
},
"pushed_at": "2026-07-28T22:46:44Z",
"created_at": "2026-03-05T22:21:40Z",
"owner_type": "User",
"updated_at": "2026-07-28T22:46:38Z",
"description": "GPU-accelerated semantic search for your docs and source code - hybrid dense + sparse RAG on a local Qdrant backend, served to Claude Code and other MCP clients. The search companion to vaultspec-core.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Python",
"significant_languages": [
"Python"
]
},
"owner": {
"blog": "neve.md",
"name": "Neve",
"type": "User",
"login": "nevenincs",
"company": "Neve",
"location": "Barcelona",
"followers": 36,
"avatar_url": "https://avatars.githubusercontent.com/u/11316825?v=4",
"created_at": "2015-03-04T16:12:12Z",
"is_verified": null,
"public_repos": 15,
"account_age_days": 4164
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "vaultspec-rag-v0.3.14",
"kind": "other",
"published_at": "2026-07-28T22:46:45Z"
},
{
"tag": "vaultspec-rag-v0.3.13",
"kind": "other",
"published_at": "2026-07-28T18:35:33Z"
},
{
"tag": "vaultspec-rag-v0.3.12",
"kind": "other",
"published_at": "2026-07-27T23:03:49Z"
},
{
"tag": "vaultspec-rag-v0.3.11",
"kind": "other",
"published_at": "2026-07-26T09:46:56Z"
},
{
"tag": "vaultspec-rag-v0.3.10",
"kind": "other",
"published_at": "2026-07-26T06:57:05Z"
},
{
"tag": "vaultspec-rag-v0.3.9",
"kind": "other",
"published_at": "2026-07-25T00:33:56Z"
},
{
"tag": "vaultspec-rag-v0.3.8",
"kind": "other",
"published_at": "2026-07-24T23:31:45Z"
},
{
"tag": "vaultspec-rag-v0.3.7",
"kind": "other",
"published_at": "2026-07-24T18:02:49Z"
},
{
"tag": "vaultspec-rag-v0.3.6",
"kind": "other",
"published_at": "2026-07-24T06:13:09Z"
},
{
"tag": "vaultspec-rag-v0.3.5",
"kind": "other",
"published_at": "2026-07-24T00:02:34Z"
},
{
"tag": "vaultspec-rag-v0.3.4",
"kind": "other",
"published_at": "2026-07-23T18:36:25Z"
},
{
"tag": "vaultspec-rag-v0.3.3",
"kind": "other",
"published_at": "2026-07-21T18:15:01Z"
},
{
"tag": "vaultspec-rag-v0.3.2",
"kind": "other",
"published_at": "2026-07-17T12:46:54Z"
},
{
"tag": "vaultspec-rag-v0.3.1",
"kind": "other",
"published_at": "2026-07-17T07:33:13Z"
},
{
"tag": "vaultspec-rag-v0.3.0",
"kind": "other",
"published_at": "2026-07-14T20:24:58Z"
},
{
"tag": "vaultspec-rag-v0.2.28",
"kind": "other",
"published_at": "2026-07-01T19:31:31Z"
},
{
"tag": "vaultspec-rag-v0.2.27",
"kind": "other",
"published_at": "2026-06-30T15:52:31Z"
},
{
"tag": "vaultspec-rag-v0.2.26",
"kind": "other",
"published_at": "2026-06-28T15:05:52Z"
},
{
"tag": "vaultspec-rag-v0.2.25",
"kind": "other",
"published_at": "2026-06-25T13:29:13Z"
},
{
"tag": "vaultspec-rag-v0.2.24",
"kind": "other",
"published_at": "2026-06-24T21:40:50Z"
},
{
"tag": "vaultspec-rag-v0.2.23",
"kind": "other",
"published_at": "2026-06-21T11:21:21Z"
},
{
"tag": "vaultspec-rag-v0.2.22",
"kind": "other",
"published_at": "2026-06-21T06:33:50Z"
},
{
"tag": "vaultspec-rag-v0.2.21",
"kind": "other",
"published_at": "2026-06-13T13:59:35Z"
},
{
"tag": "vaultspec-rag-v0.2.20",
"kind": "other",
"published_at": "2026-06-11T08:19:01Z"
},
{
"tag": "vaultspec-rag-v0.2.19",
"kind": "other",
"published_at": "2026-06-10T16:25:31Z"
},
{
"tag": "vaultspec-rag-v0.2.18",
"kind": "other",
"published_at": "2026-06-10T15:43:35Z"
},
{
"tag": "vaultspec-rag-v0.2.17",
"kind": "other",
"published_at": "2026-06-10T07:50:35Z"
},
{
"tag": "vaultspec-rag-v0.2.16",
"kind": "other",
"published_at": "2026-06-05T12:04:48Z"
},
{
"tag": "vaultspec-rag-v0.2.15",
"kind": "other",
"published_at": "2026-06-04T20:00:56Z"
},
{
"tag": "vaultspec-rag-v0.2.14",
"kind": "other",
"published_at": "2026-06-03T06:25:50Z"
},
{
"tag": "vaultspec-rag-v0.2.13",
"kind": "other",
"published_at": "2026-06-02T11:14:55Z"
},
{
"tag": "vaultspec-rag-v0.2.12",
"kind": "other",
"published_at": "2026-06-01T18:13:47Z"
},
{
"tag": "vaultspec-rag-v0.2.11",
"kind": "other",
"published_at": "2026-06-01T16:28:01Z"
},
{
"tag": "vaultspec-rag-v0.2.10",
"kind": "other",
"published_at": "2026-05-31T18:48:48Z"
},
{
"tag": "vaultspec-rag-v0.2.9",
"kind": "other",
"published_at": "2026-05-31T11:11:07Z"
},
{
"tag": "vaultspec-rag-v0.2.8",
"kind": "other",
"published_at": "2026-05-03T14:49:44Z"
},
{
"tag": "vaultspec-rag-v0.2.7",
"kind": "other",
"published_at": "2026-05-03T12:45:57Z"
},
{
"tag": "vaultspec-rag-v0.2.6",
"kind": "other",
"published_at": "2026-04-28T10:45:11Z"
},
{
"tag": "vaultspec-rag-v0.2.5",
"kind": "other",
"published_at": "2026-04-27T15:53:57Z"
},
{
"tag": "vaultspec-rag-v0.2.4",
"kind": "other",
"published_at": "2026-04-27T08:24:12Z"
},
{
"tag": "vaultspec-rag-v0.2.3",
"kind": "other",
"published_at": "2026-04-22T18:36:00Z"
},
{
"tag": "vaultspec-rag-v0.2.2",
"kind": "other",
"published_at": "2026-04-12T13:42:06Z"
},
{
"tag": "vaultspec-rag-v0.2.1",
"kind": "other",
"published_at": "2026-04-12T13:34:57Z"
},
{
"tag": "vaultspec-rag-v0.1.4",
"kind": "other",
"published_at": "2026-04-06T07:17:45Z"
},
{
"tag": "vaultspec-rag-v0.1.3",
"kind": "other",
"published_at": "2026-04-03T10:51:57Z"
},
{
"tag": "vaultspec-rag-v0.1.2",
"kind": "other",
"published_at": "2026-04-03T09:03:56Z"
},
{
"tag": "vaultspec-rag-v0.1.1",
"kind": "other",
"published_at": "2026-04-01T09:37:10Z"
}
],
"recent_commits": [
{
"oid": "addf1b3f5d4fc85d4607323c7f33a388fbb701b9",
"body": "…--components--vaultspec-rag\n\nchore(main): release vaultspec-rag 0.3.14",
"is_bot": false,
"headline": "Merge pull request #292 from nevenincs/release-please--branches--main…",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:46:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3321d4d07b4a68fe4cc1d9bd7a25e5086597f8f",
"body": null,
"is_bot": false,
"headline": "Merge remote-tracking branch 'refs/remotes/origin/main'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:45:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "072cb1acc809b003f12a390e5a1993becb408949",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-af1b8bc3465edfaa3'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:44:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aff8b76383dffdebaba5429ee0129a5fad2e523e",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-ad64a437e739d95f6'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:44:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04270f6ab9d803d2ed32d4750c73c63120a86d2b",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-a120273ce009880c4'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:42:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6f336a0c71949ae78736c134f31ae82e81871ca",
"body": null,
"is_bot": true,
"headline": "chore: update uv.lock for release",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-28T22:37:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12822ca5cf7ab648eebeb75c110c43286cc2a708",
"body": null,
"is_bot": true,
"headline": "chore(main): release vaultspec-rag 0.3.14",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-28T22:37:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b38a978e88b1c6014ac819bf074116829d73ca5",
"body": "fix(jobs): make progress, degradation evidence, and retry lineage tell the truth",
"is_bot": false,
"headline": "Merge pull request #296 from nevenincs/fix/job-progress-observability",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:36:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bdbb095b13e64252295d53498625da7321226e03",
"body": "fix(jobs): log control rejections and resolve retried parents",
"is_bot": false,
"headline": "Merge pull request #295 from nevenincs/fix/job-control-rejection-logging",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:36:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bad146c6117f0c03a68767e9090fd0d69fba8b10",
"body": "…n-order\n\nperf(indexer): pin retained-point join order; make OOM batch ceiling sticky",
"is_bot": false,
"headline": "Merge pull request #294 from nevenincs/perf/ledger-retained-point-joi…",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T22:36:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12ec8e01bcc4902747e421e467e9ce775c04216b",
"body": "A parent whose linked retry succeeded now reaches /jobs with the terminal\nstate string \"superseded\", preserving its pre-resolution result text.\nRendered verbatim that row read as a failure still awaiting action - the\nstored result is typically the original interruption message - and it was\ncounted n\n[…]\nesolved: a linked retry\nsucceeded\" beside the existing lineage note, the detail view replaces the\nstale result with a resolution line, and the row counts beside finished\nwork rather than as a failure.",
"is_bot": false,
"headline": "fix(cli): render superseded jobs as resolved history",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:54:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f19f0623dbd7edcd2325de77a866f9bb72102933",
"body": "fix(cli): name the free-threaded ABI in the torch repair command",
"is_bot": false,
"headline": "Merge pull request #293 from nevenincs/fix/free-threaded-abi-tag",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:53:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "912e464870d0fb60f0e47654e8db4708ada078ba",
"body": "The durable `uv tool install` remediation built its direct wheel URL from\none derived tag used in both positions. Those positions are the\ninterpreter tag and the ABI tag, and they differ on a free-threaded\nbuild: PyTorch publishes `cp314-cp314t`, not `cp314-cp314`.\n`sys.version_info` is (3, 14) for \n[…]\n 3.14.6 (Py_GIL_DISABLED=1) that\npackaging yields cp314-cp314t. The new test supplies those tags\nexplicitly because CI runs a GIL interpreter, where the two tags are\nequal and the defect is invisible.",
"is_bot": false,
"headline": "fix(cli): name the free-threaded ABI in the torch repair command",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:52:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7b5644df62e5f5348affddaffde0969e9f32de10",
"body": "Every job-control rejection now emits a structured service.job\nevent=rejected line carrying the code, reason, target job id, and the\nrequesting initiator, so a retry the UI appears to accept but the\nmanager refuses is no longer invisible to the operator. Rejections an\noperator can correct log at WAR\n[…]\ntry\nresolves nothing, so its parent honestly keeps offering retry. Without\nthis, a parent stayed interrupted and retryable forever, inviting an\nendless retry loop over work that had already succeeded.",
"is_bot": false,
"headline": "fix(jobs): log control rejections and resolve retried parents",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:47:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "910cef7e6fc31998348d0552922ebc74e7990db5",
"body": "…l the truth\n\nThree operator-facing observability defects, one cluster:\n\nProgress writes were gated on the step name changing, which admits exactly\none write per phase at the moment the counter is zero by construction - so\nno nonzero count ever reached the service log or the durable active-jobs\nsnap\n[…]\nnd\nlast progress the record already held, and the jobs feed/detail say out\nloud that a retry belongs to the job it retried, so an interrupted row\nwhose retry succeeded reads as retried, not abandoned.",
"is_bot": false,
"headline": "fix(jobs): make progress, degradation evidence, and retry lineage tel…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:43:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "232a055a93382c13fd14f91aed130d2778b95f0e",
"body": "…sticky\n\nWithout ANALYZE statistics SQLite reorders the retained-point three-way\njoin to scan every committed point per file row with a temp B-tree sort,\nso each keyset batch pays a full-corpus pass: 72k points took 578s where\nthe pinned states -> units -> points seek order takes 0.5s. The scan runs\n[…]\nhe learned\nceiling now persists on the model instance and probes upward after\nsustained success, so it converges under pressure and recovers when\nmemory frees instead of pinning at the low-water mark.",
"is_bot": false,
"headline": "perf(indexer): pin retained-point join order; make OOM batch ceiling …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T21:34:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b4bb5f7cdf45851bae103d1556234d1ad60191db",
"body": "feat(runtime): support CPython 3.14",
"is_bot": false,
"headline": "Merge pull request #291 from nevenincs/feat/python-314-support",
"author_name": "Neve",
"author_login": "nevenincs",
"committed_at": "2026-07-28T20:45:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84677d0d2bcb37377e902d31044a9cd583968d41",
"body": "The 3.13-only pin was justified everywhere by a protobuf metaclass\nTypeError that qdrant-client raised on 3.14. That defect is gone:\nqdrant-client 1.18 on protobuf 7.35 imports and serves local mode on\n3.14, cu130 torch ships cp314 wheels for every pinned version, and\ntree-sitter-language-pack is cp\n[…]\nlegs and the publish smoke test now run 3.13 and 3.14, each\npinning UV_PYTHON because .python-version would otherwise silently pull\nthe floor into both legs, and each asserting the interpreter it got.",
"is_bot": false,
"headline": "feat(runtime): support CPython 3.14",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T20:15:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3e7581bf49519ed644a02eb270e3c94b1032d5e3",
"body": "* chore(main): release vaultspec-rag 0.3.13\n\n* chore: update uv.lock for release\n\n---------\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(main): release vaultspec-rag 0.3.13 (#287)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-28T18:35:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1ec7ec9d1dcaf22c82b734a240b1e5b03e22311",
"body": "…cy lock",
"is_bot": false,
"headline": "Merge branch 'worktree-agent-abe80ee881d2addcc': refresh the dependen…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T18:31:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0006823e21f6b6c397d51a2ce862d7186bbcafe3",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into worktree-agent-abe80ee881d2addcc",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T18:31:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bafdee5f290e508fd8234cb92bf9a3683adb15ea",
"body": "Rewrote the gate rule so every line is a command rather than a narrative. The\nearlier revision carried incident detail — run counts, durations, which release\nwas affected — which is transient by nature and expires without anyone noticing.\nA rule states what to do and why the constraint exists; it do\n[…]\nonce.\n\nSame reason for the storage rule: a specific before/after latency pair became a\nstatement about the order of magnitude, which is the part that stays true.\n\nContent of the mandates is unchanged.",
"is_bot": false,
"headline": "docs(rules): mandate voice, and no transient state in a rule",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T18:20:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe0d3abb9fd2bbff34481318b430db12e9aa5e44",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into worktree-agent-abe80ee881d2addcc",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T18:06:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cec28e2f501dde9d65782577e2308a0b08e7ddd2",
"body": "Each had drifted well behind its feature: the indexes listed 4, 16, 6 and 16\nlinks against 13, 40, 14 and 21 actual documents. Regenerated through the\nowning verb, scoped per feature so no unrelated index was touched.\n\nVault check is down to one warning, and that one is a missing authored\nsection rather than a generated artifact.",
"is_bot": false,
"headline": "docs(vault): rebuild four stale feature indexes",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T18:00:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4a53174f4c00481155e7ba69a3c85c5328a0591",
"body": "The gating markdown gate was red on main against four committed vault\ndocuments. Applied mdformat under the project's own configuration; no prose\nwas altered. Changes are canonical table padding, two continuation lines\nrejoined, and ordered lists collapsed to a repeated marker.\n\nThe collapsed number\n[…]\nerate project setting, and a\nrepeated marker still renders as a consecutive sequence, so every rung\nreference resolves as written.\n\nmdformat and pymarkdown are now both clean across the full CI scope.",
"is_bot": false,
"headline": "docs(vault): conform four documents to the markdown gate",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:57:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e337864be58a75293dfc7c8289de742e584d2122",
"body": "The vault schema check gates in CI and was exiting non-zero: the plan\ncarried no reference to the decision record authorizing it, so every\nStep inherited an empty authorization chain. Repaired through the\nowning verb, which also stripped the leftover scaffold annotations.",
"is_bot": false,
"headline": "docs(vault): give the observability plan its authorizing references",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:53:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e1b657a8d7ee8ba157ea4531c867d11efe984870",
"body": null,
"is_bot": false,
"headline": "chore(deps): refresh the lock to the current resolution",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:48:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac4e83f014a655ca81286b54f4ba7d60d24f0b36",
"body": "…surrecting\n\nAgents dispatched with \"commit on your branch, no push, no merge\" have landed\nthemselves on main anyway. Main's CI runs under a concurrency group, so each\npush cancels the run in flight; eleven consecutive runs died across two hours\nduring a release cut, and a release once shipped with \n[…]\nould\nrecommit it; history shows it dropped at least twice already. Ignored now,\noutside the vaultspec-managed block so the next sync cannot revert it, next to\nthe `.lock` entry that was already there.",
"is_bot": false,
"headline": "docs(rules): forbid self-landing on main, and stop the hook config re…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:46:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1c710810dac049962638716060c56dfd9f641dab",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into land-mcp-fix",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:42:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6241499d757a5f8b6fa0e4462676240391e46420",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-a016ca8c21dbc064a' into land-final",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:30:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3cb045e062aeaab20ed723da398fa9f595ccf1cb",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-a3bf1a598f19b6222' into land-final",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:30:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09d859c917b9ecdd4549cddd3a8ddfb952ce0931",
"body": "…there\n\nA served code index reported 589 named files and zero content, and stayed\nthere: incrementals diffed clean against the manifest, republished zero, and\nno guard escalated. Four defects compose into that latch.\n\nA read materialised the ghost. count_code, count_code_files, get_all_code_ids\nand \n[…]\n, and dropping it would destroy the\ncollection the published breadth describes. The survey now protects what the\nsidecar names.\n\nGuard tests carry their mutation and were each run broken and restored.",
"is_bot": false,
"headline": "fix(index): never publish a code claim over a collection that is not …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:28:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fca23760f0368cc7e3757fea2b576cd3e3b7e4b6",
"body": "…ectable\n\nThe vault publication recorded which documents it indexed and at what\ncontent hash, but never how many points that should amount to. A vault\ncollection could therefore lose most of its chunks and keep answering\nqueries as though whole: every surviving point is valid, so searches\nsucceed an\n[…]\npy, so an absent or unusable figure stays 'cannot tell' on both\ndomains and is never read as a claim of zero. A sidecar written before\nthese keys existed is not reported as incomplete on that account.",
"is_bot": false,
"headline": "feat(indexer): publish the vault index's breadth so truncation is det…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:27:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "70bd6885cb0320ffdcc9ca46f357b0e2c652e021",
"body": "…fixes",
"is_bot": false,
"headline": "Merge branch 'worktree-agent-abe80ee881d2addcc': mcp 2.x conformance …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:24:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f9cab2d82041454dad46fda5cab3427e9ca31d52",
"body": "Two conformance gaps the mechanical 2.x port left behind, both found by\nreading what the 2026-07-28 protocol revision actually asks of a server\nrather than by following the rename.\n\nThe `vault://` template captured a document stem with plain expansion, which\nstops at the path separator. Every real s\n[…]\nalready cover; and Roots, Sampling and Logging, all\ndeprecated in this revision and none of them used - project roots already\narrive as tool parameters, which is the migration the revision recommends.",
"is_bot": false,
"headline": "fix(mcp): address a nested document stem, and advertise the release",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:24:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f279a75b6fb033117f78936b7ef8d706a749637",
"body": "Observe-only machine pressure verdict computed in the service domain from\ntelemetry already sampled, surfaced as one block on the jobs envelope and\nrendered by every adapter. Nothing defers, paces, shrinks, or refuses.",
"is_bot": false,
"headline": "Merge branch 'worktree-agent-a5aae91abcc9c887f': machine pressure tier",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:18:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f52d9be35e357418aff3fa080ca223c8c425cd6",
"body": "… for the store\n\nThree gaps in the tier as first landed, each one a way the verdict could\noutlive or understate its evidence.\n\nA verdict nothing refreshed stood forever. The tier only advances when a\nsurface polls, so an operator who closed a view during a bad minute and\nreopened it an hour later wa\n[…]\ng, while\ntimeout and unavailable need repetition, because either can be a single\nblip and a working store must not be condemned by one.\n\nStill observe-only. Nothing defers, paces, shrinks, or refuses.",
"is_bot": false,
"headline": "fix(service): fail the pressure verdict open, and let dead jobs speak…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:11:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a4048c81d1243504458598f746d9225c841a0fbb",
"body": "Two dash-delimited asides in the worktree-dedup research wrapped so the\ncontinuation line began with \"- \", which markdown reads as a list item and\nrendered as a spurious bullet mid-paragraph. Reflowed both so no line starts\nwith a dash, rather than accepting the formatter fix, which indented the\ncontinuation and preserved the broken list interpretation.\n\nAlso applies canonical table padding. Restores the gating markdown gate on\nthis file: mdformat and pymarkdown both clean.",
"is_bot": false,
"headline": "docs(vault): repair dash asides that markdown parsed as bullet lists",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:11:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "410a2a9a1ce9070904ccf8fef0a17d82537c14e8",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-abe80ee881d2addcc': mcp 2.x server surface",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:10:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4d8cc52aed008ee442cc9a09f44d2f55a919530",
"body": "…eady sampled\n\nThe per-job verdict answers \"is this job healthy\". Nothing answered the\nquestion beside it - \"is this machine under pressure\" - so a job pinned\nbehind a saturated card and a job pinned behind a dying store read the\nsame on every surface, and neither read differently from healthy work.\n[…]\ns nothing, anything else is shown\nas given. A pill nobody needs would cost the header the state labels\nsomebody does, and a tier a newer daemon names must never be swallowed by\na known-tier whitelist.",
"is_bot": false,
"headline": "feat(service): surface a machine pressure tier over the telemetry alr…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:03:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cf5b32649d73932f77f9267763d54e302c99fc18",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-agent-ad3b5184ea0c7502f' into land-citation-gate",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:02:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06fa33f50eba80c5aba25e798995e165535a9948",
"body": "… dedup\n\nPressure management is accepted observe-only: compute and surface a machine\npressure tier, change no behaviour. Every threshold a behavioural rung needs is\nunmeasured, and the one live incident would have been misjudged by the obvious\nrule - it was healthy work on a starved card and finishe\n[…]\nr than N. Real cross-worktree duplication is a single orphaned\nnamespace from a deleted worktree at 18% of the backend, and most of the\nfootprint is fixed preallocation rather than duplicated content.",
"is_bot": false,
"headline": "docs(vault): decide pressure management stage 0, reject storage-level…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T17:01:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3c06c2069d5e9aeec19a2f4a4912c8258e690493",
"body": "An operator who wants the live view had to remember it hangs off the jobs\nverb. The bare group printed help and nothing else, so `--watch` there was\nfree to mean the same screen with no filters applied.\n\nIt routes into the same entry point the jobs verb uses rather than\nrebuilding the query, and the two share one help sentence per flag so they\ncannot drift into describing different screens.",
"is_bot": false,
"headline": "feat(cli): open the jobs interface from `server --watch`",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:58:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0dde3bc75ef40044ee1ed34607d1d9e849b5a48f",
"body": "… citations\n\nThe gate reported clean over live citations because an assert message was\nnever prose to it. Measured against the tree rather than assumed: that one\nconstruct was hiding four findings across three test files, and every other\nscanned surface was already reached.\n\nProse positions added: a\n[…]\nleting the assert branch, neutralising the message-call scan, dropping\nreason, widening the scan to every positional argument, and dropping the added\ntext suffixes each reds exactly the row it blinds.",
"is_bot": false,
"headline": "fix(citation-gate): see the assert message, the last construct hiding…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:57:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a7e312b97c28745273ffa5ac1ed72f258733f572",
"body": "The `mcp` dependency was capped below 2 because 2.0 relocated the server\nclass and broke every `mcp.server.fastmcp` import. Migrate the surface\ninstead of holding the cap.\n\n`FastMCP` becomes `MCPServer` from `mcp.server.mcpserver`. The\n`stateless_http` constructor knob is gone in 2.x, and it was alr\n[…]\nsame titles,\nannotations, input schemas and result envelope, and the admin verbs stay off\nthe tool surface. The advertised annotations now carry the 2026-07-28 spec\nrevision the 2.x server negotiates.",
"is_bot": false,
"headline": "feat(mcp): move onto the mcp 2.x server surface and lift the version cap",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:55:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "72bf7f3b8bca80f1df4ec4dcd7c899f6c26a7098",
"body": null,
"is_bot": false,
"headline": "Merge commit '2431d1ed'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:29:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d2057bf4957d1cc973024137e00e7e09f261951",
"body": "run_cli lost its last caller when the package entry point returned to\ncalling the app directly, while the root command group independently\ntook over forcing windows_expand_args off for every invocation path.\nThe orphaned wrapper still claimed every program invocation ran through\nit, so a reader coul\n[…]\ns now the only place the rewriting pass is refused; breaking\nit alone fails all six argv guards on their named assertions, so the\nsubprocess tests observe the seam that actually carries the behaviour.",
"is_bot": false,
"headline": "refactor(cli): leave one seam refusing Windows argv expansion",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:27:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2431d1eda2377216ac420cb55f9ad4a85627fd4a",
"body": "…rdict\n\nThe document indexer once wrote points without refreshing the persisted\nactivity clock its siblings stamp, leaving its namespace looking\neternally idle to the ephemeral idle-TTL tier. The production gap is\nclosed through the shared index lifecycle; what was missing is a test\ntying the stamp \n[…]\ne, then walks the manifest entry through the\nsurvey and the reclaim evaluation: live status, document points\ncounted, and a pending verdict earned by the fresh stamp rather than by\nthe absence of one.",
"is_bot": false,
"headline": "test(reclaim): pin the document stamp all the way into the reclaim ve…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T16:27:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "678679eb294ba1524bcb6d5a3227bdb2632867bd",
"body": null,
"is_bot": false,
"headline": "Merge commit '79276ecd'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:46:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "79276ecdb98753c2a5804cb56afe4b81c0b0d99d",
"body": "The header pills become actual pills: solid background fills from the\npalette's published solid steps with the spec's contrast text, rounded\nhalf-circle end caps painted in each pill's own fill, and a bracket-free\npadded degradation for consoles that cannot carry the caps. The summary\nand service ba\n[…]\nak at any Unicode whitespace, no-break space included - and\nwhen even the unlabelled row cannot fit, the header breaks deliberately\nat group boundaries, health first, service next, whole pills always.",
"is_bot": false,
"headline": "feat(tui): rounded filled pills inside a unified rounded header",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:43:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cb81c310700cbcc4b6e50246ac36cf93ed545286",
"body": "… caught",
"is_bot": false,
"headline": "refactor(conformance): one home for every duplicated shape the probes…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:41:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7999fdfa82d275de42330d70ad61276f8a35a7aa",
"body": null,
"is_bot": false,
"headline": "Merge commit 'fabd2c67'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:14:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2be2389da6f2ef9c6774c1eeae5699f06320f53c",
"body": null,
"is_bot": false,
"headline": "fix(deps): cap mcp below 2 until the fastmcp surface is migrated",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:14:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fabd2c67d8d7078fc18a033fbcf086d2367da339",
"body": "…s itself\n\nAn interrupted clean rebuild used to drop the served collection up front\nand repopulate it in place, so a crash left a near-empty collection under\na sidecar still claiming the full corpus. The vault and document clean\npaths now replace in place - upsert over the live points, purge the\nrem\n[…]\ncument incremental path escalates to the full failure-safe\nreconciliation when the live count falls below the manifest's claim, so\nthe repair actually repairs instead of diffing against dead evidence.",
"is_bot": false,
"headline": "fix(index): rebuilds never destroy what they serve, and a shrink heal…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:10:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5b2f21ba28fd784e5bcc8e982936d3f0e67edead",
"body": null,
"is_bot": false,
"headline": "bump lock",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T15:01:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22b4dece481d579ce57dc8648d714953389f5035",
"body": "…ence-cost",
"is_bot": false,
"headline": "Merge branch 'worktree-agent-ae8a21042337e5806' into worktree-converg…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:57:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71e2fd46ae422a29bc3cf584ba91364dc4c6eaa3",
"body": "…ence-cost",
"is_bot": false,
"headline": "Merge branch 'worktree-agent-ae2327ba7177e27f6' into worktree-converg…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:57:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "596d266c3909351c5faafec132fef0412cd1dabe",
"body": null,
"is_bot": false,
"headline": "Merge commit 'a7b8a7b3'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:53:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7b8a7b3f7a501e23a70156b3f812ac0cc318e40",
"body": "…self\n\nThe interface's colours become a single palette module holding five scales\ncopied byte-for-byte from a published design-token specification, with a\nprovenance citation and the spec's own step semantics: status text is each\nscale's documented text step, chrome its background steps, and the dar\n[…]\number, and an\nanswering daemon that predates the field reads as unknown. The service\nstatus beat that feeds it was never actually scheduled; it now polls at\nits intended multiple of the jobs interval.",
"is_bot": false,
"headline": "feat(tui): one verbatim design-token palette, and the daemon names it…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:50:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bf2d42700b9bb057fa1716b74bb6d4c619a15779",
"body": null,
"is_bot": false,
"headline": "Merge branch 'worktree-convergence-cost'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:35:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d0d0ce1d200e3667d9f746c5aa069021ae654bd9",
"body": null,
"is_bot": false,
"headline": "Merge commit '9e5348a8' into worktree-convergence-cost",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:16:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e5348a8082c5573b6e02f65bd90d5d08a2f28a0",
"body": "Second design pass on the header. Every pill shares one anatomy - glyph,\ncount, label - grouped by dim separators into states, health, service\ncondition, GPU, and page count; width sheds state labels first, then\nhealth labels, and never the condition or GPU cells. The glyph families\nkeep categories \n[…]\nic tone resolved from the active theme, and the two schemes are the\nframework-shipped Nord (dark, default) and Solarized Light (light,\nctrl+t), so both palettes are the ones their designers published.",
"is_bot": false,
"headline": "feat(tui): uniform pill header on shipped Nord and Solarized palettes",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:13:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "195102a062b628a2d0b62f49316d72a5c2b26c62",
"body": "…7177e27f6",
"is_bot": false,
"headline": "Merge branch 'worktree-convergence-cost' into worktree-agent-ae2327ba…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:09:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cacbc143e378db44f5bf290879e635dee3048401",
"body": null,
"is_bot": false,
"headline": "Merge commit '3bc96eb8' into worktree-convergence-cost",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:07:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3bc96eb843aefc10adb36fb2d30d7b9ec2b9330a",
"body": "… on every search\n\nA collection that silently loses points keeps answering queries as though\nit were whole - the one failure mode where the service serves wrong results\nwhile reporting health. Every search now reconciles the live count it\nalready took against the manifest the publication wrote, and \n[…]\non is exact\nbecause publication counts the store after reconciliation and writes the\nfigure atomically per generation; the check adds no store round trip and\ncaches the claim per root for a short TTL.",
"is_bot": false,
"headline": "feat(integrity): reconcile served breadth against the published claim…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T14:05:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9a9afe609ec1c442a40bdd37223dd886b6aca52c",
"body": "…ation ADR",
"is_bot": false,
"headline": "docs(vault): pressure-management research grounding the tiered-degrad…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:56:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a3e4ade9c8868f826e17f3a29de62638a99830ad",
"body": null,
"is_bot": false,
"headline": "Merge commit '8c264a66' into worktree-convergence-cost",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:53:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c264a66d0570f8bcc0208eae5b413e655e0bfca",
"body": "…ng an fsync\n\nEvery progress publish paid a full manager-state persist - JSON, fsync,\natomic replace, under the manager lock - at ~5.5 ms/call, which is what\nturned a 2,113-file hash phase into ~71 seconds. Progress is advisory;\nits durable write now lands in memory immediately and coalesces onto a\n\n[…]\n write lock\nclaimed before the manager lock is released so an older serialization\ncan never replace a newer one. Measured: 7.9 ms -> 0.03 ms amortized\nper publish (~250x) on the same writer and state.",
"is_bot": false,
"headline": "perf(jobs): coalesce progress durability so a loop publish stops payi…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:51:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "28e56d704f7daad322aab93a9856fe5326ef070b",
"body": "The header prose becomes icon-coded pills - each state a glyph, count and\ncolour, with ASCII fallbacks and dim-at-zero - joined by the job-health\ntallies, a service-condition pill (reachability, then the worst verdict\nthe service stamped), and a GPU cell that is always visible. The service\nexposes t\n[…]\nady serves, behind a short cache, so\nthe header reads pressure from the payload it polls anyway; an absent\nblock renders as a dash and a probed-but-unmeasurable host as n/a, never\nas invented numbers.",
"is_bot": false,
"headline": "feat(tui): pill header with service condition and always-on GPU pressure",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:39:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f45399fed2a6e73474220666c92a2d032536fd6",
"body": "…042337e5806",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into worktree-agent-ae8a21…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:21:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cd54c3b8a20d002ce0d666be8e11aa2484540d9",
"body": "…anes\n\nThe log pane parsed its window into fields instead of dumping it: each of\nthe three service dialects renders as a level badge, local-time stamp,\nprominent event or request, and wrapped key=value detail; a line matching\nno dialect is sanitized (escapes stripped, controls removed, length\nbounde\n[…]\nlections\ncollapse behind counted markers with the filter indicated in the pane\ntitle, errors are one key away, and every pane wears a rounded focus-lit\nframe with a zoom key that follows the keyboard.",
"is_bot": false,
"headline": "feat(tui): structured, sanitized, navigable log pane with focus-lit p…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:21:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "04c398be620f3913112e08f353762741bfaa4812",
"body": null,
"is_bot": false,
"headline": "fix(tests): teach the counting reporter the forward-boundary protocol",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:19:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab4462ab03ac0839430519ac05c3ceea610b0205",
"body": null,
"is_bot": false,
"headline": "Merge commit '8b464109'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:18:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d337707e3053ce5493eccdcc5ad43aa7b2873646",
"body": null,
"is_bot": false,
"headline": "Merge commit 'bdbe9d6b'",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:15:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bdbe9d6b17e99d6b257d0e5d1b6fe479b2f7daf6",
"body": "…an honest error channel\n\nA vault index job frozen mid-forward under foreign GPU saturation was\nindistinguishable from a hang or a dead backend on every operator surface\nfor five minutes. Progress only ticks at slice boundaries, so the fix\nreports truth from where truth exists rather than changing c\n[…]\nlocal\n stall heuristic survives only for daemons that predate the field.\n- reindex_failed now always carries a populated error, so the ERROR channel\n no longer publishes failures that name no cause.",
"is_bot": false,
"headline": "feat(observability): give long encode phases a verdict, a cause, and …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:08:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8b464109249e701d328d861830cd8ef83ff94695",
"body": "Hashing 2113 small files ran at ~30 files/s because every file paid an\nfsync-bounded job-state persist through its progress tick (measured\n5.5ms/call against a 0.10ms digest), plus two lock-taking checkpoints.\nBatch ticks and checkpoints onto a 0.2s budget with exact final totals,\nkeep gate evidence\n[…]\nted by scoped-run creates and deletes.\n\nCold hashing now runs ~6,000 files/s and warm ~37,000 files/s on the\nsame corpus shape, with progress persists collapsed from one per file\nto a handful per run.",
"is_bot": false,
"headline": "perf(indexer): amortize per-file overhead out of the hashing loops",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:06:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "96a55d7edb1e97eb6355581a6833bc41ff6c2875",
"body": "The service has computed progress_rate_per_second and\nestimated_remaining_seconds since the sampling window landed, but neither\nentry point said anything an operator could read: the TUI painted a bare\ndash for a published null and the plain feed and detail views ignored the\nfield entirely. A null is\n[…]\n they never read below the value\n the service just published\n\nEvery negative rendering assertion is mutation-proven: each guard was\nbroken, watched failing on its named assertion alone, and restored.",
"is_bot": false,
"headline": "feat(jobs): render the remaining-time estimate everywhere operators look",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T13:06:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "075af5f8b8dd438280636be98138f8065ea0e074",
"body": null,
"is_bot": false,
"headline": "docs(vault): close convergence-cost plan with verification audit",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T12:43:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43721483d70b065dcf67e3aac3568062adfaa9a4",
"body": null,
"is_bot": false,
"headline": "docs(vault): convergence-cost and index-observability pipeline records",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T12:41:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bcde1986c28ae75ff49da4e142ca887e20f2c3a",
"body": "…interruptions scoped",
"is_bot": false,
"headline": "perf(index): answer unchanged files from stat evidence and keep live …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T12:38:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "211b9c900697fc8296fbc59a99fef597bfe78b18",
"body": "Finishes the sweep. Eight are `reportPrivateUsage` in two integration\nmodules, where the execution environment already turns that rule off, and\nthe ninth is the `# type: ignore[misc]` twin of one removed earlier in the\nbenchmarks conftest.\n\nThat last one is worth naming, because \"basedpyright says i\n[…]\nso their eventual commit keeps the\nremoval rather than restoring the comments, and once over the HEAD blobs,\nwhich is what this commit records. Their in-flight work is untouched and\nstays uncommitted.",
"is_bot": false,
"headline": "refactor(types): delete the last nine suppressions that suppress nothing",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T09:23:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "04cc613ddef64ebd9d8cc401f8b4d5fa67623a5e",
"body": "A daemon spawn costs a measured 17s, of which 13s is the production model\nset reaching health readiness. None of that is reducible without spawning\nunder a weaker configuration than the one under test, so the saving has to\ncome from spawning fewer times. Five modules in the serialized\nsubprocess-GPU\n[…]\n be satisfied by a rendered ``11``.\nThey now parse the counter by exact key and assert the increment their\nnames claim, and the search test additionally pins that a reindex moves\nonly its own counter.",
"is_bot": false,
"headline": "perf(tests): share one live daemon across the modules that only read it",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T09:05:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "332a13bc58f2bd0b2fd9d8f119a103cae4506baf",
"body": "`reportUnnecessaryTypeIgnoreComment` is off, so a suppression that stops\nmatching its diagnostic goes silent in both directions: it neither fires\nnor reports itself as dead. Turning it on found 173 of the tree's 406\n`# pyright: ignore` comments suppressing nothing at all - 43% of them.\n\nMost are `re\n[…]\n edits in. Rewriting those\nraces their writes against line numbers that may already have shifted.\nThey are worth a follow-up, together with making the rule gating so this\nclass cannot regrow silently.",
"is_bot": false,
"headline": "refactor(types): delete the 164 type suppressions that suppress nothing",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T09:01:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dc87ddf99ffc85c8df588152b6e455bb7f689c5a",
"body": "…estating them\n\nEvery threshold the report named was stale, and the report's own docstring says\nit must not restate one. It announced a cognitive ceiling of 25 against a\nconfigured 20, a module ceiling of 3400 against 3000, and a\n`[tool.ruff.lint.pylint]` baseline table that had been deleted in favo\n[…]\ne table is ever reintroduced.\n\nSection labels are also escaped now. Rich read a bare `[tool.complexipy]` as a\nstyle tag and dropped it, so the label silently lost the one thing it existed to\npoint at.",
"is_bot": false,
"headline": "fix(tooling): make the health report read its thresholds instead of r…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:59:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "79ad5254fef82779c969042a6b2ee7b931cf57d3",
"body": "…ceiling\n\nThe cognitive gate was red: `_apply_torch_install_state` and `_freeze_option`\nboth scored 21 against a ceiling of 20, so `just lint complexity` failed and\ntook every step behind it in the same recipe with it.\n\nExtraction only, no threshold moved. Each function keeps its dispatch chain and\n\n[…]\nranch body to a named helper - the shape the neighbouring\n`_handle_canonical_state` and `_freeze_temporal` already use. Worst production\nfunction is now 20, which is what the ceiling is calibrated to.",
"is_bot": false,
"headline": "refactor(complexity): pay down the two production functions over the …",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:59:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "578d3ccca4c5e4aa3c2b2e15dc8a57fb9e8caae7",
"body": "Four of the five basedpyright errors were suppressions that had drifted\noff the line they suppress: pyright anchors an ignore to the diagnostic\nstart line, so the two `reportMissingTypeStubs` comments sitting on the\nimported-name line inside a parenthesised `from` import were dead, and\nthree module-\n[…]\nng the\nelement type at the binding fixes the call for ty; the residual pyright\ncomplaint is only that the library alias reaches unstubbed members, the\nsame gap already suppressed on the call below it.",
"is_bot": false,
"headline": "fix(types): return both type gates to zero findings",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:44:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d445d9e45493d56450db8d1bf64df4a0f65c914a",
"body": "…ntervals\n\nThe cap test spent ~29s asleep. Its collections are empty, so the\noptimizer has no merge to pick up and the wait runs to the end of the\noptimizer-start budget before returning the truthful zero-reclaim\nreading the first sample already had; what remained went on convergence\nsamples spaced \n[…]\nleep and monotonic on the\nexisting request-dataclass seam rather than being patched onto the\nmodule, and poll_s is carried to the batch path, which had no way to set\nit and so always took the default.",
"is_bot": false,
"headline": "test(storage): pace the reconcile-cap e2e off shortened convergence i…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:21:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f7f1729a26a1d1674a467cee1608f08359375bc9",
"body": "… closes\n\nThe recorded resident-model baseline only ratcheted upward. Closing a\nregistry dropped its model and reranker but left the figure describing\nthem, so it permanently overstated residency by whatever that stack held.\n\nThat is not a rounding error in the comparison. Index enforcement clamps a\n[…]\nond model copy through the\nregistry and reset it at teardown. The guard now states the premise it\nrests on, so a recurrence names the stale baseline instead of reporting\nonly that no error was raised.",
"is_bot": false,
"headline": "fix(service): re-establish the resident CUDA baseline when a registry…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:16:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5d7b4fa5fed8a3e89c3df23e04565657eeaac240",
"body": "…he shipped cadence\n\nThe orphaned-shim reap test spent 55s of its 57s runtime asleep: it waited\nout the watchdog's real 10s grace window and all three real 15s re-arm\nrounds. None of the mechanism it proves reads the clock for anything but\nhow long to sleep between rounds, so the orphan now gets bot\n[…]\nap under.\n\nBoth directions verified: reverting the re-arm to a permanent disarm fails\non the survival assertion, and reaping after one round instead of three\nfails on the consecutive-rounds assertion.",
"is_bot": false,
"headline": "test(server): pace the orphan-reap e2e off shortened intervals, not t…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:16:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "77d14ab52271f0951ae60838b976d165d48cce1d",
"body": "The doctor envelope test asserted the pre-install exit-0 contract while the\nprovisioning axis was read from whatever workspace the suite ran in. Rag's own\nworktree declares tool mode and launches from source - a legitimate mismatch\nthat lifts the exit to 1 - so the test failed here and passed elsewh\n[…]\nflagged a lazily-loaded-attribute accessor on two\nunrelated classes, differing in attribute, return type and message. That is the\nsmall-guard shape the allowlist already records, not shared behaviour.",
"is_bot": false,
"headline": "fix(tests): stop two checks reading state they do not control",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:15:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d9efb9148fa50b6920d3ed3b76a73e339a81d55a",
"body": "…und run\n\nTwo races in the original: the second launcher slept a fixed 2s hoping the\norphan had armed by then, and the pid file was read while being written.\nThe launcher now leaves on the orphan's own signal - the grace window it\nmust beat starts at the install it waits for - and the pid file is\npu\n[…]\nthe shipped\ncadence is asserted directly instead of re-observed at a minute per run.\nVerified both ways: 64s to 20s, and it still fails on the intended\nassertion when the permanent disarm is restored.",
"is_bot": false,
"headline": "test(stdio): make the orphan-reap e2e deterministic and assert the ro…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:06:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3822943bfbee905b8906d810042729cf8a4cb225",
"body": "test_unwaited_reconcile_never_reports_a_reclaim_figure polls the on-disk\nsize of a collection while the optimizer is actively restructuring it, and\nthe test-local _dir_size stat-ed every entry rglob returned. The optimizer\nunlinks segment directories and atomic-write temp files continuously during\na\n[…]\nit.\n\nConfirmed against a real qdrant server: the bare sum raised twice inside\nfourteen polls of an in-flight merge, the guarded walk survived 224 polls\nacross ten merges clean. Full module: 21 passed.",
"is_bot": false,
"headline": "fix(tests): measure collection size through the guarded production walk",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:06:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "35b2e85c77af720eb86a15cb37735d9d23292f1e",
"body": "This project runs its gates explicitly and has no commit hooks. The\nconfig was deliberately removed in bbe96e3c, then came back in two WIP\ncheckpoint commits (842d9135, b5e9b13e) that were not about hooks at all.\nNothing invoked it: no workflow, no justfile recipe.\n\nRestoring it was also actively un\n[…]\nit reverts every unstaged change in the window.\n\nThe pyproject comment claiming ty is the \"fast pre-commit gate\" described\nthe same removed machinery and now says what it means: a gate to run by\nhand.",
"is_bot": false,
"headline": "chore: drop the resurrected pre-commit hook configuration",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T08:00:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1d8dcdecf1dc262d8b84401c23ea6cc3f46bb514",
"body": "Development scaffolding, not part of the codebase: a documentation-rewrite\ncorpus map and a ground-truth snapshot pinned to commit 5b6ecd34 at package\nversion 0.3.3, verified 2026-07-23. The tree is on 0.3.12, so the snapshot\ndocuments a state that no longer exists and invites being trusted anyway -\nit says \"do not carry over old behavior; trust this file\".\n\nNothing in the repo references either file. History keeps them if the\ncampaign needs picking back up.",
"is_bot": false,
"headline": "chore: drop the tracked docs-campaign working notes",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T07:50:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48e3046e72f53dfe019fd9037c0ec242ed350988",
"body": "The previous entry hardcoded .venv/Scripts/python.exe, which only exists\non Windows and only when the venv sits at that relative path - a checked-in\nconfig cannot assume either.\n\nuv run --no-sync reaches the same interpreter on every platform. It keeps\nwhat the hardcoded path was for: uvx --from res\n[…]\nche (the published build) rather than the worktree, so the shim\nunder test was never the one being edited. The [mcp] extra is already\npresent in the project environment, so --from bought nothing else.",
"is_bot": false,
"headline": "fix(mcp): resolve the worktree build without a platform-specific path",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T07:48:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3293e47e2aa80c83044b93e8bb15bd78d1ae61c9",
"body": "Side effect of a vault check --fix run; content is unchanged.",
"is_bot": false,
"headline": "chore(vault): refresh the jobs-tui index stamp",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T07:43:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "362bfebde26a0ad56b7e4c453f50a6f6023b8fe5",
"body": "Resolves both servers to the local venv interpreter instead of going out\nthrough uv/uvx, which resolved vaultspec-rag from the published build\nrather than the worktree under test.",
"is_bot": false,
"headline": "chore(mcp): run the MCP servers through the worktree interpreter",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T07:43:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "393753b213276a8fa0f8ff55fa19047e3539fbea",
"body": "…nchor\n\nShims were found resident 20.6h after their client and their whole\nancestor chain had exited. With no resolvable pipe creator the\ndiscovered chain arms grace-prunable, and when every member dies inside\nthe grace window the backstop disarmed permanently, leaving stdin EOF\nas the only exit pat\n[…]\nthe reap off\nindefinitely instead of reading as orphanhood.\n\nUnanchored rounds and failed waits now emit structured stderr events\nalongside the existing exit event, which keeps its shape.\n\nCloses #288",
"is_bot": false,
"headline": "fix(server): re-arm the stdio watchdog rather than disarm on a lost a…",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T07:29:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "16d854800dc0fb4726dfdf3988949f513e19371a",
"body": null,
"is_bot": false,
"headline": "bump lock",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T06:12:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2f46c20774260dcd230065fddd7fb71bb8c19e0",
"body": "_clean_watchers called _stop_all_watchers() from a synchronous fixture and\ndropped its return value. That call only signals the watchers; the awaitables\nit hands back are what join their drains. Nothing awaited them, so every run\nleft the drains outstanding and the project slots those watchers opene\n[…]\nat get_registry(), and\ngive the stress-watcher fixture the same try/finally teardown: cleanup that\nsits behind a wall of assertions turns one failure into a setup error for\nevery test that follows it.",
"is_bot": false,
"headline": "fix(tests): stop the watcher fixture stranding drains and slots",
"author_name": "Gergely Wootsch",
"author_login": "nevenincs",
"committed_at": "2026-07-28T05:52:40Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 47,
"commits_last_year": 2262,
"latest_release_at": "2026-07-28T22:46:45Z",
"latest_release_tag": "vaultspec-rag-v0.3.14",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 15,
"days_since_latest_release": 0,
"mean_days_between_releases": 0.5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 42,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "vaultspec-rag",
"exists": true,
"license": null,
"keywords": [
"claude-code",
"code-search",
"cuda",
"embeddings",
"gpu",
"hybrid-search",
"mcp",
"qdrant",
"rag",
"reranking",
"retrieval-augmented-generation",
"semantic-search",
"sentence-transformers",
"splade",
"vaultspec",
"vector-search",
"Development Status :: 4 - Beta",
"Environment :: GPU :: NVIDIA CUDA",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Documentation",
"Topic :: Text Processing :: Indexing",
"Typing :: Typed"
],
"ecosystem": "pypi",
"matches_repo": true,
"registry_url": "https://pypi.org/project/vaultspec-rag/",
"is_deprecated": false,
"latest_version": "0.3.14",
"repository_url": "https://github.com/nevenincs/vaultspec-rag",
"versions_count": 42,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2026-04-12T13:26:41.252839Z",
"latest_published_at": "2026-07-28T22:48:14.244984Z",
"latest_version_yanked": null,
"days_since_latest_publish": 0
}
]
},
"popularity": {
"forks": 0,
"stars": 2,
"watchers": 1,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 10
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": true,
"bootstrap_files": [
"justfile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 95925,
"source_files_sampled": 599,
"oversized_source_files": 6,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md",
"GEMINI.md"
],
"agent_instruction_max_bytes": 37522
},
"dependencies": {
"manifests": [
"pyproject.toml"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"pypi"
],
"dependencies": [
{
"name": "sentence-transformers",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=5.0"
},
{
"name": "torch",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=2.4"
},
{
"name": "transformers",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=4.51"
},
{
"name": "huggingface-hub",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=1.24.0"
},
{
"name": "numpy",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=2.5.1"
},
{
"name": "qdrant-client",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=1.16.0"
},
{
"name": "pydantic",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=2.12.5"
},
{
"name": "rich",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=14.3.2"
},
{
"name": "vaultspec-core",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.1.45"
},
{
"name": "typer",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.26.7"
},
{
"name": "click",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=8.1.7"
},
{
"name": "python-dotenv",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=1.0.0"
},
{
"name": "tree-sitter",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.23"
},
{
"name": "tree-sitter-language-pack",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.10,<1.6.2"
},
{
"name": "pathspec",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.12"
},
{
"name": "watchfiles",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=1.0.0"
},
{
"name": "psutil",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=6.0.0"
},
{
"name": "tomlkit",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.13"
},
{
"name": "packaging",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=24.0"
},
{
"name": "anyio",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=4.14.2"
},
{
"name": "starlette",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=1.3.1"
},
{
"name": "uvicorn",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=0.51.0"
},
{
"name": "textual",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": ">=8.2.8"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 153,
"open_issues": 10,
"closed_ratio": 0.93,
"closed_issues": 133,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "nevenincs",
"commits": 2319,
"avatar_url": "https://avatars.githubusercontent.com/u/11316825?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"bootstrap-branch.yml",
"ci.yml",
"claude.yml",
"publish.yml",
"release-please.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"uv.lock"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 7 merged PRs checked by a CI test -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/20 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "addf1b3f5d4fc85d4607323c7f33a388fbb701b9",
"ran_at": "2026-07-28T22:49:21Z",
"aggregate_score": 3.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-28T22:48:21Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-28T22:46:27Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 262,
"created_at": "2026-07-25T03:11:15Z",
"last_comment_at": "2026-07-25T05:03:18Z",
"last_comment_author": "nevenincs"
},
{
"number": 268,
"created_at": "2026-07-25T05:52:34Z",
"last_comment_at": "2026-07-25T23:58:19Z",
"last_comment_author": "nevenincs"
},
{
"number": 272,
"created_at": "2026-07-25T08:49:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 274,
"created_at": "2026-07-25T16:40:06Z",
"last_comment_at": "2026-07-25T22:11:23Z",
"last_comment_author": "nevenincs"
},
{
"number": 275,
"created_at": "2026-07-25T17:12:41Z",
"last_comment_at": "2026-07-26T07:37:40Z",
"last_comment_author": "nevenincs"
},
{
"number": 281,
"created_at": "2026-07-26T00:14:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 282,
"created_at": "2026-07-26T00:14:56Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 283,
"created_at": "2026-07-26T00:18:09Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 289,
"created_at": "2026-07-28T06:47:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 290,
"created_at": "2026-07-28T08:24:20Z",
"last_comment_at": "2026-07-28T08:26:20Z",
"last_comment_author": "nevenincs"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/nevenincs/vaultspec-rag",
"host": "github.com",
"name": "vaultspec-rag",
"owner": "nevenincs"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"security": 36,
"vitality": 80,
"community": 24,
"governance": 58,
"engineering": 65
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 80,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 74,
"inputs": {
"commits_last_year": 2262,
"human_commit_share": 0.97,
"days_since_last_push": 0,
"active_weeks_last_year": 15
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "15/52 weeks with commits",
"points": 10.4,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 15
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "2262 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 2262
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 47,
"latest_release_tag": "vaultspec-rag-v0.3.14",
"releases_from_tags": false,
"days_since_latest_release": 0,
"mean_days_between_releases": 0.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "47 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 47
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~0.5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 0.5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 24,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 2,
"watchers": 1,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 2
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "1 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 1
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 58,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 13,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"merged_prs": 153,
"open_issues": 10,
"closed_issues": 133,
"issue_closed_ratio": 0.93,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "93% of issues closed",
"points": 43.5,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 93
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "153/153 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 153,
"decided": 153
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/20 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 53,
"inputs": {
"followers": 36,
"owner_type": "User",
"is_verified": null,
"owner_login": "nevenincs",
"public_repos": 15,
"account_age_days": 4164
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "36 followers of nevenincs",
"points": 11.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 36,
"login": "nevenincs"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "15 public repos, account ~11 yr old",
"points": 20.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 15
}
},
{
"code": "account_age_years",
"params": {
"years": 11
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"vaultspec-rag"
],
"ecosystems": "pypi",
"any_deprecated": false,
"min_days_since_publish": 0
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on pypi",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "pypi"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 0 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 0
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "42 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 42
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 65,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 48,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 7 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [
"cuda",
"embeddings",
"gpu",
"mcp",
"qdrant",
"rag",
"semantic-search",
"sentence-transformers",
"vector-search",
"vaultspec",
"claude-code",
"code-search",
"hybrid-search",
"python",
"reranking",
"retrieval-augmented-generation",
"splade"
],
"has_wiki": false,
"homepage": "https://pypi.org/project/vaultspec-rag/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://pypi.org/project/vaultspec-rag/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "17 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 17
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 36,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 36,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 7 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/20 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 56,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "good",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.701,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md",
"GEMINI.md"
],
"agent_instruction_max_bytes": 37522
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md, GEMINI.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md, GEMINI.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "68 of 97 human commits state their intent (structured subject or explanatory body)",
"points": 37.4,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 68,
"sampled": 97
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"uv.lock"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [
"justfile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "justfile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "justfile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"primary_language": "Python",
"largest_source_bytes": 95925,
"source_files_sampled": 599,
"oversized_source_files": 6
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Python without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Python"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "6/599 source files over 60KB",
"points": 54.4,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 599,
"oversized": 6
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "critical",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"example_dirs": [],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index pypi:vaultspec-rag@0.3.14; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-28T22:49:33.691185Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/nevenincs/vaultspec-rag.svg",
"full_name": "nevenincs/vaultspec-rag",
"license_state": "standard",
"license_spdx": "MIT"
}