trajectory-* accepts invented IDs and reports them completed: every start returns ID 0, and '!!!not-an-id!!!' completes with 'EWC++ consolidation applied'; nothing persists
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-startreturns the same ID:0. trajectory-stepandtrajectory-endaccept arbitrary invented IDs — including!!!not-an-id!!!— and report the step recorded and the trajectory completed.trajectory-end --success falsereports✅ Success. So do0,no, andnonsense. 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 statsstill reportsTrajectories: 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.✅ Successfor--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
- Issue unique trajectory IDs, and have
trajectory-step/trajectory-endreject IDs that were never issued. - Honour
--success, and reject values outsidetrue|false. - Report a real quality figure or drop the field —
80%for every input, including--success false, is not a measurement. - Persist trajectories, or make
intelligence statsreflect 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-storein the sameintelligencegroup reports💾 Pattern Storedwith an HNSW index claim and persists nothing;intelligence statslikewise showsPatterns: 0beside a 45-pattern store. - #201 —
hooks metricscounters 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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