Commit Graph
1217 Commits
Author SHA1 Message Date
kevin 4487dd0c9b fix(ruflo-console): key the mission ledger by project (#4237) (#4242)
The ledger was stored under one machine-wide key, so the active mission
of one project was shown, and injected into the prompt, in every other
project, and sessions in different projects overwrote each other's
ledger. Store it under mission-ledger:<cwd> like the UI view, record cwd
on new missions, and read the old shared key only as a fallback without
adopting its active mission or missions recorded for another project.
2026-10-17 16:35:37 +01:00
Korjavin Ivanandkorjavin 584bad756b fix(console): the rest of Mission Control's prose wraps at 80 columns (#3899) 0.44.3 (#4225)
0.40.2 and 0.43.7 wrapped Approvals, a mission's objective and the Plan tab's
own prose; some mission text still ended in "…" at 80 columns (tmux):

- launch steps: a detail that does not fit beside its label (Claude's
  guidance note, the screen verdict, the next task) wraps on rows under
  the step; "Create the mission and its tasks" no longer runs into its detail
- record: the expanded mission's state/plan/evidence/executor/blocked lines,
  the stale and attention notes, the legend and the observation note wrap
- Mission options: the "not offered by this session" hint wraps

Tests first: tests/narrow-width.spec.ts (2 new cases fail without the change).

Co-authored-by: korjavin <148765+korjavin@users.noreply.github.com>
2026-10-17 16:35:25 +01:00
rUvandr 37dd507c7a fix: bump @metaharness/darwin pin from ~0.10.2 to ~0.12.0 (#3219) (#4252)
* fix: bump @metaharness/darwin pin from ~0.10.2 to ~0.12.0 (#3219)

npm published 0.11.0 and 0.12.0 after the last pin bump, leaving the
optionalDependencies range, MH_DARWIN_PIN, and the plugin helper's
DARWIN_PIN_VERSION all stale. scripts/check-metaharness-pins.mjs now
reports clean (was: STALE), and the metaharness-pin-drift CI gate,
which runs on every PR touching these files, was failing repo-wide
as a result.

Verified: check-metaharness-pins.mjs exits 0; plugin test-pin-alignment.mjs
(12/12) and test-no-tool-time-npx.mjs (26/26) pass against the new pin.

Co-Authored-By: RuFlo <ruv@ruv.net>

* fix: update v3/pnpm-lock.yaml for the @metaharness/darwin ~0.12.0 bump

Minimal surgical patch (specifier/version + the resolution block's
version/integrity), not a full pnpm regen — a full `pnpm install
--no-frozen-lockfile` here also drags in unrelated transitive bumps
(ruvector 0.2.27->0.2.41, vite 7.3.0->8.3.4, etc.) that don't belong
in a pin-drift fix. Verified with `pnpm install --frozen-lockfile`.

Co-Authored-By: RuFlo <ruv@ruv.net>

---------

Co-authored-by: r <r@x>
2026-10-17 16:35:08 +01:00
Wu Shuwen 7f5023144b fix: distinguish lifecycle events in hook deduplication (#4212) 2026-10-17 14:58:36 +01:00
akushonkamen 87d8687f3f fix(ruflo-agentdb): stop the secret screen treating a hyphen-named memory key as a credential field (#4202) (#4211)
* fix(ruflo-agentdb): stop the secret screen treating a hyphen-named memory key as a credential field

assignmentSecret() ran the KEY_NAME key-assignment check on every match, so
any entry whose name starts with auth (auth-flow-notes) plus up to 40 name
characters looked like a config field, and keyedSecret()/plausibleSecret()
then judged the entry's value as a credential: a write of
{ key: 'auth-flow-notes', value: 'getUser-not-getSession' } was refused
(#4202). A key that is itself a multi-word hyphenated name is an entry's
name, not a field, so the keyed check now skips it; the secret shapes still
screen the whole text, and single-word credential keys (auth, api_key,
token) keep blocking keyed literals.

Synced to the 39 plugin copies with scripts/sync-mod-screen.mjs.

Fixes #4202
Assisted-by: AI (automated contributor session, disclosed on the issue)

* chore(ci): exclude plugins/ruflo-agentdb/tests/guard-keys.test.ts from the root vitest run

The new test imports claude-code/testing like its six siblings, so the root
ratchet run (scripts/ci-test-ratchet.mjs) cannot collect it outside Claude
Code; list it in scripts/ci-test-excluded.txt per the documented convention
so ci.yml stays green until 'claude plugin test plugins/ruflo-agentdb' runs
it in all-plugins-smoke.

Follow-up to #4202
Assisted-by: AI (automated contributor session, disclosed on the issue)
2026-10-17 14:58:08 +01:00
randRuFlo 0e9ccec084 Merge main into perf/mcp-memory-on-core; ruflo-core 0.2.11 (0.2.10 shipped)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 11:25:50 -04:00
rUv 355a47ca2f Merge pull request #3987 from socrates6969/fix/core-session-paths
fix(core,cli): MCP server uses the session project; Windows home/claims paths; no duplicate daemons
2026-10-14 08:25:27 -07:00
rUv 827346d845 Merge pull request #4177 from ruvnet/fix/console-windows-rooted-4175
fix(console): read the project on Windows: a drive path is absolute, so the cwd is not prefixed twice (#4175)
2026-10-14 08:01:54 -07:00
randRuFlo 9f5f933791 Merge main into fix/core-session-paths; ruflo-core 0.2.10 (0.2.9 shipped)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 10:23:47 -04:00
randRuFlo c81dd5ef1b Merge main into fix/tui-zero-width-terminal: size the new frame code with sized() too
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 10:23:21 -04:00
randRuFlo 00002568a2 Merge main into fix/console-windows-rooted-4175; renumber console bump to 0.44.2
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 10:22:43 -04:00
randRuFlo fcd0fa59dd chore(console): 0.44.1 for the TUI Stage B and C changes
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 09:51:00 -04:00
r 5f44eec2a0 Merge remote-tracking branch 'origin/main' into c4188x 2026-10-14 09:50:11 -04:00
randRuFlo 16e33df5ec Merge main into feat/tui-pictures-looks-motion (keep console 0.44.0 over 0.43.7)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 09:06:40 -04:00
rUv 3b099b1972 Merge pull request #4180 from ruvnet/fix/3899-mission-control-wrap
fix(console): Mission Control prose wraps at narrow widths (#3899), console 0.43.7
2026-10-14 06:06:19 -07:00
rUv 536f172f30 Merge pull request #4172 from rudycelekli/fix/route-recall-long-memory-20261013
fix(intelligence): recall long memories for short route prompts
2026-10-14 06:04:06 -07:00
rUv 2ec9c05104 Merge pull request #4181 from ruvnet/g3/skills-contracts
fix: skills, plugin contracts and ruvector/neural/kg surfaces (#4126 #4133 #4135 #4149 #4156 #4157 #4158 #4159 #4161)
2026-10-14 05:25:24 -07:00
rUv efa3011614 Merge pull request #4178 from ruvnet/g1/core-hooks
fix(core,cli): record failed tool outcomes, run hooks from the project root, keep telemetry off the tool path
2026-10-14 05:11:05 -07:00
randRuFlo b076720667 Merge main into feat/tui-pictures-looks-motion (keep console 0.44.0, add 0.43.6 entry)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 07:55:44 -04:00
randRuFlo d3e0b0c8c6 Merge main into fix/3899-mission-control-wrap (console 0.43.7 over 0.43.6)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 07:52:24 -04:00
rUv 7035c12a2c Merge pull request #4163 from rudycelekli/fix/ruflo-reviewer-role-claims-4123
docs(analyze): describe reviewer role suggestions accurately
2026-10-14 04:51:36 -07:00
rUv d38a0ec201 Merge pull request #4171 from rudycelekli/fix/ruflo-rag-memory-search-4153
fix(rag-memory): use supported CLI and MCP search paths
2026-10-14 04:40:04 -07:00
randRuFlo 5147305d43 fix(console): port the query-coverage recall scoring to the console's copy (#4136)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 07:28:40 -04:00
randRuFlo 3102183cda fix(mods): port the #4136 query-coverage route recall into the mod's ranked-context copy
The ADR-404 parity test (mods-route) compares the mod's route context with hook-handler.cjs.
#4172 changed intelligence.cjs scoring (inflection variants, IDF weights, coverage >= 0.15),
leaving the mod's trigram-Jaccard copy behind, so the parity job failed. Same algorithm now in
plugins/ruflo-mods/hooks/route/ranked-context.ts; ruflo-mods 0.6.1 -> 0.6.2.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 06:20:39 -04:00
randRuFlo a9707998ca fix(core): keep the documented post-edit '-f <file> -s true' form literal so the #1862 witness marker holds
The failed-edit branch now passes -s false explicitly; the success path keeps the exact
['-f', String(file), '-s', 'true'] argv that witness marker #1862 attests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 06:19:16 -04:00
randRuFlo 9a9411c26c feat(tui): actions by name behind the console's confirm card (ADR-489 phase 6)
The go prompt (: or /) takes an action as well as a page. A name is matched
literally against the console's palette entries (id, or name containing the
typed words, or a text command keyword), never fuzzily. A read runs at once
through Host.run (ruflo CLI by argv only); a change raises the console's own
state.pending card, pinned under the page bar, and runs only on a lone y while
every row of the card is on screen (state.shownCard). Paste, Enter, "yes", a
card too tall for the window or a replaced card run nothing; n/Esc drops it.
The console's own verdict on the run is pinned for 20 s.

- tui/pinned.ts: the card and result rows
- session: palette(), answer(), pending(), cardShown(), pinned()
- parity table wording, ADR-489 phase 6, guide; key line says "ask first"
- tests/tui-actions.spec.ts with a CLI stand-in recording the argv

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 06:15:07 -04:00
randRuFlo e7c29326d4 feat(tui): every console view opens in ruflo tui, with a menu, a go prompt, Back and opt-in mouse (ADR-489 phase 5)
- tui/parity.ts: a recorded decision for each of the console's views
  (same / partial / equivalent / claude-only); tests/tui-parity.spec.ts fails
  when a view in VIEWS has no decision or no row in ADR-489
- 0 opens the main menu (its keys open entries), : or / goes to a page by
  name, Esc/Backspace is Back, --view takes any page; the console terminal
  opens the AI page and the Room says on one screen that it needs Claude Code
- terminal renderer: a Box's width is honoured (the board's two groups side by
  side) and the board's entry labels are drawn (they were blank)
- --mouse (opt-in, SGR): click a page chip, wheel scrolls; off by default,
  switched off on exit, report bytes ignored without the flag
- CLI: --view validates against the loaded bundle's page list, --mouse flag

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 06:09:23 -04:00
randRuFlo 1e8d37e03a feat(tui): ruflo tui draws the console's pictures, looks and motion (console 0.44.0, ADR-489 phase 4)
The standalone terminal UI now leads each page with the same title art and
pictures the console draws, as coloured cells (Raster in the terminal kit),
in the console's looks (Classic BBS default, Orbital, plain), moving at
--fps with only the changed rows redrawn.

- tui/ansi.ts: Raster; control/escape/invisible/wide code points become
  spaces, malformed or oversized cells draw nothing
- looks: --look, t key; --boot; --fps, --no-anim, --no-pictures
- focus reporting pauses the animation clock; NO_COLOR, dumb terminals,
  and widths under 44 fall back to the words
- guide: flags, looks, the t key; corrects the confirm-card sentence
- ADR-489: phase 4 recorded, parity table skeleton
- README/guide SVGs regenerated from real frames (leak-checked)

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:44:48 -04:00
randRuFlo 497bf91db4 fix(cli,ruflo-ruvector): embeddings_hyperbolic distance refuses off-ball points; skill stops claiming norm encodes depth (#4159)
Verified: convert gives every unit-norm input tanh(0.5)=0.4621171572, and
distance on unit-norm/off-ball points was acosh of a NaN or huge value that
serialised to null with success:true. Distance now uses the curvature-correct
formula and returns success:false outside the ball.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo dae163aca6 fix(cli,ruflo-ruvllm): say how to install @ruvector/ruvllm-wasm when it is missing (#4149)
ruvllm_status now carries wasm.hint and the init error names the install
command; verified on a throwaway global ruflo 3.56.9 that
npm i -g @ruvector/ruvllm-wasm makes ruvllm_chat_format work.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo 839d00731e fix(ruflo-ruvector): pin ruvector 0.3.3, which bundles the ONNX wasm (#4158)
0.2.25 ships without dist/core/onnx/pkg, so embed text failed and the
ruvector-onnx-embeddings-wasm remedy never fixed it. Verified in a throwaway
prefix that 0.3.3 embeds 384 dims with no add-on; refreshed the limitation
tables against 0.3.3 and bumped the plugin to 0.3.6.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo ae13e393d2 fix(cli,ruflo-intelligence): neural_train reports empty, neural_predict has a similarity floor, nested subcommands dispatch at any depth, built-in registry fallback is honest (#4156, #4157)
ruflo-intelligence 0.4.5.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo 866f844483 fix(cli,ruflo-knowledge-graph): causal-edge says when an edge cannot be read back under encryption at rest; kg-traverse uses the read tools (#4135, #4161)
agentdb_causal-edge returns readable:false plus a warning when graph_edges is RFE1-encrypted;
k-hop names the encrypted store instead of a generic unavailable backend; kg-traverse and
graph-navigator use agentdb_graph-query / agentdb_graph-pathfinder and stop calling
context-synthesize on entity records. ruflo-knowledge-graph 0.3.6.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo 1e63afc3d5 fix(ruflo-agentdb,ruflo-sparc): make the smoke claims truthful; real --live checks in agentdb (#4133)
ruflo-agentdb 0.4.10, ruflo-sparc 0.3.7.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
randRuFlo 08fa73eadb fix(ruflo-adr): read the leading status keyword, skip index/template files, report Unknown in adr-verify (#4126)
ruflo-adr 0.5.8.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:37:35 -04:00
RuFlo 571d689a4f fix(console): Mission Control prose wraps at 80 columns instead of ending in an ellipsis (#3899) 0.43.7
0.40.2 wrapped Approvals and a mission's objective; the Mission Control page still cut its own prose at
the edge: the kind description, the empty-goal hint, the lifecycle line and each planned task line.
They now use paragraph(). Tests first: tests/narrow-width.spec.ts (4 new cases fail without the change).

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:36:40 -04:00
randRuFlo 658655c1d9 chore(ruflo-core): 0.2.10 (in-process MCP launcher), changelog with measured launcher numbers
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:34:13 -04:00
r f022c98b87 Merge commit 'refs/pull/3987/head' of https://github.com/ruvnet/ruflo into pr-3989 2026-10-14 05:34:05 -04:00
randRuFlo b98935f34f fix(core,cli): record failed tool outcomes, run hooks from the project root, keep telemetry off the tool path
- #4127: PostToolUseFailure registered for Bash and Write|Edit|MultiEdit and forwarded with -s false and the real exit code (builds on #4170 by @rudycelekli; payload shape verified against Claude Code 2.1.289)
- #4176: the hook shim starts the CLI from CLAUDE_PROJECT_DIR; the CLI only adopts a proven config in a directory that carries ruflo init's markers, not a bare .claude/ that Claude Code created
- #4128: the shim starts the CLI detached and returns at once (about 25 ms instead of 0.2-4 s per hook), bounded to 4 concurrent telemetry CLIs per project, Stop never dropped, RUFLO_HOOK_SYNC=1 for the old path
- ruflo-core 0.2.9

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:28:12 -04:00
randRuFlo b9d36d55e2 chore: cli-core 3.7.3 (project-cwd guard) + pins, ruflo-core plugin 0.2.9; merge main (leaf publish pending: cli-core 3.7.3)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:26:43 -04:00
r 5bb716e2d7 Merge remote-tracking branch 'origin/main' into g1-core-hooks 2026-10-14 05:26:39 -04:00
RuFlo 84bb34a867 chore(plugins): bump ruflo-jujutsu 0.3.6 and ruflo-console 0.43.6 for the reviewer-roles wording
Marketplace users only receive plugin changes after a version bump.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:26:12 -04:00
r cb0f318257 Merge origin/main into docs/analyze-reviewer-roles 2026-10-14 05:25:41 -04:00
r cc784f1cb5 Merge remote-tracking branch 'origin/main' into pr-3989 2026-10-14 05:24:28 -04:00
r 9b10fcc8ab Merge remote-tracking branch 'origin/main' into pr-3987 2026-10-14 05:23:34 -04:00
randRuFlo 9405bed863 fix(console): read the project on Windows: a drive path is absolute, so the cwd is not prefixed twice (#4175)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:21:33 -04:00
randRuFlo b6e28cb02d chore(ruflo-rag-memory): 0.3.7 so marketplace users receive the #4153 search-path fixes
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-14 05:21:28 -04:00
Dragan Spiridonov abf716a81f Merge remote-tracking branch 'origin/main' into qe-4114 2026-10-13 19:07:52 +02:00
Rudy Celekli 5f317b28d3 fix(rag-memory): point search guidance at supported Ruflo tools 2026-10-13 13:04:26 -04:00
Rudy Celekli 49040a24a9 fix(hooks): record failed tool outcomes in core plugin 2026-10-13 12:56:36 -04:00