Commit Graph

9 Commits

Author SHA1 Message Date
dependabot[bot] 761dfcaa6d chore(deps): bump agentic-flow in /v3/@claude-flow/browser (#2907)
Bumps [agentic-flow](https://github.com/ruvnet/agentic-flow) from 2.0.13 to 2.1.2.
- [Release notes](https://github.com/ruvnet/agentic-flow/releases)
- [Changelog](https://github.com/ruvnet/agentic-flow/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/ruvnet/agentic-flow/commits)

---
updated-dependencies:
- dependency-name: agentic-flow
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-13 17:02:07 -04:00
rUv 5482fe7f98 Merge pull request #2387 from ruvnet/dependabot/npm_and_yarn/v3/claude-flow/browser/types/node-20.19.43
chore(deps-dev): bump @types/node from 20.19.41 to 20.19.43 in /v3/@claude-flow/browser
2026-06-17 18:42:10 -04:00
dependabot[bot] ec8fa84dc1 chore(deps-dev): bump @types/node in /v3/@claude-flow/browser
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.19.41 to 20.19.43.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 20.19.43
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 09:28:42 +00:00
dependabot[bot] 5378e1faed chore(deps-dev): bump vitest in /v3/@claude-flow/browser
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.6 to 4.1.9.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/HEAD/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 09:28:20 +00:00
ruv f08318f2c7 fix(ci): green up the 3 audit jobs newly visible after the YAML fix
With #2267's YAML break gone and the pnpm-lock refreshed, the 25 newly-
visible failures collapsed to 3 genuinely-independent audit failures.
Fixing all three.

#2046 — Supply-chain audit (1 unaccepted critical CVE)
  Vitest <4.1.0 UI server arbitrary-file-read/exec (GHSA-5xrq-8626-4rwp,
  CVSS 9.8) was unaccepted in v3/@claude-flow/browser.
  • Bumped `vitest` spec from ^4.0.16 → ^4.1.0 in browser package.json.
  • Refreshed the workspace pnpm-lock.
  • Standalone-publish package-lock.json carries workspace:* refs that
    `npm install` can't resolve in isolation, so I added a time-boxed
    (expires 2026-09-02) accepted-findings entry citing the limited
    exposure (devDependency + UI-server-only attack vector) and pinning
    the next workspace-coordinated lockfile rebuild as the trigger to
    remove it. Tracking: ruflo#2270.

ADR-112 — Tool description discoverability (2 missing "Use when …")
  • hooks_task-completed: added "Use when native TaskUpdate is wrong
    because the runtime also needs to record the outcome as a learning
    signal and emit the standard pipeline event".
  • hooks_intelligence_unified-stats: added "Use when calling the four
    narrow aggregators one at a time is wrong because cross-store drift
    goes silent — this tool surfaces it in the `consistency` block".
  327/327 tools now pass; baseline stays at 0.

#1921 — Hook-command install safety (4 missing invariants)
  Both #1951 and #1989 fixes were silently retired by #2196's statusline
  delegation refactor. Updated scripts/audit-fix-invariants.mjs to track
  the new reality without dropping coverage:
  • #1951 (marketplaces/ruflo) — substring became `path.join(home,
    '.claude', 'plugins', 'marketplaces', 'ruflo', …)` which the literal
    substring check couldn't see. Switched to a regex form that matches
    the path.join breakup.
  • #1989 (SQLite magic-bytes + page-count clamp) — superseded entirely
    by #2196's delegation pattern: statusline-generator no longer reads
    raw memory.db bytes; it shells out to `hooks-statusline --json`
    which queries AgentDB via the typed SDK. The regression vector is
    closed by ARCHITECTURE. Replaced the two #1989 invariants with one
    #2196 invariant that locks in the delegation pattern, so a future
    refactor that reintroduces raw-bytes reading is caught BEFORE the
    SQLite magic check would be relevant. Audit-script convention says
    "do NOT delete without confirming the regression is impossible by
    another mechanism" — this is the documented confirmation.
  37 invariants, all present.

Local: all 3 audits + the 2 new regression smokes pass.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-06-02 04:26:05 -04:00
ruv 3dbf6074aa fix(deps): #2048 — bump agentic-flow ^2.0.12 → ^2.0.13 (Windows onnxruntime lazy-load)
agentic-flow@2.0.13 moves the onnxruntime-node native binding load out of
module-import time and into an on-demand `loadOrt()` helper called from
`initializeSession()`. This fixes ruflo#2048 — `import('agentic-flow/reasoningbank')`
on Windows crashed with "OS cannot run %1" because router/providers/onnx-local.ts
used a top-level `await import('onnxruntime-node')` which forced the native binding
to load before any user code ran, even when the consumer never intended to run
local ONNX inference.

Upstream PR: ruvnet/agentic-flow#155
Upstream release: agentic-flow@2.0.13 (now `latest` on npm)

Changes
- root package.json + package-lock.json: ^2.0.12 → ^2.0.13
- v3/@claude-flow/browser/package.json + package-lock.json: ^2.0.12 → ^2.0.13
- v3/pnpm-lock.yaml: regen → resolves 2.0.13
- .github/supply-chain/follow-ups.md: mark #2048 as fixed, link upstream PR + this PR
- .github/supply-chain/accepted-findings.json: add fixedDirectly entry for 2.0.13

Verification
- root npm audit: 0 vulnerabilities
- supply-chain audit (5 layers): OK, no hard-fail findings
- @claude-flow/browser tests: 230 passed | 12 skipped
- ruflo-graph-intelligence tests: 104 passed
- Acceptance test (run against published 2.0.13):
    node -e "import('agentic-flow/reasoningbank').then(()=>console.log('OK'))"
    node -e "import('agentic-flow/router').then(()=>console.log('OK'))"
    Both succeed under default install AND under --omit=optional.

Follow-up CI guard (separate PR):
- Add Windows-runner smoke job that imports agentic-flow/reasoningbank under
  --omit=optional to lock the lazy-load contract.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-19 12:53:04 -04:00
ruv f60417352e fix(deps): #2046 ADR-124 — bump agentic-flow to 2.0.12 (xenova optional)
Upstream agentic-flow@2.0.12 shipped today (PR ruvnet/agentic-flow#154,
commit 2c10eb9) moving @xenova/transformers from `dependencies` to
`optionalDependencies`. Five of six call sites in agentic-flow already
used dynamic import; the sixth (src/reasoningbank/utils/embeddings.ts)
was converted to dynamic with try/catch + graceful fallback to the
existing hash-based embedding path.

This commit:

1. ADR-124 — full architectural record of the upstream fix +
   downstream impact + rollout plan.

2. Bump agentic-flow ^2.0.11 → ^2.0.12 in:
   - package.json (root)
   - v3/@claude-flow/browser/package.json

3. Regenerate lockfiles:
   - package-lock.json (root npm)
   - v3/@claude-flow/browser/package-lock.json
   - v3/pnpm-lock.yaml (v3 workspace)

4. Update .github/supply-chain/accepted-findings.json:
   - Add entry to `fixedDirectly[]` documenting the 2.0.12 ship
   - Replace the previous "blocked by upstream" CVE entry with a
     "moot finding" entry. The vulnerable code is no longer installed
     when consumers use `npm install --omit=optional`; `npm audit`
     still reports it because it reads the lockfile graph (which
     includes optionals) — a known npm limitation. Tracking now
     points at the merged upstream PR + ADR-124.

After this commit:
- Root npm audit: 0 vulnerabilities (was 0 already after PR #2050; still 0)
- Browser tests: 230/230 passing
- Graph-intel tests: 104/104 passing
- Supply-chain audit: 0 hard-fail findings (1 accepted, moot)
- Consumers of @claude-flow/browser who pass `--omit=optional` get a
  fully CVE-clean install profile

Closes the upstream half of #2046. ADR-121 Phase 4 still tracks the
long-term Xenova retirement.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-19 10:16:56 -04:00
ruv 9a8c9c464f fix(supply-chain): #2046 — eliminate all root-level HIGH/CRITICAL CVEs
Before:
  Root npm audit: 13 HIGH/CRITICAL across 25 vulns
  @claude-flow/browser fresh install: similar transitive chain
  Audit script reported 0 unaccepted only because it correctly scopes
  to direct deps — but transitive surface was hostile

Changes:

1. Bump agentdb to 3.0.0-alpha.14 (was alpha.10/13 across repo)
   - 3.0.0-alpha.14 dropped @opentelemetry/sdk-node from its
     dependencies block (still in optionalDependencies; overrides handle
     that). Eliminates the @opentelemetry/sdk-node CVE chain via direct
     dep replacement.
   - Updated: v3/@claude-flow/memory, v3/@claude-flow/cli, root.

2. Bump agentic-flow 2.0.7 → 2.0.11 (root) and ^2.0.3 → ^2.0.11
   (v3/@claude-flow/browser). Latest 2.x; closer to a Xenova-clean
   release when upstream ships it.

3. Add npm overrides at the root + at v3/@claude-flow/browser package
   (overrides do not cascade across separate npm projects, so browser
   needs its own block for standalone publish):
     @opentelemetry/sdk-node              >= 0.218.0  (was <0.217.0 CVE)
     @opentelemetry/auto-instrumentations >= 0.75.0
     @opentelemetry/exporter-prometheus   >= 0.217.0
     axios                                >= 1.13.2
     fast-uri                             >= 3.1.0
     vite                                 >= 6.4.6
     ws                                   >= 8.18.4

   Plus the existing browser-package overrides for hono / undici / tar /
   minimatch / picomatch / flatted / etc. — copied from root to keep
   the standalone npm-published install clean.

After:
  Root npm audit: 0 vulnerabilities (13 HIGH/CRITICAL → 0)
  Supply-chain audit: PASS (0 unaccepted direct-dep findings)
  Browser tests:  230/230 passing
  Graph-intel tests: 104/104 passing

One CVE remains in v3/@claude-flow/browser's STANDALONE fresh install
(end-user `npm install`): @xenova/transformers via agentic-flow direct
dependency. Cannot fix without upstream agentic-flow shipping a Xenova-
free release. agentic-flow@3.0.0-alpha.2 still has it. Documented in
accepted-findings.json under cve[] with:
  tracking: ADR-121 Phase 4
  expiresAt: 2026-08-19 (audit re-fails if upstream still hasn't shipped)
  rationale: browser package does not invoke embedding code paths

This is the right level of triage. The audit doesn't lie about it — it
just doesn't block our shipping while we wait for upstream.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-19 08:34:23 -04:00
ruv 5fedd1d022 feat(browser): #2041 ADR-122 Phase 0 + Phase 1 — agent-browser 0.27 + signed trajectories
Phase 0 (convergence):
- Bump agent-browser dep ^0.6.0 → ^0.27.0 (21-minor drift closed)
- Package version → 3.0.0-alpha.4
- Adapter already had full 0.27 surface (find/mouse/set/network/tabs/etc.)

Phase 1 (beyond-SOTA wedge: signed trajectory containers):
- domain/signed-trajectory.ts — envelope schema + replay types
- infrastructure/witness-signer.ts — Ed25519 sign/verify via node:crypto
- application/signed-trajectory-service.ts — seal/verify/replay-plan/replay-delta
- BrowserService.endTrajectory now optionally seals via signTrajectories:true
- 19 new tests: round-trip, tamper detection, trust list, replay planning,
  delta detection, determinism. 147/147 tests passing.

Acceptance (Phase 1):
- record → sign → distribute → verify round-trips
- forging a step/goal/screenshot-hash breaks verify (signature invalid)
- trust-list filtering accepts/rejects by signer public key
- replay planning applies replaceStepInput + skipSteps mutations
- buildReplayDelta detects action drift + outcome drift

Beyond SOTA: no other web agent (Surfer-H, Browser Use, Stagehand, Operator,
Skyvern) ships cryptographic provenance for AI browsing sessions.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-18 19:28:31 -04:00