ruvnet / ruvnet/agentic-flow

trajectory-* accepts invented IDs and reports them completed: every start returns ID 0, and '!!!not-an-id!!!' completes with 'EWC++ consolidation applied'; nothing persists

Open
#205 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
812
Forks
175
Avg merge
2m
Merged PRs (30d)
3

Description

Summary

The trajectory-start / trajectory-step / trajectory-end lifecycle reports success for input it cannot have processed:

  • Every trajectory-start returns the same ID: 0.
  • trajectory-step and trajectory-end accept arbitrary invented IDs — including !!!not-an-id!!! — and report the step recorded and the trajectory completed.
  • trajectory-end --success false reports ✅ Success. So do 0, no, and nonsense. The flag has no effect on the reported outcome.
  • Quality: 80% is constant across every invocation.
  • Nothing persists: after three starts, a step, and seven ends, intelligence stats still reports Trajectories: 0, Active: 0.

Version: agentic-flow 2.1.2, Node v22.23.0, macOS 15.

Reproduce

# 1. IDs are not unique
for i in 1 2 3; do
  npx agentic-flow hooks intelligence trajectory-start "task $i" --agent tester | grep 'ID:'
done
# 📝 ID: 0
# 📝 ID: 0
# 📝 ID: 0

# 2. Invented IDs are accepted
npx agentic-flow hooks intelligence trajectory-step "traj-TOTAL-FICTION-42" --action "did a thing" --reward 0.9
# 📍 Step Recorded
#    Action: did a thing
#    Reward: 0.9
#    Trajectory: traj-TOTAL-FICTION-42

npx agentic-flow hooks intelligence trajectory-end "!!!not-an-id!!!" --success false
# 🏁 Trajectory Completed
#    ✅ Success
#    Quality: 80%
#    Learning: EWC++ consolidation applied

# 3. --success is ignored
for v in true false 0 no nonsense; do
  npx agentic-flow hooks intelligence trajectory-end "traj-fake-$v" --success $v | grep -E 'Success|Fail'
done
# ✅ Success   (x5)

# 4. Nothing persisted
npx agentic-flow hooks intelligence stats | grep -A2 Learning
# 📈 Learning:
#    Trajectories: 0
#    Active: 0

Why this is worse than a no-op

Each of these prints a specific, plausible claim about work performed:

  • 📍 Step Recorded … Trajectory: traj-TOTAL-FICTION-42 — echoes back an ID that was never issued, as if it had been looked up.
  • 🏁 Trajectory Completed … Learning: EWC++ consolidation applied — names a specific learning mechanism as having run, for a trajectory that does not exist.
  • ✅ Success for --success false — inverts the caller's own input.

A caller driving this API has no way to detect that none of it happened. There is no error, no non-zero exit, and the output is more specific than a generic acknowledgement would be.

Suggested fix

  1. Issue unique trajectory IDs, and have trajectory-step / trajectory-end reject IDs that were never issued.
  2. Honour --success, and reject values outside true|false.
  3. Report a real quality figure or drop the field — 80% for every input, including --success false, is not a measurement.
  4. Persist trajectories, or make intelligence stats reflect the fact that they are not persisted.

The round-trip test that catches this class permanently: start a trajectory, capture its ID, end that ID and assert success; then end a fabricated ID and assert failure. The second half is the part that matters — the first half already "passes" today.

Related

  • #204 — pattern-store in the same intelligence group reports 💾 Pattern Stored with an HNSW index claim and persists nothing; intelligence stats likewise shows Patterns: 0 beside a 45-pattern store.
  • #201 — hooks metrics counters not wired to the commands that should update them.
  • ruvnet/ruflo#2908 — sibling package: writes are durable but never indexed, so search cannot find them.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the trajectory-start, trajectory-step, trajectory-end, and intelligence stats command entry points and run the reproduction commands in this issue. Trace how IDs, --success, quality, and persistence are handled. Done means issued IDs are unique, fabricated IDs fail, --success is validated and reflected accurately, and stats reports completed trajectories.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.