Skip to content

feat(multi-lens-review): standalone durable fan-out code-review workflow (replaces parallel-brief-runner) - #1709

Merged
getlarge merged 4 commits into
mainfrom
multi-lens-review
Jul 28, 2026
Merged

feat(multi-lens-review): standalone durable fan-out code-review workflow (replaces parallel-brief-runner)#1709
getlarge merged 4 commits into
mainfrom
multi-lens-review

Conversation

@legreffier

@legreffier legreffier Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

A standalone durable code-review workflow on @themoltnet/tasks-orchestrator:
fan out N specialist reviews (security / correctness / performance /
test-coverage) with parallelTasks, join them into a server-gated verdict
with joinCondition, resumable via ctx.step.

Scope (revised after design review)

An earlier revision of this PR also extracted a shared @themoltnet/review-workflow
lib and rewired issue-lifecycle onto it. The design review (thanks!) correctly
found that lib to be a non-meaningful abstraction — it delegated every domain
decision to callbacks, issue-lifecycle didn't use its synthesis, and the only
shared behavior (the up-front joinCondition-gated synthesis) is a handful of
lines the example apps already inline. So that split is dropped:

This PR also removes apps/parallel-brief-runner — the standalone
multi-lens-review is the same fan-out → gated-join shape but a real use case, so
it supersedes the toy example.

Proven live

Run end-to-end against a local stack + a real agent-daemon on Ollama Cloud
(gemma4:31b-cloud) over a planted-bug diff: security caught SQL + command
injection, correctness caught an off-by-one, and (unplanted) performance
flagged an unbounded query + test-coverage flagged missing injection-payload
tests — consolidated verdict request-changes. The 4-lens run surfaced ~10
issues vs ~3 for 2 lenses.

Findings surfaced while testing

Verified

typecheck + lint + test (6 inline FakeTasks tests) + build green.

References

legreffier Bot added 2 commits July 27, 2026 17:23
…dition verdict

New apps/multi-lens-review on @themoltnet/tasks-orchestrator: parallelTasks fan-out
of per-lens freeform reviews + a server-gated (joinCondition) synthesis verdict.
6 inline tests, typecheck/lint/build green.

MoltNet-Diary: 806e0e04-da11-4361-b257-5bb133d9961f
…hema

The freeform input schema is additionalProperties:false (brief, expectedOutput,
constraints, successCriteria, context, execution, continueFrom). Dropped the
extra 'lens' and 'reviewTaskIds' fields — the lens is baked into the review
prompt and the review task ids into the synthesis brief text — so task creation
passes validation. Verified end-to-end against a live agent-daemon on Ollama
Cloud: security caught SQL+command injection, correctness caught the off-by-one,
synthesis fetched both reviews and returned request-changes.
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

✅ CLI go.mod matches internal Go module releases

apps/moltnet-cli/go.mod is aligned with the versions tracked in .release-please-manifest.json.

@github-actions

Copy link
Copy Markdown
Contributor

🚨 Dependency Audit — Vulnerabilities found

Full report
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical            │ fast-jwt: Incomplete fix for CVE-2023-48223: JWT       │
│                     │ Algorithm Confusion via Whitespace-Prefixed RSA Public │
│                     │ Key                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=6.1.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=6.2.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-mvf2-f6gm-w987      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical            │ fast-jwt: Cache Confusion via cacheKeyBuilder          │
│                     │ Collisions Can Return Claims From a Different Token    │
│                     │ (Identity/Authorization Mixup)                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=0.0.1 <6.2.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=6.2.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-rp9m-7r4c-75qg      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical            │ Arbitrary code execution in protobufjs                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.0.1                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-xq3m-2v4x-88gg      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical            │ fast-jwt: JWT auth bypass due to empty HMAC secret     │
│                     │ accepted by async key resolver                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=6.2.3                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=6.2.4                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-gmvf-9v4p-v8jc      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical            │ node-tar: Decompression/parse DoS via unlimited input  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ tar                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=7.5.18                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.5.19                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>tar                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-23hp-3jrh-7fpw      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ fast-jwt accepts unknown `crit` header extensions (RFC │
│                     │ 7515 violation)                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=6.1.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ <0.0.0                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-hm7r-c7qw-ghp6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ protobuf.js: Code injection through bytes field        │
│                     │ defaults in generated toObject code                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-66ff-xgx4-vchm      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ protobuf.js: Code generation gadget after prototype    │
│                     │ pollution                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-75px-5xx7-5xc7      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ protobuf.js: Process-wide denial of service through    │
│                     │ unsafe option paths                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-jvwf-75h9-cwgg      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ protobuf.js: Denial of service through unbounded       │
│                     │ protobuf recursion                                     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-685m-2w69-288q      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici vulnerable to TLS certificate validation bypass │
│                     │ via dropped requestTls in SOCKS5 ProxyAgent            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-vmh5-mc38-953g      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici vulnerable to TLS certificate validation bypass │
│                     │ via dropped requestTls in SOCKS5 ProxyAgent            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.23.0 <7.28.0                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-vmh5-mc38-953g      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici WebSocket client vulnerable to denial of        │
│                     │ service via cumulative fragment bypass                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-38rv-x7px-6hhq      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici WebSocket client vulnerable to denial of        │
│                     │ service via fragment count bypass                      │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-vxpw-j846-p89q      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici WebSocket client vulnerable to denial of        │
│                     │ service via fragment count bypass                      │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.0.0 <7.28.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-vxpw-j846-p89q      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ undici vulnerable to cross-origin request routing via  │
│                     │ SOCKS5 proxy pool reuse                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.23.0 <7.28.0                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-hm92-r4w5-c3mj      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ protobufjs: Denial of service through unbounded Any    │
│                     │ expansion during JSON conversion                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.4.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.4.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-wcpc-wj8m-hjx6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ brace-expansion: DoS via exponential-time expansion of │
│                     │ consecutive non-expanding {} groups                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ brace-expansion                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=3.0.0 <5.0.7                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=5.0.7                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/pi-coding-          │
│                     │ agent>minimatch>brace-expansion                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-3jxr-9vmj-r5cp      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ node-tar: Negative tar entry size causes infinite loop │
│                     │ in archive replace                                     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ tar                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=7.5.17                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.5.18                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>tar                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-8x88-c5mf-7j5w      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ fast-uri vulnerable to host confusion via literal      │
│                     │ backslash authority delimiter                          │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-uri                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=3.0.0 <=3.1.3                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=3.1.4                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>ajv>fast-uri  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-v2hh-gcrm-f6hx      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ sharp inherited vulnerabilities in libvips:            │
│                     │ CVE-2026-33327, CVE-2026-33328, CVE-2026-35590,        │
│                     │ CVE-2026-35591                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ sharp                                                  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <0.35.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=0.35.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__rest-api>@huggingface/transformers>sharp         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-f88m-g3jw-g9cj      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ fast-uri vulnerable to host confusion via failed IDN   │
│                     │ canonicalization                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-uri                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=3.0.0 <3.1.3                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=3.1.3                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>ajv>fast-uri  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-4c8g-83qw-93j6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ find-my-way: DDoS with HTTP2                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ find-my-way                                            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=9.6.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=9.7.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>fastify>find-my-way                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-c96f-x56v-gq3h      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high                │ brace-expansion: DoS via unbounded expansion length    │
│                     │ causing an out-of-memory process crash                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ brace-expansion                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=5.0.7                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=5.0.8                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/pi-coding-          │
│                     │ agent>minimatch>brace-expansion                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-mh99-v99m-4gvg      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ fast-jwt has a ReDoS when using RegExp in allowed*     │
│                     │ leading to CPU exhaustion during token verification    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=5.0.0 <=6.2.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=6.2.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-cjw9-ghj4-fwxf      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ fast-jwt: Stateful RegExp (/g or /y) causes            │
│                     │ non-deterministic allowed-claim validation (logical    │
│                     │ DoS)                                                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ fast-jwt                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.2.1                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=6.2.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>@fastify/       │
│                     │ jwt>fast-jwt                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-3j8v-cgw4-2g6q      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ ip-address has XSS in Address6 HTML-emitting methods   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ ip-address                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=10.1.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=10.1.1                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>express-rate- │
│                     │ limit>ip-address                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-v2v4-37r5-5v8g      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobuf.js: Denial of service from crafted field      │
│                     │ names in generated code                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-2pr8-phx7-x9h3      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobuf.js: Prototype injection in generated message  │
│                     │ constructors                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-fx83-v9x8-x52w      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobufjs has overlong UTF-8 decoding                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.0.1                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.0.2                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-q6x5-8v7m-xcrf      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobufjs: Denial of Service via unbounded recursive  │
│                     │ JSON descriptor expansion                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.2.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.2.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-jggg-4jg4-v7c6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ uuid: Missing buffer bounds check in v3/v5/v6 when buf │
│                     │ is provided                                            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ uuid                                                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <11.1.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=11.1.1                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-server>@getlarge/fastify-mcp>mqemitter-      │
│                     │ redis>hyperid>uuid                                     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-w5hq-g745-h8pq      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ OpenTelemetry Core: Unbounded memory allocation in W3C │
│                     │ Baggage propagation                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ @opentelemetry/core                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <2.8.0                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=2.8.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/core                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-8988-4f7v-96qf      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ undici vulnerable to HTTP header injection via         │
│                     │ Set-Cookie percent-decoding                            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-p88m-4jfj-68fv      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ undici vulnerable to HTTP header injection via         │
│                     │ Set-Cookie percent-decoding                            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.0.0 <7.28.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-p88m-4jfj-68fv      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ undici vulnerable to cross-user information disclosure │
│                     │ via shared cache whitespace bypass                     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-pr7r-676h-xcf6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ undici vulnerable to cross-user information disclosure │
│                     │ via shared cache whitespace bypass                     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.0.0 <7.28.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-pr7r-676h-xcf6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobufjs : Schema-derived names can shadow           │
│                     │ runtime-significant properties                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.5.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.6.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-f38q-mgvj-vph7      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ node-tar: Process crash via PAX numeric path type      │
│                     │ confusion                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ tar                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=7.5.17                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.5.18                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>tar                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-w8wr-v893-vjvp      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ node-tar: Uncaught Exception DoS via NUL byte in PAX   │
│                     │ path/linkpath records                                  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ tar                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=7.5.16                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.5.17                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>tar                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-gvwx-54wh-qm9j      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobufjs: Denial of Service via infinite loop in     │
│                     │ .proto option parsing                                  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <=8.6.5                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.6.6                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@opentelemetry/exporter-trace-otlp- │
│                     │ proto>@opentelemetry/otlp-transformer>protobufjs       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-j3f2-48v5-ccww      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ protobufjs: Denial of Service via infinite loop in     │
│                     │ .proto option parsing                                  │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ protobufjs                                             │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.5.0 <=7.6.4                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.6.5                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/pi-ai>@google/      │
│                     │ genai>protobufjs                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-j3f2-48v5-ccww      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ Hono: API Gateway v1 adapter can drop a distinct       │
│                     │ repeated request header value during de-duplication    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ hono                                                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=4.3.3 <4.12.27                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=4.12.27                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>hono          │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-xgm2-5f3f-mvvc      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ hono/jsx does not isolate context per request, leading │
│                     │ to cross-request data disclosure                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ hono                                                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=4.11.8 <4.12.27                                      │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=4.12.27                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>hono          │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-hvrm-45r6-mjfj      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ Hono: Server-Side XSS via JSX Escaping Bypass in cx()  │
│                     │ Utility                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ hono                                                   │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=4.0.0 <4.12.27                                       │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=4.12.27                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>hono          │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-w62v-xxxg-mg59      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ Node.js Adapter for Hono: Unauthenticated memory-leak  │
│                     │ DoS via aborted WebSocket handshake                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ @hono/node-server                                      │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=2.0.0 <=2.0.9                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=2.0.10                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>@hono/node-   │
│                     │ server                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-9mqv-5hh9-4cgg      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate            │ node-tar: Uncontrolled recursion in mapHas/filesFilter │
│                     │ allows uncatchable stack-overflow DoS via crafted      │
│                     │ long-path tar with member selection                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ tar                                                    │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=7.5.20                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.5.21                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>tar                                              │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-r292-9mhp-454m      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ Elliptic Uses a Cryptographic Primitive with a Risky   │
│                     │ Implementation                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ elliptic                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=6.6.1                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ <0.0.0                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ libs__auth>get-jwks>jwk-to-pem>elliptic                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-848j-6mx2-7j84      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ undici vulnerable to HTTP response queue poisoning via │
│                     │ keep-alive socket reuse                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-35p6-xmwp-9g52      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ undici vulnerable to HTTP response queue poisoning via │
│                     │ keep-alive socket reuse                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.0.0 <7.28.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-35p6-xmwp-9g52      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ undici vulnerable to Set-Cookie SameSite attribute     │
│                     │ downgrade via permissive substring matching            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=8.0.0 <8.5.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=8.5.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__agent-daemon>@earendil-works/gondolin>undici     │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-g8m3-5g58-fq7m      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ undici vulnerable to Set-Cookie SameSite attribute     │
│                     │ downgrade via permissive substring matching            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ undici                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=7.0.0 <7.28.0                                        │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=7.28.0                                               │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ tools>undici                                           │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-g8m3-5g58-fq7m      │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ low                 │ body-parser vulnerable to denial of service when       │
│                     │ invalid limit value silently disables size enforcement │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package             │ body-parser                                            │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=2.0.0 <2.3.0                                         │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions    │ >=2.3.0                                                │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths               │ apps__mcp-host>@modelcontextprotocol/sdk>express>body- │
│                     │ parser                                                 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info           │ https://github.com/advisories/GHSA-v422-hmwv-36x6      │
└─────────────────────┴────────────────────────────────────────────────────────┘
53 vulnerabilities found
Severity: 6 low | 23 moderate | 19 high | 5 critical

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

⚠️ Knip — Unused code or dependencies found

Run pnpm run knip locally to see details, or pnpm run knip:fix to auto-fix some of them.

Full report
�[93m�[4mUnused files�[24m�[39m (228)
.agents/skills/impeccable/scripts/concept-seed.mjs                                         
.agents/skills/impeccable/scripts/context-signals.mjs                                      
.agents/skills/impeccable/scripts/context.mjs                                              
.agents/skills/impeccable/scripts/critique-storage.mjs                                     
.agents/skills/impeccable/scripts/detect-csp.mjs                                           
.agents/skills/impeccable/scripts/detect.mjs                                               
.agents/skills/impeccable/scripts/detector/browser/injected/index.mjs                      
.agents/skills/impeccable/scripts/detector/cli/main.mjs                                    
.agents/skills/impeccable/scripts/detector/design-system.mjs                               
.agents/skills/impeccable/scripts/detector/detect-antipatterns-browser.js                  
.agents/skills/impeccable/scripts/detector/detect-antipatterns.mjs                         
.agents/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs                  
.agents/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs                   
.agents/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs             
.agents/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs             
.agents/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs          
.agents/skills/impeccable/scripts/detector/findings.mjs                                    
.agents/skills/impeccable/scripts/detector/node/file-system.mjs                            
.agents/skills/impeccable/scripts/detector/profile/profiler.mjs                            
.agents/skills/impeccable/scripts/detector/registry/antipatterns.mjs                       
.agents/skills/impeccable/scripts/detector/rules/checks.mjs                                
.agents/skills/impeccable/scripts/detector/shared/color.mjs                                
.agents/skills/impeccable/scripts/detector/shared/constants.mjs                            
.agents/skills/impeccable/scripts/detector/shared/fonts.mjs                                
.agents/skills/impeccable/scripts/detector/shared/inline-ignores.mjs                       
.agents/skills/impeccable/scripts/detector/shared/page.mjs                                 
.agents/skills/impeccable/scripts/doctor.mjs                                               
.agents/skills/impeccable/scripts/generate-image.mjs                                       
.agents/skills/impeccable/scripts/hook-admin.mjs                                           
.agents/skills/impeccable/scripts/hook-before-edit.mjs                                     
.agents/skills/impeccable/scripts/hook-lib.mjs                                             
.agents/skills/impeccable/scripts/hook.mjs                                                 
.agents/skills/impeccable/scripts/lib/artifact-schema.mjs                                  
.agents/skills/impeccable/scripts/lib/composition-catalog.mjs                              
.agents/skills/impeccable/scripts/lib/concept-catalog.mjs                                  
.agents/skills/impeccable/scripts/lib/design-parser.mjs                                    
.agents/skills/impeccable/scripts/lib/impeccable-config.mjs                                
.agents/skills/impeccable/scripts/lib/impeccable-paths.mjs                                 
.agents/skills/impeccable/scripts/lib/is-generated.mjs                                     
.agents/skills/impeccable/scripts/lib/provider.mjs                                         
.agents/skills/impeccable/scripts/lib/staleness-deep.mjs                                   
.agents/skills/impeccable/scripts/lib/staleness-notice.mjs                                 
.agents/skills/impeccable/scripts/lib/staleness.mjs                                        
.agents/skills/impeccable/scripts/lib/surface-briefs.mjs                                   
.agents/skills/impeccable/scripts/lib/target-args.mjs                                      
.agents/skills/impeccable/scripts/lib/target-slug.mjs                                      
.agents/skills/impeccable/scripts/lib/template-extensions.mjs                              
.agents/skills/impeccable/scripts/live-accept.mjs                                          
.agents/skills/impeccable/scripts/live-browser-dom.js                                      
.agents/skills/impeccable/scripts/live-browser-session.js                                  
.agents/skills/impeccable/scripts/live-browser.js                                          
.agents/skills/impeccable/scripts/live-commit-manual-edits.mjs                             
.agents/skills/impeccable/scripts/live-complete.mjs                                        
.agents/skills/impeccable/scripts/live-copy-edit-agent.mjs                                 
.agents/skills/impeccable/scripts/live-discard-manual-edits.mjs                            
.agents/skills/impeccable/scripts/live-inject.mjs                                          
.agents/skills/impeccable/scripts/live-insert.mjs                                          
.agents/skills/impeccable/scripts/live-manual-edit-evidence.mjs                            
.agents/skills/impeccable/scripts/live-poll.mjs                                            
.agents/skills/impeccable/scripts/live-resume.mjs                                          
.agents/skills/impeccable/scripts/live-server.mjs                                          
.agents/skills/impeccable/scripts/live-status.mjs                                          
.agents/skills/impeccable/scripts/live-target.mjs                                          
.agents/skills/impeccable/scripts/live-wrap.mjs                                            
.agents/skills/impeccable/scripts/live.mjs                                                 
.agents/skills/impeccable/scripts/live/browser-script-parts.mjs                            
.agents/skills/impeccable/scripts/live/completion.mjs                                      
.agents/skills/impeccable/scripts/live/event-validation.mjs                                
.agents/skills/impeccable/scripts/live/generation-preflight.mjs                            
.agents/skills/impeccable/scripts/live/insert-ui.mjs                                       
.agents/skills/impeccable/scripts/live/manual-apply.mjs                                    
.agents/skills/impeccable/scripts/live/manual-edit-routes.mjs                              
.agents/skills/impeccable/scripts/live/manual-edits-buffer.mjs                             
.agents/skills/impeccable/scripts/live/poll-lanes.mjs                                      
.agents/skills/impeccable/scripts/live/session-store.mjs                                   
.agents/skills/impeccable/scripts/live/source-lock.mjs                                     
.agents/skills/impeccable/scripts/live/source-search.mjs                                   
.agents/skills/impeccable/scripts/live/svelte-component.mjs                                
.agents/skills/impeccable/scripts/live/sveltekit-adapter.mjs                               
.agents/skills/impeccable/scripts/live/tanstack-adapter.mjs                                
.agents/skills/impeccable/scripts/live/ui-core.mjs                                         
.agents/skills/impeccable/scripts/live/vocabulary.mjs                                      
.agents/skills/impeccable/scripts/modern-screenshot.umd.js                                 
.agents/skills/impeccable/scripts/palette.mjs                                              
.agents/skills/impeccable/scripts/pin.mjs                                                  
.agents/skills/impeccable/scripts/serve-question.mjs                                       
.agents/skills/impeccable/scripts/surface-brief.mjs                                        
.agents/skills/monitor-ci/scripts/ci-poll-decide.mjs                                       
.agents/skills/monitor-ci/scripts/ci-state-update.mjs                                      
.claude/skills/impeccable/scripts/concept-seed.mjs                                         
.claude/skills/impeccable/scripts/context-signals.mjs                                      
.claude/skills/impeccable/scripts/context.mjs                                              
.claude/skills/impeccable/scripts/critique-storage.mjs                                     
.claude/skills/impeccable/scripts/detect-csp.mjs                                           
.claude/skills/impeccable/scripts/detect.mjs                                               
.claude/skills/impeccable/scripts/detector/browser/injected/index.mjs                      
.claude/skills/impeccable/scripts/detector/cli/main.mjs                                    
.claude/skills/impeccable/scripts/detector/design-system.mjs                               
.claude/skills/impeccable/scripts/detector/detect-antipatterns-browser.js                  
.claude/skills/impeccable/scripts/detector/detect-antipatterns.mjs                         
.claude/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs                  
.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs                   
.claude/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs             
.claude/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs             
.claude/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs          
.claude/skills/impeccable/scripts/detector/findings.mjs                                    
.claude/skills/impeccable/scripts/detector/node/file-system.mjs                            
.claude/skills/impeccable/scripts/detector/profile/profiler.mjs                            
.claude/skills/impeccable/scripts/detector/registry/antipatterns.mjs                       
.claude/skills/impeccable/scripts/detector/rules/checks.mjs                                
.claude/skills/impeccable/scripts/detector/shared/color.mjs                                
.claude/skills/impeccable/scripts/detector/shared/constants.mjs                            
.claude/skills/impeccable/scripts/detector/shared/fonts.mjs                                
.claude/skills/impeccable/scripts/detector/shared/inline-ignores.mjs                       
.claude/skills/impeccable/scripts/detector/shared/page.mjs                                 
.claude/skills/impeccable/scripts/doctor.mjs                                               
.claude/skills/impeccable/scripts/generate-image.mjs                                       
.claude/skills/impeccable/scripts/hook-admin.mjs                                           
.claude/skills/impeccable/scripts/hook-before-edit.mjs                                     
.claude/skills/impeccable/scripts/hook-lib.mjs                                             
.claude/skills/impeccable/scripts/hook.mjs                                                 
.claude/skills/impeccable/scripts/lib/artifact-schema.mjs                                  
.claude/skills/impeccable/scripts/lib/composition-catalog.mjs                              
.claude/skills/impeccable/scripts/lib/concept-catalog.mjs                                  
.claude/skills/impeccable/scripts/lib/design-parser.mjs                                    
.claude/skills/impeccable/scripts/lib/impeccable-config.mjs                                
.claude/skills/impeccable/scripts/lib/impeccable-paths.mjs                                 
.claude/skills/impeccable/scripts/lib/is-generated.mjs                                     
.claude/skills/impeccable/scripts/lib/provider.mjs                                         
.claude/skills/impeccable/scripts/lib/staleness-deep.mjs                                   
.claude/skills/impeccable/scripts/lib/staleness-notice.mjs                                 
.claude/skills/impeccable/scripts/lib/staleness.mjs                                        
.claude/skills/impeccable/scripts/lib/surface-briefs.mjs                                   
.claude/skills/impeccable/scripts/lib/target-args.mjs                                      
.claude/skills/impeccable/scripts/lib/target-slug.mjs                                      
.claude/skills/impeccable/scripts/lib/template-extensions.mjs                              
.claude/skills/impeccable/scripts/live-accept.mjs                                          
.claude/skills/impeccable/scripts/live-browser-dom.js                                      
.claude/skills/impeccable/scripts/live-browser-session.js                                  
.claude/skills/impeccable/scripts/live-browser.js                                          
.claude/skills/impeccable/scripts/live-commit-manual-edits.mjs                             
.claude/skills/impeccable/scripts/live-complete.mjs                                        
.claude/skills/impeccable/scripts/live-copy-edit-agent.mjs                                 
.claude/skills/impeccable/scripts/live-discard-manual-edits.mjs                            
.claude/skills/impeccable/scripts/live-inject.mjs                                          
.claude/skills/impeccable/scripts/live-insert.mjs                                          
.claude/skills/impeccable/scripts/live-manual-edit-evidence.mjs                            
.claude/skills/impeccable/scripts/live-poll.mjs                                            
.claude/skills/impeccable/scripts/live-resume.mjs                                          
.claude/skills/impeccable/scripts/live-server.mjs                                          
.claude/skills/impeccable/scripts/live-status.mjs                                          
.claude/skills/impeccable/scripts/live-target.mjs                                          
.claude/skills/impeccable/scripts/live-wrap.mjs                                            
.claude/skills/impeccable/scripts/live.mjs                                                 
.claude/skills/impeccable/scripts/live/browser-script-parts.mjs                            
.claude/skills/impeccable/scripts/live/completion.mjs                                      
.claude/skills/impeccable/scripts/live/event-validation.mjs                                
.claude/skills/impeccable/scripts/live/generation-preflight.mjs                            
.claude/skills/impeccable/scripts/live/insert-ui.mjs                                       
.claude/skills/impeccable/scripts/live/manual-apply.mjs                                    
.claude/skills/impeccable/scripts/live/manual-edit-routes.mjs                              
.claude/skills/impeccable/scripts/live/manual-edits-buffer.mjs                             
.claude/skills/impeccable/scripts/live/poll-lanes.mjs                                      
.claude/skills/impeccable/scripts/live/session-store.mjs                                   
.claude/skills/impeccable/scripts/live/source-lock.mjs                                     
.claude/skills/impeccable/scripts/live/source-search.mjs                                   
.claude/skills/impeccable/scripts/live/svelte-component.mjs                                
.claude/skills/impeccable/scripts/live/sveltekit-adapter.mjs                               
.claude/skills/impeccable/scripts/live/tanstack-adapter.mjs                                
.claude/skills/impeccable/scripts/live/ui-core.mjs                                         
.claude/skills/impeccable/scripts/live/vocabulary.mjs                                      
.claude/skills/impeccable/scripts/modern-screenshot.umd.js                                 
.claude/skills/impeccable/scripts/palette.mjs                                              
.claude/skills/impeccable/scripts/pin.mjs                                                  
.claude/skills/impeccable/scripts/serve-question.mjs                                       
.claude/skills/impeccable/scripts/surface-brief.mjs                                        
apps/agent-daemon/src/lib/sandbox.ts                                                       
apps/console-e2e/src/seed-diary-browser.ts                                                 
apps/landing/src/hooks/useFeedSSE.ts                                                       
apps/mcp-host/server.mjs                                                                   
apps/mcp-host/src/sandbox.ts                                                               
apps/mcp-server-e2e/src/seed-task-app.ts                                                   
apps/mcp-server/src/schemas/index.ts                                                       
apps/rest-api/src/migrate.ts                                                               
apps/rest-api/src/sse/public-feed-poller.ts                                                
apps/rest-api/src/sse/sse-writer.ts                                                        
apps/rest-api/src/typebox-schema-id.d.ts                                                   
docs/.vitepress/env.d.ts                                                                   
docs/.vitepress/theme/auth/cache-retry.ts                                                  
docs/.vitepress/theme/auth/useAdoption.ts                                                  
docs/.vitepress/theme/components/AdoptionDashboard.vue                                     
docs/.vitepress/theme/components/UserCard.vue                                              
docs/.vitepress/theme/components/UserGreeting.vue                                          
evals/moltnet-practices/auth-middleware-early-return/fixtures/auth-plugin.ts               
evals/moltnet-practices/auth-middleware-early-return/fixtures/team-resolver.ts             
evals/moltnet-practices/e2e-raw-fetch-vs-api-client/fixtures/sdk.gen.ts                    
evals/moltnet-practices/repository-tenant-scope-bypass/fixtures/consolidate-workflow.ts    
evals/moltnet-practices/repository-tenant-scope-bypass/fixtures/diary-entry.repository.ts  
evals/moltnet-practices/rest-error-boundary/fixtures/pack-routes.ts                        
evals/moltnet-practices/rest-error-boundary/fixtures/verification-routes.ts                
evals/moltnet-practices/webhook-auth-status-code/fixtures/hooks.ts                         
examples/diary-create.ts                                                                   
examples/diary-search.ts                                                                   
examples/register.ts                                                                       
examples/sign-entry.ts                                                                     
libs/cpp-sdk/e2e/setup.ts                                                                  
libs/shell-command-analyzer/src/default-wasm-loader.browser.ts                             
libs/signer-api-client/openapi-ts.config.ts                                                
libs/task-ui/demo/App.tsx                                                                  
libs/task-ui/demo/main.tsx                                                                 
test-fixtures/generate-ssh-vectors.mjs                                                     
test-fixtures/generate-x25519-vectors.mjs                                                  
tools/db/backfill-content-hashes.ts                                                        
tools/db/backfill-diary-team-links.ts                                                      
tools/db/backfill-keto-subject-set.ts                                                      
tools/db/backfill-personal-teams.ts                                                        
tools/db/backfill-runtime-profile-standard-engineering-context.ts                          
tools/db/backfill-team-relations-plural.ts                                                 
tools/db/cleanup-legacy-diary-tuples.ts                                                    
tools/docker-build.mjs                                                                     
tools/generators/split-tsconfigs/index.ts                                                  
tools/generators/split-tsconfigs/schema.d.ts                                               
tools/release/docker-preversion.mjs                                                        
tools/src/release/github-action-publisher.ts                                               
tools/src/release/go-module-publisher.cli.ts                                               
tools/src/tasks/api.ts                                                                     
tools/src/tasks/scenario.ts                                                                
tools/src/tasks/seed-judge-fixture.ts                                                      
�[93m�[4mUnused dependencies�[24m�[39m (58)
@moltnet/observability                       apps/agent-daemon-e2e/package.json:8:6     
@moltnet/tasks                               apps/agent-daemon-e2e/package.json:9:6     
@earendil-works/gondolin                     apps/agent-daemon/package.json:96:6        
@opentelemetry/instrumentation               apps/agent-daemon/package.json:101:6       
@opentelemetry/instrumentation-dns           apps/agent-daemon/package.json:102:6       
@opentelemetry/instrumentation-http          apps/agent-daemon/package.json:103:6       
@opentelemetry/instrumentation-net           apps/agent-daemon/package.json:104:6       
@opentelemetry/instrumentation-pg            apps/agent-daemon/package.json:105:6       
@opentelemetry/instrumentation-pino          apps/agent-daemon/package.json:106:6       
@opentelemetry/instrumentation-undici        apps/agent-daemon/package.json:107:6       
pino-pretty                                  apps/agent-daemon/package.json:116:6       
@moltnet/bootstrap                           apps/mcp-server-e2e/package.json:8:6       
@moltnet/database                            apps/mcp-server-e2e/package.json:10:6      
@moltnet/crypto-service                      apps/mcp-server/package.json:29:6          
@moltnet/entry-explore-mcp-app               apps/mcp-server/package.json:30:6          
@themoltnet/design-system                    apps/mcp-server/package.json:34:6          
@fastify/otel                                apps/mcp-server/package.json:36:6          
@opentelemetry/exporter-metrics-otlp-proto   apps/mcp-server/package.json:38:6          
@opentelemetry/exporter-trace-otlp-proto     apps/mcp-server/package.json:39:6          
@opentelemetry/instrumentation               apps/mcp-server/package.json:40:6          
@opentelemetry/instrumentation-dns           apps/mcp-server/package.json:41:6          
@opentelemetry/instrumentation-http          apps/mcp-server/package.json:42:6          
@opentelemetry/instrumentation-net           apps/mcp-server/package.json:43:6          
@opentelemetry/instrumentation-pino          apps/mcp-server/package.json:44:6          
@opentelemetry/instrumentation-pg            apps/mcp-server/package.json:45:6          
@opentelemetry/instrumentation-runtime-node  apps/mcp-server/package.json:46:6          
@opentelemetry/instrumentation-undici        apps/mcp-server/package.json:47:6          
@opentelemetry/resources                     apps/mcp-server/package.json:48:6          
@opentelemetry/sdk-metrics                   apps/mcp-server/package.json:49:6          
@opentelemetry/sdk-trace-base                apps/mcp-server/package.json:50:6          
@opentelemetry/sdk-trace-node                apps/mcp-server/package.json:51:6          
@opentelemetry/semantic-conventions          apps/mcp-server/package.json:52:6          
pino                                         apps/mcp-server/package.json:56:6          
pino-opentelemetry-transport                 apps/mcp-server/package.json:57:6          
thread-stream                                apps/mcp-server/package.json:58:6          
node-hid                                     apps/moltnet-signer/package.json:47:6      
@huggingface/transformers                    apps/rest-api/package.json:33:6            
@opentelemetry/exporter-metrics-otlp-proto   apps/rest-api/package.json:56:6            
@opentelemetry/instrumentation               apps/rest-api/package.json:58:6            
@opentelemetry/resources                     apps/rest-api/package.json:66:6            
@opentelemetry/sdk-metrics                   apps/rest-api/package.json:67:6            
@opentelemetry/sdk-trace-base                apps/rest-api/package.json:68:6            
@opentelemetry/sdk-trace-node                apps/rest-api/package.json:69:6            
@opentelemetry/semantic-conventions          apps/rest-api/package.json:70:6            
multiformats                                 apps/rest-api/package.json:77:6            
pino-pretty                                  apps/rest-api/package.json:80:6            
thread-stream                                apps/rest-api/package.json:81:6            
@noble/hashes                                libs/context-pack-service/package.json:19:6
typebox                                      libs/sdk/package.json:44:6                 
tslib                                        package.json:151:6                         
@earendil-works/pi-ai                        tools/package.json:24:6                    
@earendil-works/pi-coding-agent              tools/package.json:25:6                    
@moltnet/auth                                tools/package.json:27:6                    
@moltnet/models                              tools/package.json:34:6                    
@themoltnet/agent-runtime                    tools/package.json:38:6                    
@themoltnet/pi-extension                     tools/package.json:40:6                    
drizzle-orm                                  tools/package.json:43:6                    
fastq                                        tools/package.json:44:6                    
�[93m�[4mUnused devDependencies�[24m�[39m (35)
@moltnet/bootstrap          apps/agent-daemon/package.json:119:6        
@moltnet/crypto-service     apps/agent-daemon/package.json:120:6        
@moltnet/bootstrap          apps/console/package.json:24:6              
@moltnet/crypto-service     apps/console/package.json:25:6              
@moltnet/database           apps/console/package.json:26:6              
@themoltnet/sdk             apps/console/package.json:27:6              
@playwright/test            apps/console/package.json:28:6              
@moltnet/bootstrap          apps/mcp-server/package.json:61:6           
@moltnet/database           apps/mcp-server/package.json:62:6           
@moltnet/mcp-test-harness   apps/mcp-server/package.json:63:6           
@modelcontextprotocol/sdk   apps/mcp-server/package.json:64:6           
drizzle-orm                 apps/mcp-server/package.json:65:6           
pino-pretty                 apps/mcp-server/package.json:66:6           
@themoltnet/ctap            apps/rest-api-e2e/package.json:18:6         
@moltnet/api-client         apps/rest-api/package.json:87:6             
@moltnet/bootstrap          apps/rest-api/package.json:88:6             
vitest                      libs/bootstrap/package.json:24:6            
@moltnet/crypto-service     libs/context-distill/package.json:17:6      
@moltnet/database           libs/context-distill/package.json:18:6      
@testcontainers/postgresql  libs/context-distill/package.json:19:6      
drizzle-orm                 libs/context-distill/package.json:20:6      
pg                          libs/context-distill/package.json:21:6      
@types/pg                   libs/context-distill/package.json:22:6      
@moltnet/api-client         libs/cpp-sdk/package.json:7:6               
@moltnet/bootstrap          libs/cpp-sdk/package.json:8:6               
@themoltnet/sdk             libs/cpp-sdk/package.json:9:6               
testcontainers              libs/diary-service/package.json:29:6        
@testing-library/react      libs/entry-explore-mcp-app/package.json:30:6
vitest                      libs/mcp-test-harness/package.json:22:6     
@nx/devkit                  package.json:76:6                           
@swc/helpers                package.json:88:6                           
husky                       package.json:98:6                           
lint-staged                 package.json:103:6                          
vite-plugin-dts             package.json:111:6                          
@types/figlet               tools/package.json:54:6                     
�[93m�[4mReferenced optional peerDependencies�[24m�[39m (1)
ink  libs/design-system/package.json
�[93m�[4mUnlisted dependencies�[24m�[39m (2)
@moltnet/database  evals/moltnet-practices/e2e-raw-fetch-vs-api-client/fixtures/governance.e2e.test.ts:19:46
pg                 libs/diary-service/__tests__/diary-service.dbos.integration.test.ts:38:27                
�[93m�[4mUnlisted binaries�[24m�[39m (9)
python3                                             .github/workflows/ci.yml     
clawhub                                             .github/workflows/release.yml
gofmt                                               .lintstagedrc.mjs            
cmake                                               libs/cpp-sdk/project.json    
ctest                                               libs/cpp-sdk/project.json    
go                                                  package.json                 
gofmt                                               package.json                 
packages/openclaw-skill/scripts/publish-clawhub.sh  package.json                 
packages/openclaw-skill/scripts/package.sh          package.json                 
�[93m�[4mUnused exports�[24m�[39m (153)
COMMON_REQUIRED_FLAGS                                     apps/agent-daemon/src/lib/help.ts:3:14                        
COMMON_OPTIONAL_FLAGS                                     apps/agent-daemon/src/lib/help.ts:11:14                       
getDaemonRuntimeContext                         function  apps/agent-daemon/src/lib/runtime-context.ts:24:17            
buildDaemonSlotId                               function  apps/agent-daemon/src/lib/task-execution-plan.ts:102:17       
ENTRY_TYPE_LABELS                                         apps/console/src/diaries/utils.ts:14:3                        
ENTRY_TYPES                                               apps/console/src/diaries/utils.ts:15:3                        
estimateTokenCount                                        apps/console/src/diaries/utils.ts:16:3                        
formatDateTime                                            apps/console/src/diaries/utils.ts:17:3                        
ENTRY_TYPE_OPTIONS                                        apps/console/src/diaries/utils.ts:21:14                       
getEntryTypeQuery                               function  apps/console/src/diaries/utils.ts:29:17                       
MOBILE_BREAKPOINT                                         apps/console/src/hooks/useIsMobile.ts:3:14                    
TABLET_BREAKPOINT                                         apps/console/src/hooks/useIsMobile.ts:4:14                    
groupTasksByLane                                          apps/console/src/tasks/status.ts:25:3                         
TASK_LANES                                                apps/console/src/tasks/status.ts:27:3                         
consoleCorrelationUrl                           function  apps/issue-lifecycle/src/status-comment.ts:36:17              
consoleAttemptUrl                               function  apps/issue-lifecycle/src/status-comment.ts:48:17              
outputState                                     function  apps/issue-lifecycle/src/test-fakes.ts:19:17                  
API_BASE_URL                                              apps/landing/src/api.ts:16:14                                 
handleDiaryTags                                 function  apps/mcp-server/src/diary-tools.ts:315:23                     
handleGrantCreate                               function  apps/mcp-server/src/grant-tools.ts:38:23                      
handleGrantRevoke                               function  apps/mcp-server/src/grant-tools.ts:70:23                      
handleGrantList                                 function  apps/mcp-server/src/grant-tools.ts:102:23                     
handlePacksUpdate                               function  apps/mcp-server/src/pack-tools.ts:319:23                      
handleRenderedPacksUpdate                       function  apps/mcp-server/src/pack-tools.ts:409:23                      
handlePacksDiff                                 function  apps/mcp-server/src/pack-tools.ts:511:23                      
EntryMapZoneSearchSchema                                  apps/mcp-server/src/schemas/entry-explore-schemas.ts:9:14     
EntryMapZoneProvenanceSchema                              apps/mcp-server/src/schemas/entry-explore-schemas.ts:24:14    
EntryMapZoneSchema                                        apps/mcp-server/src/schemas/entry-explore-schemas.ts:47:14    
EntryMapDataSchema                                        apps/mcp-server/src/schemas/entry-explore-schemas.ts:88:14    
CustomPackEntrySelectionSchema                            apps/mcp-server/src/schemas/pack-schemas.ts:107:14            
handleTasksContinue                             function  apps/mcp-server/src/task-tools.ts:182:23                      
handleTaskArtifactStage                         function  apps/mcp-server/src/task-tools.ts:484:23                      
handleTeamsList                                 function  apps/mcp-server/src/team-tools.ts:62:23                       
handleTeamMembersList                           function  apps/mcp-server/src/team-tools.ts:84:23                       
handleTeamsCreate                               function  apps/mcp-server/src/team-tools.ts:109:23                      
handleTeamsJoin                                 function  apps/mcp-server/src/team-tools.ts:132:23                      
handleTeamsDelete                               function  apps/mcp-server/src/team-tools.ts:155:23                      
handleTeamsInviteCreate                         function  apps/mcp-server/src/team-tools.ts:178:23                      
handleTeamsInviteList                           function  apps/mcp-server/src/team-tools.ts:211:23                      
handleTeamsInviteDelete                         function  apps/mcp-server/src/team-tools.ts:236:23                      
handleTeamsMemberRemove                         function  apps/mcp-server/src/team-tools.ts:264:23                      
SignerEnvironmentSchema                                   apps/moltnet-signer/src/config.ts:4:14                        
DATABASE_URL                                              apps/rest-api-e2e/src/setup.ts:57:3                           
HYDRA_ADMIN_URL                                           apps/rest-api-e2e/src/setup.ts:58:3                           
KETO_READ_URL                                             apps/rest-api-e2e/src/setup.ts:60:3                           
KETO_WRITE_URL                                            apps/rest-api-e2e/src/setup.ts:61:3                           
KRATOS_ADMIN_URL                                          apps/rest-api-e2e/src/setup.ts:62:3                           
TALOS_ADMIN_URL                                           apps/rest-api-e2e/src/setup.ts:64:3                           
ServerConfigSchema                                        apps/rest-api/src/config.ts:37:14                             
DatabaseConfigSchema                                      apps/rest-api/src/config.ts:49:14                             
WebhookConfigSchema                                       apps/rest-api/src/config.ts:54:14                             
RecoveryConfigSchema                                      apps/rest-api/src/config.ts:58:14                             
OryConfigSchema                                           apps/rest-api/src/config.ts:62:14                             
ObservabilityConfigSchema                                 apps/rest-api/src/config.ts:77:14                             
RuntimeSessionStorageConfigSch…                           apps/rest-api/src/config.ts:167:14                            
TaskArtifactStorageConfigSchema                           apps/rest-api/src/config.ts:185:14                            
EmbeddingConfigSchema                                     apps/rest-api/src/config.ts:201:14                            
SecurityConfigSchema                                      apps/rest-api/src/config.ts:208:14                            
loadEmbeddingConfig                             function  apps/rest-api/src/config.ts:424:17                            
loadPackGcConfig                                function  apps/rest-api/src/config.ts:434:17                            
loadTaskOrphanSweeperConfig                     function  apps/rest-api/src/config.ts:444:17                            
loadTaskArtifactStorageConfig                   function  apps/rest-api/src/config.ts:464:17                            
acceptsProblemJson                                        apps/rest-api/src/problems/index.ts:2:3                       
findProblemTypeByCode                                     apps/rest-api/src/problems/index.ts:9:3                       
findProblemTypeByStatus                                   apps/rest-api/src/problems/index.ts:10:3                      
getTypeUri                                                apps/rest-api/src/problems/index.ts:11:3                      
problemTypes                                              apps/rest-api/src/problems/index.ts:13:3                      
AgentKeyRevocationReasonSchema                            apps/rest-api/src/schemas/agent-keys.ts:9:14                  
AgentKeySchema                                            apps/rest-api/src/schemas/agent-keys.ts:19:14                 
DiaryTagCountSchema                                       apps/rest-api/src/schemas/diary.ts:58:14                      
PublicAuthorSchema                                        apps/rest-api/src/schemas/diary.ts:123:14                     
ContextPackEntrySchema                                    apps/rest-api/src/schemas/packs.ts:9:14                       
ToolEnforcementSchema                                     apps/rest-api/src/schemas/runtime-policies.ts:16:14           
RuntimePolicySchema                                       apps/rest-api/src/schemas/runtime-policies.ts:21:14           
TaskActivityAnalyticsGroupBySc…                           apps/rest-api/src/schemas/tasks.ts:185:14                     
TaskActivityProductMetricsSche…                           apps/rest-api/src/schemas/tasks.ts:360:14                     
TaskTypeDescriptorSchema                                  apps/rest-api/src/schemas/tasks.ts:497:14                     
serializeRuntimeWorkspace                       function  apps/rest-api/src/services/runtime-slots.ts:171:17            
resolvePrincipal                                          apps/rest-api/src/utils/auth-principal.ts:191:10              
HumanOnboardingError             WorkflowExpo…  class     apps/rest-api/src/workflows/human-onboarding-workflow.ts:36:14
diaryTransferWorkflow            WorkflowExpo…            apps/rest-api/src/workflows/index.ts:4:3                      
TRANSFER_DECISION_EVENT          WorkflowExpo…            apps/rest-api/src/workflows/index.ts:7:3                      
HumanOnboardingError             WorkflowExpo…            apps/rest-api/src/workflows/index.ts:12:3                     
DEFAULT_WORKFLOW_TIMEOUT_MS      WorkflowExpo…            apps/rest-api/src/workflows/index.ts:46:3                     
runWorkflow                      WorkflowExpo…            apps/rest-api/src/workflows/index.ts:47:3                     
FOUNDING_ACCEPT_EVENT            WorkflowExpo…            apps/rest-api/src/workflows/index.ts:51:3                     
TeamFoundingTimeoutError         WorkflowExpo…            apps/rest-api/src/workflows/index.ts:57:3                     
teamFoundingWorkflow             WorkflowExpo…            apps/rest-api/src/workflows/index.ts:58:3                     
DEFAULT_WORKFLOW_TIMEOUT_MS      WorkflowExpo…            apps/rest-api/src/workflows/run-workflow.ts:14:14             
runWorkflow                      WorkflowExpo…  function  apps/rest-api/src/workflows/run-workflow.ts:33:23             
TeamFoundingTimeoutError         WorkflowExpo…  class     apps/rest-api/src/workflows/team-founding-workflow.ts:32:14   
RUNTIME_PROFILE_CONTEXT_CATALO…                           docs/.vitepress/theme/lib/runtime-profile-contexts.ts:9:3     
runtimeProfileContextRecipeIds                            docs/.vitepress/theme/lib/runtime-profile-contexts.ts:14:3    
DEFAULT_E2E_REST_API_URL                                  libs/bootstrap/src/e2e-harness.ts:26:14                       
DEFAULT_E2E_DATABASE_URL                                  libs/bootstrap/src/e2e-harness.ts:27:14                       
DEFAULT_E2E_HYDRA_PUBLIC_URL                              libs/bootstrap/src/e2e-harness.ts:29:14                       
DEFAULT_E2E_HYDRA_ADMIN_URL                               libs/bootstrap/src/e2e-harness.ts:30:14                       
DEFAULT_E2E_KETO_READ_URL                                 libs/bootstrap/src/e2e-harness.ts:31:14                       
DEFAULT_E2E_KETO_WRITE_URL                                libs/bootstrap/src/e2e-harness.ts:32:14                       
DEFAULT_E2E_KRATOS_ADMIN_URL                              libs/bootstrap/src/e2e-harness.ts:33:14                       
DEFAULT_E2E_AGENT_SCOPES                                  libs/bootstrap/src/e2e-harness.ts:34:14                       
fromBase64Url                                   function  libs/ctap/src/bytes.ts:26:17                                  
describeDevice                                  function  libs/ctap/src/ctap-hid.ts:140:17                              
DBOSWorkflowConflictError                                 libs/database/src/dbos.ts:154:3                               
RUNTIME_POLICY_LIST_LIMIT                                 …/database/src/repositories/runtime-policy.repository.ts:18:14
SIGNING_REGISTRATION_RETENTION…                           …abase/src/repositories/signing-credential.repository.ts:29:14
MAX_PUBLIC_CONTENT_LENGTH                                 libs/diary-service/src/diary-service.ts:51:14                 
nextStepId                                      function  libs/entry-explore-mcp-app/src/state/map.ts:117:17            
DEFAULT_TASK_ARTIFACT_MAX_BYTES                           …s/node-red-contrib-core/src/nodes/task-artifact-utils.ts:9:14
resolveTaskId                                   function  …/node-red-contrib-core/src/nodes/task-artifact-utils.ts:26:17
resolveAttemptN                                 function  …/node-red-contrib-core/src/nodes/task-artifact-utils.ts:53:17
resolveOverride                                 function  libs/node-red-contrib-core/src/nodes/task-builder.ts:120:17   
abortError                                      function  libs/pi-extension/src/abort-utils.ts:9:17                     
buildRuntimeInstructor                                    libs/pi-extension/src/runtime/runtime-instructor.ts:109:14    
resolveTaskScratchPath                          function  libs/pi-extension/src/runtime/task-workspace.ts:130:17        
DEFAULT_RESOLVE_TIMEOUT_MS                                libs/pi-extension/src/tool-policy/session-policy.ts:31:14     
ToolPolicyResolveTimeoutError                   class     libs/pi-extension/src/tool-policy/session-policy.ts:134:14    
GUEST_TASK_SKILLS_MOUNT                                   libs/pi-extension/src/vm-manager.ts:42:14                     
DEFAULT_API_URL                                           libs/sdk/src/api-url.ts:2:14                                  
formDataBodySerializer                                    libs/signer-api-client/src/generated/client/index.ts:6:3      
jsonBodySerializer                                        libs/signer-api-client/src/generated/client/index.ts:7:3      
urlSearchParamsBodySerializer                             libs/signer-api-client/src/generated/client/index.ts:8:3      
buildClientParams                                         libs/signer-api-client/src/generated/client/index.ts:10:10    
serializeQueryKeyValue                                    libs/signer-api-client/src/generated/client/index.ts:11:10    
mergeHeaders                                              libs/signer-api-client/src/generated/client/index.ts:25:24    
createQuerySerializer                                     libs/signer-api-client/src/generated/client/utils.gen.ts:19:14
formDataBodySerializer                                    …ner-api-client/src/generated/core/bodySerializer.gen.ts:53:14
urlSearchParamsBodySerializer                             …ner-api-client/src/generated/core/bodySerializer.gen.ts:81:14
buildClientParams                                         libs/signer-api-client/src/generated/core/params.gen.ts:105:14
separatorArrayExplode                                     …ner-api-client/src/generated/core/pathSerializer.gen.ts:29:14
separatorArrayNoExplode                                   …ner-api-client/src/generated/core/pathSerializer.gen.ts:42:14
separatorObjectExplode                                    …ner-api-client/src/generated/core/pathSerializer.gen.ts:55:14
queryKeyJsonReplacer                                      …api-client/src/generated/core/queryKeySerializer.gen.ts:17:14
stringifyToJsonValue                                      …api-client/src/generated/core/queryKeySerializer.gen.ts:37:14
serializeQueryKeyValue                                    …api-client/src/generated/core/queryKeySerializer.gen.ts:89:14
PATH_PARAM_RE                                             libs/signer-api-client/src/generated/core/utils.gen.ts:16:14  
defaultPathSerializer                                     libs/signer-api-client/src/generated/core/utils.gen.ts:18:14  
PREVIEW_SIGN_CHALLENGE_VERSION                            libs/signing-workflows/src/preview-sign-driver.ts:33:14       
PREVIEW_SIGN_EVIDENCE_VERSION                             libs/signing-workflows/src/preview-sign-driver.ts:35:14       
PREVIEW_SIGN_ENVELOPE_VERSION                             libs/signing-workflows/src/preview-sign-driver.ts:36:14       
PREVIEW_SIGN_AUDIENCE                                     libs/signing-workflows/src/preview-sign-driver.ts:37:14       
DELETE_ELIGIBLE_STATUSES                                  libs/task-service/src/task-service.shared.ts:15:14            
LIVE_STATUSES                                             libs/task-service/src/task-service.shared.ts:19:14            
HIGH_FRICTION_TURNS                                       libs/task-ui/src/analytics/constants.ts:13:14                 
HIGH_FRICTION_FAILED_TOOL_CALLS                           libs/task-ui/src/analytics/constants.ts:14:14                 
makeClient                                      function  packages/legreffier-cli/src/api.ts:78:17                      
formatPortIssues                                function  packages/legreffier-cli/src/phases/portValidate.ts:213:17     
main                                            function  tools/src/release/go-artifact-publisher.cli.ts:110:23         
printGoArtifactReleasePlan                      function  tools/src/release/go-artifact-publisher.ts:531:17             
readText                                        function  tools/src/release/go-version-actions.ts:43:17                 
readGoModulePath                                function  tools/src/release/go-version-actions.ts:47:17                 
resolveGoReleaseValidationRoots                 function  tools/src/release/go-version-actions.ts:200:17                
default                                         class     tools/src/release/go-version-actions.ts:731:22                
�[93m�[4mUnused exported types�[24m�[39m (85)
PiAgentDirSource                             type       apps/agent-daemon/src/lib/pi-agent-dir.ts:4:13                  
RuntimeResourceReaperIssue                   interface  apps/agent-daemon/src/lib/runtime-resource-reaper.ts:40:18      
MailRecord                                   interface  apps/console-e2e/src/helpers/mailslurper.ts:3:18                
GroupedTasks                                 type       apps/console/src/tasks/status.ts:24:8                           
TaskLane                                     type       apps/console/src/tasks/status.ts:28:8                           
TaskLaneId                                   type       apps/console/src/tasks/status.ts:29:8                           
UiResourceData                               interface  apps/mcp-host/src/implementation.ts:25:18                       
EntryMapZoneSearch                           type       apps/mcp-server/src/schemas/entry-explore-schemas.ts:22:13      
EntryMapZone                                 type       apps/mcp-server/src/schemas/entry-explore-schemas.ts:86:13      
CorsPluginOptions                            interface  apps/rest-api/src/plugins/cors.ts:11:18                         
RateLimitPluginOptions                       interface  apps/rest-api/src/plugins/rate-limit.ts:24:18                   
ProblemType                                  type       apps/rest-api/src/problems/index.ts:12:8                        
AgentPrincipal                               type       apps/rest-api/src/schemas/principal.ts:37:8                     
HumanPrincipal                               type       apps/rest-api/src/schemas/principal.ts:39:8                     
PrincipalIdentity                            type       apps/rest-api/src/schemas/principal.ts:41:8                     
RuntimeSlotSubject                           interface  apps/rest-api/src/services/runtime-slots.ts:33:18               
CreateTaskInput                              type       apps/rest-api/src/services/task.service.ts:2:8                  
AuthContext                                  type       apps/rest-api/src/types.ts:14:3                                 
RelationshipReader                           type       apps/rest-api/src/types.ts:16:3                                 
RelationshipWriter                           type       apps/rest-api/src/types.ts:17:3                                 
RuntimeSessionStorage                        type       apps/rest-api/src/types.ts:47:15                                
SigningService                               type       apps/rest-api/src/types.ts:48:15                                
TaskAnalyticsService                         type       apps/rest-api/src/types.ts:49:15                                
TaskArtifactStorage                          type       apps/rest-api/src/types.ts:50:15                                
DiaryTransferDeps             WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:2:8                        
DiaryTransferResult           WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:3:8                        
TransferDecision              WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:8:8                        
HumanOnboardingDeps           WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:11:8                       
HumanOnboardingResult         WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:13:8                       
LegreffierOnboardingDeps      WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:24:8                       
MaintenanceDeps               WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:33:8                       
RegistrationDeps              WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:38:8                       
RegistrationResult            WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:39:8                       
RunWorkflowOptions            WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:48:8                       
FoundingMember                WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:52:8                       
TeamFoundingDeps              WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:55:8                       
TeamFoundingResult            WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:56:8                       
TaskDeletionWorkflowInput     WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:62:8                       
TaskDeletionWorkflowResult    WorkflowExpo…  type       apps/rest-api/src/workflows/index.ts:63:8                       
TaskDeletionWorkflowInput                    type       apps/rest-api/src/workflows/maintenance.ts:48:8                 
TaskDeletionWorkflowResult                   type       apps/rest-api/src/workflows/maintenance.ts:49:8                 
RunWorkflowOptions            WorkflowExpo…  interface  apps/rest-api/src/workflows/run-workflow.ts:21:18               
DocsTeam                                     interface  docs/.vitepress/theme/auth/useTeamSelection.ts:9:18             
RuntimeProfileContextCatalo…                 type       docs/.vitepress/theme/lib/runtime-profile-contexts.ts:10:8      
RuntimeProfileContextEntry                   type       docs/.vitepress/theme/lib/runtime-profile-contexts.ts:11:22     
RuntimeProfileContextRecipe                  type       docs/.vitepress/theme/lib/runtime-profile-contexts.ts:12:8      
RuntimePolicyPermission                      enum       libs/auth/src/keto-constants.ts:151:13                          
SessionResolverLogger                        interface  libs/auth/src/session-resolver.ts:25:18                         
GroupCreator                                 interface  libs/database/src/repositories/group.repository.ts:16:18        
RuntimeWorkspaceKind                         type       libs/database/src/repositories/runtime-slot.repository.ts:15:13 
EntriesListArgs                              interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:22:18      
EntriesSearchArgs                            interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:32:18      
DiaryTagsArgs                                interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:44:18      
EntriesGetArgs                               interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:51:18      
PacksCreateArgs                              interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:57:18      
PacksUpdateArgs                              interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:65:18      
PacksProvenanceArgs                          interface  libs/entry-explore-mcp-app/src/adapter/tool-calls.ts:71:18      
CommandRegistrar                             type       libs/pi-extension/src/commands/index.ts:5:3                     
SessionMeta                                  type       libs/pi-extension/src/commands/index.ts:7:3                     
SubmitMissingRepromptEvent                   interface  libs/pi-extension/src/runtime/execute-pi-task.ts:2213:18        
RateLimitRetryOptions                        type       libs/sdk/src/retry.ts:6:15                                      
EscapeFlagSpec                               interface  libs/shell-command-analyzer/src/capabilities.ts:344:18          
CreateClientConfig                           type       libs/signer-api-client/src/generated/client.gen.ts:19:13        
Auth                                         type       libs/signer-api-client/src/generated/client/index.ts:3:15       
QuerySerializerOptions                       type       libs/signer-api-client/src/generated/client/index.ts:4:15       
RequestOptions                               type       libs/signer-api-client/src/generated/client/index.ts:19:3       
ResolvedRequestOptions                       type       libs/signer-api-client/src/generated/client/index.ts:21:3       
ResponseStyle                                type       libs/signer-api-client/src/generated/client/index.ts:22:3       
Field                                        type       libs/signer-api-client/src/generated/core/params.gen.ts:5:13    
Fields                                       interface  libs/signer-api-client/src/generated/core/params.gen.ts:38:18   
FieldsConfig                                 type       libs/signer-api-client/src/generated/core/params.gen.ts:43:13   
JsonValue                                    type       …er-api-client/src/generated/core/queryKeySerializer.gen.ts:6:13
OmitNever                                    type       libs/signer-api-client/src/generated/core/types.gen.ts:114:13   
PathSerializer                               interface  libs/signer-api-client/src/generated/core/utils.gen.ts:11:18    
TaskArtifactAttemptInput                     interface  libs/task-artifact-service/src/task-artifacts.ts:62:18          
TaskListInput                                interface  libs/task-service/src/task-query.service.ts:17:18               
TaskInputArtifactObjectHead                  interface  libs/task-service/src/task-service.types.ts:62:18               
SuccessCriteriaRubricCriter…                 interface  libs/task-ui/src/success-criteria.ts:80:18                      
RubricTemplate                               interface  libs/task-ui/src/success-criteria.ts:123:18                     
AgentAdapter                                 type       packages/legreffier-cli/src/adapters/index.ts:13:15             
AgentAdapterOptions                          type       packages/legreffier-cli/src/adapters/index.ts:13:29             
ResolveInstallationStatus                    type       …kages/legreffier-cli/src/phases/portResolveInstallation.ts:6:13
VerifyInstallationStatus                     type       …ckages/legreffier-cli/src/phases/portVerifyInstallation.ts:4:13
InitPhase                                    type       packages/legreffier-cli/src/state.ts:4:13                       
GoArtifactBuildStep                          type       tools/src/release/go-artifact-publisher.ts:74:13                
�[93m�[4mDuplicate exports�[24m�[39m (4)
canManageTeam|canManageRuntime                      apps/console/src/team/permissions.ts               
buildRuntimeKernel|buildRuntimeInstructor           libs/pi-extension/src/runtime/runtime-instructor.ts
GUEST_TASK_CONTEXT_MOUNT|GUEST_TASK_SKILLS_MOUNT    libs/pi-extension/src/vm-manager.ts                
createPreviewSignPrehash|createPreviewSignDigestV1  libs/yubikey-preview-sign/src/digest.ts            
�[93m�[4mUnused catalog entries�[24m�[39m (4)
@anthropic-ai/claude-agent-sdk  default  pnpm-workspace.yaml:26:4 
@fastify/static                 default  pnpm-workspace.yaml:38:4 
@openai/codex-sdk               default  pnpm-workspace.yaml:63:4 
zod                             default  pnpm-workspace.yaml:159:3
�[33m�[4mConfiguration hints�[24m (7)�[39m
. �[90m(root)�[39m                      …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["."]�[90m (190 unused files)�[39m 
tools                         …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["tools"]�[90m (16 unused fil…�[39m
docs                          …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["docs"]�[90m (6 unused files)�[39m
apps/rest-api                 …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["apps/rest-api"]�[90m (4 unu…�[39m
apps/mcp-host                 …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["apps/mcp-host"]�[90m (2 unu…�[39m
libs/task-ui                  …p.config.ts  �[90mAdd �[97mentry�[90m and/or refine �[97mproject�[90m files in �[97mworkspaces["libs/task-ui"]�[90m (2 unus…�[39m
e2e/**/*.ts     …ps/rest-api  …p.config.ts  �[90mRefine �[97mentry�[90m pattern (no matches)�[39m                                           
 ELIFECYCLE  Command failed with exit code 1.

@legreffier legreffier Bot changed the title feat(multi-lens-review): durable fan-out code-review workflow with joinCondition verdict feat(review-workflow): reusable review engine — multi-lens-review standalone + issue-lifecycle on one workflow Jul 27, 2026

@legreffier legreffier Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Design review: pivot recommended

What this PR is trying to accomplish

Add a durable standalone multi-lens review app and reuse its fan-out machinery inside issue-lifecycle.

Why the current approach is problematic

The standalone workflow is sound, but @themoltnet/review-workflow is not a meaningful shared review abstraction. It delegates every domain decision—task construction, awaiting, status effects, parsing, and synthesis—to callbacks. The only shared behavior is already provided by parallelTasks and joinCondition. Issue-lifecycle does not use synthesis, while multi-lens-review is its sole user, so the new package mostly wraps an existing primitive and imposes review-specific naming on generic orchestration.

The repository's parallel-brief-runner already demonstrates the same fan-out-plus-gated-continuation shape directly. This also matches a signature-verified project decision: consumer-specific inputs can produce a generic layer that is harder to inspect without centralizing actual domain behavior.

Alternative approaches

  1. Keep multi-lens-review, implement it directly with parallelTasks and joinCondition, and leave issue-lifecycle on parallelTasks. This has small explicit duplication but preserves clear ownership and existing patterns.
  2. If three or more consumers establish a stable common contract, add a domain-neutral fan-out-plus-continuation primitive to tasks-orchestrator and migrate parallel-brief-runner too. This offers real reuse but expands a published orchestration API and deserves separate design work.

Recommended next step

Remove libs/review-workflow, restore issue-lifecycle's direct parallelTasks use, and retain the standalone app using the existing orchestration primitives.

Pivot size: small (under 100 LOC of rework).

…-lens-review

multi-lens-review is the canonical durable fan-out -> gated-join example (real use
case, same shape). Referenced only in the root tsconfig; the e2e was already
removed. (This branch also drops the review-workflow lib + issue-lifecycle wiring
per the #1709 design review — the standalone app is the reusable workflow.)

MoltNet-Diary: d6370d5c-0d6d-4058-8056-0c26e35e8c79
@legreffier
legreffier Bot force-pushed the multi-lens-review branch from ba242f8 to e6e7c18 Compare July 28, 2026 07:11
@legreffier legreffier Bot changed the title feat(review-workflow): reusable review engine — multi-lens-review standalone + issue-lifecycle on one workflow feat(multi-lens-review): standalone durable fan-out code-review workflow (replaces parallel-brief-runner) Jul 28, 2026
@legreffier

legreffier Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

Agreed with the design review — pivoted. Dropped libs/review-workflow (a callback-plumbing wrapper with no real shared behavior; issue-lifecycle didn't use its synthesis, and the up-front joinCondition-gated synthesis is a few lines the example apps already inline). issue-lifecycle is back on its direct parallelTasks (unchanged from main). This PR is now the standalone multi-lens-review app — the standalone workflow is the reusable unit (run on demand, per RFC #1718); a domain-neutral fan-out+continuation primitive is deferred to alt-#2 (3+ consumers). Also removed apps/parallel-brief-runner — multi-lens-review supersedes it as the canonical durable fan-out→gated-join example.

@legreffier legreffier Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deep review: Needs work

The architectural pivot is complete and sound: the standalone app now composes existing orchestration primitives directly, issue-lifecycle remains decoupled, and replacing the toy parallel-brief-runner example with a real use case is reasonable.

Top risks: (1) untrusted PR text enters broadly capable tool-using agent sessions, (2) synthesis can lose or fail to retrieve its required inputs, and (3) interrupted or failed runs can duplicate fan-out or leave permanent waiting tasks.

Strengths: clear app/library boundary, preflight validation of the server join ceiling, focused workflow tests, and all current CI, CodeQL, Semgrep, and e2e checks green.

Themes: trust boundaries and failure/restart behavior need the same rigor as the successful-path orchestration. Prompt and output contracts should have one runtime-owned source of truth.

Outside-diff finding: libs/tasks-orchestrator/README.md should link apps/multi-lens-review as the canonical runnable fan-out/join example now that parallel-brief-runner is removed.

Coverage: correctness, security, DRY/codebase fit, design/API/backcompat, tests, operability, and readability ran. Performance was not routed because no files or changed-line signals matched that lane. No coverage sweep was needed because correctness inspected every changed file.

Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/workflow.ts
Comment thread apps/multi-lens-review/src/main.ts
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/main.ts
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Comment thread apps/multi-lens-review/src/workflow.ts Outdated
Correctness: synthesis fetch via acceptedAttemptN + list_task_attempts (:135);
--synthesis composes into the scaffold not replaces it (:131). Remove
FREEFORM_SUBMIT_INSTRUCTIONS (runtime injects it) (:30). Cancel-by-correlation on
review failure so the gated synthesis isn't orphaned (:188). --correlation-id for
resumable runs (main:22). Dedup + MAX_LENSES cap (:53). Rename parser (:161),
per-review bound logging (:205), untrusted-data framing (:95). README links the
example. +dedup/cancel tests.

MoltNet-Diary: c39068e8-f5cf-48c5-a401-7e46e9f5e359
@legreffier

legreffier Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the deep review in 46c831b3 (verified live end-to-end: a review completes → request-changes).

Fixed (9): synthesis fetch via acceptedAttemptN+list_task_attempts (:135); --synthesis composes into the scaffold (:131); removed the duplicated submit block after confirming the runtime injects it, verified live (:30); orphaned-synthesis cleanup — cancel-by-correlation at the terminal outcome in main.ts, not per-attempt (a per-attempt cancel fought Absurd retries) (:188); --correlation-id for resumable runs (:22); dedup + MAX_LENSES cap (:53); bound per-review logging (:205); untrusted-data framing (:95); README example link.

Deferred (2): stateful waiting→queued integration test + CLI parser table-tests → #1728 (the join was validated live during this PR; these are additive regression coverage).

All 11 threads resolved.

@getlarge
getlarge merged commit 402324b into main Jul 28, 2026
36 checks passed
@getlarge
getlarge deleted the multi-lens-review branch July 28, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant