~bigbes/agents-dev · parade

main · last commit 13 days ago · 7g0stsfu

← Back to the parade

ah-ydx.3 Memory lifecycle: load-on-claim CONTEXT section, save-on-Done Past Stand

status: closed P2 feature @Eugene Blikh
bd reopen ah-ydx.3
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-07-18T13:23:57Z
Started2026-07-18T15:59:39Z
Updated2026-07-18T16:22:33Z
Closed2026-07-18T16:22:33Z
Description
Wire mem0 into the task loop per SPEC §14.3: on claim, search mem0 (proj scope + global) and render a memory section into the prompt context via ctxpack; on Done/Cancelled terminal scan (shares the ah-07g hook), save run summary/verdict facts back to mem0 (run_id='task:<id>'). Depends on the mem0 client, ctxpack, and the ah-07g terminal-state scan.
Notes
MEM0 SERVER HEALTHY (2026-07-18, after user-authorized override delete + restart): /configure now reflects env-of-truth (deepseek/deepseek-v4-flash + nvidia/nemotron-embed-1b-v2). FULL live smoke green: ADD infer=false 200/event=ADD; SEARCH 200 with score (embeddings ok); ADD infer=true 200 (LLM extraction ok); LIST/PURGE/EMPTY clean; bogus key 401. Server-side contract fully verified — lifecycle implementation unblocked once ah-07g lands the terminal-state hook. OPERATIONAL RULE: mem0 config is ENV-ONLY; never POST /configure (GET redacts secrets, round-trip corrupts stored creds — happened + fixed today, backup at phoebe:/root/mem0-settings-backup.sql); if a stored override reappears (dashboard onboarding creates one), delete settings row key=config_overrides + restart.

Depends on

  • ah-07g — Investigate unbounded .task/events.jsonl (202MB for one design run) blocks closed
  • ah-ydx — Stage 3: mem0 memory lifecycle + Context Pack parent-child open
  • ah-ydx.1 — internal/mem0: REST client for live mem0.bigb.es blocks closed
  • ah-ydx.2 — internal/ctxpack: Context Pack builder blocks closed

Depended on by

Nothing depends on this issue.

No comments.

Close reason

Merged b761cbe: recall-on-claim (## Relevant memories via ctxpack, proj+global scopes, 15s budget, feature-off byte-identical) + save-on-Done (save→archive→prune ordering, infer=true, once-only via worktree signal, Cancelled excluded). Rollout: install MEM0_API_KEY in /etc/agent-hub/env, live-smoke recall block + one memory_saved event.
  • Eugene Blikh added under epic ah-ydx · 2026-07-18T16:23:57Z
  • Eugene Blikh created the issue · 2026-07-18T16:23:57Z
  • Eugene Blikh added dependency on ah-ydx.1 · 2026-07-18T16:25:05Z
  • Eugene Blikh added dependency on ah-ydx.2 · 2026-07-18T16:25:05Z
  • Eugene Blikh added dependency on ah-07g · 2026-07-18T16:25:06Z
  • Eugene Blikh updated notes to MEM0 LIVE STATE (2026-07-18): server DEGRADED, needs one operator command (classifier-blocked for me — see handoff). History: (1) found deployed server 502s on all embed/LLM calls — STORED runtime config (mem0_app.settings key=config_overrides, created via dashboard/configure at some point) carries UNPREFIXED model names (deepseek-v4-flash, nemotron-embed-1b-v2) that LiteLLM rejects; container env has the CORRECT prefixed names. (2) My repair attempt made it worse: GET /configure REDACTS secrets, and POSTing the round-tripped body back overwrote the stored pgvector password with a redacted value — now ALL memory endpoints 502 (pgvector auth fails). (3) Correct fix: delete the single settings row so the server falls back to env-of-truth (prefixed models + correct creds), restart api. LESSON for lifecycle bead: never round-trip /configure GET->POST (redaction!); prefer env-only config, no stored overrides. Client-side contract validated live BEFORE breakage: routes flat, X-API-Key admin works, LIST/DELETE-scope 200 envelope {results}/{message}, bogus key 401. · 2026-07-18T16:55:09Z
  • Eugene Blikh updated notes to MEM0 SERVER HEALTHY (2026-07-18, after user-authorized override delete + restart): /configure now reflects env-of-truth (deepseek/deepseek-v4-flash + nvidia/nemotron-embed-1b-v2). FULL live smoke green: ADD infer=false 200/event=ADD; SEARCH 200 with score (embeddings ok); ADD infer=true 200 (LLM extraction ok); LIST/PURGE/EMPTY clean; bogus key 401. Server-side contract fully verified — lifecycle implementation unblocked once ah-07g lands the terminal-state hook. OPERATIONAL RULE: mem0 config is ENV-ONLY; never POST /configure (GET redacts secrets, round-trip corrupts stored creds — happened + fixed today, backup at phoebe:/root/mem0-settings-backup.sql); if a stored override reappears (dashboard onboarding creates one), delete settings row key=config_overrides + restart. · 2026-07-18T16:57:48Z
  • Eugene Blikh claimed · 2026-07-18T18:59:38Z
  • Eugene Blikh closed the issue · 2026-07-18T19:22:33Z
    Merged b761cbe: recall-on-claim (## Relevant memories via ctxpack, proj+global scopes, 15s budget, feature-off byte-identical) + save-on-Done (save→archive→prune ordering, infer=true, once-only via worktree signal, Cancelled excluded). Rollout: install MEM0_API_KEY in /etc/agent-hub/env, live-smoke recall block + one memory_saved event.
  • Eugene Blikh added label milestone:stage-3 · 2026-07-20T03:08:44Z
  • Eugene Blikh removed label milestone:stage-3 · 2026-07-20T03:10:27Z
Stored rows — what this pane was built from, as read
issues 1 row
id ah-ydx.3
content_hash 16681b27f4960105b6ca27beabc1e8219b7b6edab3c59c243830102a1c17bd7a
title Memory lifecycle: load-on-claim CONTEXT section, save-on-Done
description Wire mem0 into the task loop per SPEC §14.3: on claim, search mem0 (proj scope + global) and render a memory section into the prompt context via ctxpack; on Done/Cancelled terminal scan (shares the ah-07g hook), save run summary/verdict facts back to mem0 (run_id='task:<id>'). Depends on the mem0 client, ctxpack, and the ah-07g terminal-state scan.
design
acceptance_criteria
notes MEM0 SERVER HEALTHY (2026-07-18, after user-authorized override delete + restart): /configure now reflects env-of-truth (deepseek/deepseek-v4-flash + nvidia/nemotron-embed-1b-v2). FULL live smoke green: ADD infer=false 200/event=ADD; SEARCH 200 with score (embeddings ok); ADD infer=true 200 (LLM extraction ok); LIST/PURGE/EMPTY clean; bogus key 401. Server-side contract fully verified — lifecycle implementation unblocked once ah-07g lands the terminal-state hook. OPERATIONAL RULE: mem0 config is ENV-ONLY; never POST /configure (GET redacts secrets, round-trip corrupts stored creds — happened + fixed today, backup at phoebe:/root/mem0-settings-backup.sql); if a stored override reappears (dashboard onboarding creates one), delete settings row key=config_overrides + restart.
status closed
priority 2
issue_type feature
assignee Eugene Blikh
estimated_minutes NULL
created_at 2026-07-18T13:23:57Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-07-18T16:22:33Z
closed_at 2026-07-18T16:22:33Z
closed_by_session
external_ref NULL
spec_id
compaction_level 0
compacted_at NULL
compacted_at_commit NULL
original_size NULL
sender
ephemeral 0
wisp_type
pinned 0
is_template 0
mol_type
work_type
source_system
metadata �{}
source_repo
close_reason Merged b761cbe: recall-on-claim (## Relevant memories via ctxpack, proj+global scopes, 15s budget, feature-off byte-identical) + save-on-Done (save→archive→prune ordering, infer=true, once-only via worktree signal, Cancelled excluded). Rollout: install MEM0_API_KEY in /etc/agent-hub/env, live-smoke recall block + one memory_saved event.
event_kind
actor
target
payload
await_type
await_id
timeout_ns 0
waiters
hook_bead
role_bead
agent_state
last_activity NULL
role_type
rig
due_at NULL
defer_until NULL
no_history 0
started_at 2026-07-18T15:59:39Z
is_blocked 0
dependencies 4 rows
id 01f6825a-b2d8-5f97-9875-54a81da49f60
issue_id ah-ydx.3
type blocks
created_at 2026-07-18T16:25:06Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-07g
depends_on_wisp_id NULL
depends_on_external NULL
id 3125ac59-cda6-57f7-9a1a-88ec421121e4
issue_id ah-ydx.3
type parent-child
created_at 2026-07-18T16:23:57Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-ydx
depends_on_wisp_id NULL
depends_on_external NULL
id b3bfbc77-fcd4-5a34-a42c-84d2ffd404db
issue_id ah-ydx.3
type blocks
created_at 2026-07-18T16:25:05Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-ydx.1
depends_on_wisp_id NULL
depends_on_external NULL
id d18e81be-180a-5df5-b03b-6bc78973fa9b
issue_id ah-ydx.3
type blocks
created_at 2026-07-18T16:25:05Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id ah-ydx.2
depends_on_wisp_id NULL
depends_on_external NULL
events 7 rows
id 019f7565-da2c-7a8f-a0c9-2b75d820286f
issue_id ah-ydx.3
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-07-18T16:23:57Z
id 019f7582-6b97-727c-a5de-343dd33c8fcd
issue_id ah-ydx.3
event_type updated
actor Eugene Blikh
old_value {"id":"ah-ydx.3","title":"Memory lifecycle: load-on-claim CONTEXT section, save-on-Done","description":"Wire mem0 into the task loop per SPEC §14.3: on claim, search mem0 (proj scope + global) and render a memory section into the prompt context via ctxpack; on Done/Cancelled terminal scan (shares the ah-07g hook), save run summary/verdict facts back to mem0 (run_id='task:\u003cid\u003e'). Depends on the mem0 client, ctxpack, and the ah-07g terminal-state scan.","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-18T13:23:57Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T13:23:57Z"}
new_value {"notes":"MEM0 LIVE STATE (2026-07-18): server DEGRADED, needs one operator command (classifier-blocked for me — see handoff). History: (1) found deployed server 502s on all embed/LLM calls — STORED runtime config (mem0_app.settings key=config_overrides, created via dashboard/configure at some point) carries UNPREFIXED model names (deepseek-v4-flash, nemotron-embed-1b-v2) that LiteLLM rejects; container env has the CORRECT prefixed names. (2) My repair attempt made it worse: GET /configure REDACTS secrets, and POSTing the round-tripped body back overwrote the stored pgvector password with a redacted value — now ALL memory endpoints 502 (pgvector auth fails). (3) Correct fix: delete the single settings row so the server falls back to env-of-truth (prefixed models + correct creds), restart api. LESSON for lifecycle bead: never round-trip /configure GET-\u003ePOST (redaction!); prefer env-only config, no stored overrides. Client-side contract validated live BEFORE breakage: routes flat, X-API-Key admin works, LIST/DELETE-scope 200 envelope {results}/{message}, bogus key 401."}
comment NULL
created_at 2026-07-18T16:55:09Z
id 019f7584-d969-719e-9a42-534849e815fb
issue_id ah-ydx.3
event_type updated
actor Eugene Blikh
old_value {"id":"ah-ydx.3","title":"Memory lifecycle: load-on-claim CONTEXT section, save-on-Done","description":"Wire mem0 into the task loop per SPEC §14.3: on claim, search mem0 (proj scope + global) and render a memory section into the prompt context via ctxpack; on Done/Cancelled terminal scan (shares the ah-07g hook), save run summary/verdict facts back to mem0 (run_id='task:\u003cid\u003e'). Depends on the mem0 client, ctxpack, and the ah-07g terminal-state scan.","notes":"MEM0 LIVE STATE (2026-07-18): server DEGRADED, needs one operator command (classifier-blocked for me — see handoff). History: (1) found deployed server 502s on all embed/LLM calls — STORED runtime config (mem0_app.settings key=config_overrides, created via dashboard/configure at some point) carries UNPREFIXED model names (deepseek-v4-flash, nemotron-embed-1b-v2) that LiteLLM rejects; container env has the CORRECT prefixed names. (2) My repair attempt made it worse: GET /configure REDACTS secrets, and POSTing the round-tripped body back overwrote the stored pgvector password with a redacted value — now ALL memory endpoints 502 (pgvector auth fails). (3) Correct fix: delete the single settings row so the server falls back to env-of-truth (prefixed models + correct creds), restart api. LESSON for lifecycle bead: never round-trip /configure GET-\u003ePOST (redaction!); prefer env-only config, no stored overrides. Client-side contract validated live BEFORE breakage: routes flat, X-API-Key admin works, LIST/DELETE-scope 200 envelope {results}/{message}, bogus key 401.","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-18T13:23:57Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T13:55:09Z"}
new_value {"notes":"MEM0 SERVER HEALTHY (2026-07-18, after user-authorized override delete + restart): /configure now reflects env-of-truth (deepseek/deepseek-v4-flash + nvidia/nemotron-embed-1b-v2). FULL live smoke green: ADD infer=false 200/event=ADD; SEARCH 200 with score (embeddings ok); ADD infer=true 200 (LLM extraction ok); LIST/PURGE/EMPTY clean; bogus key 401. Server-side contract fully verified — lifecycle implementation unblocked once ah-07g lands the terminal-state hook. OPERATIONAL RULE: mem0 config is ENV-ONLY; never POST /configure (GET redacts secrets, round-trip corrupts stored creds — happened + fixed today, backup at phoebe:/root/mem0-settings-backup.sql); if a stored override reappears (dashboard onboarding creates one), delete settings row key=config_overrides + restart."}
comment NULL
created_at 2026-07-18T16:57:48Z
id 019f75f4-6587-743d-bf04-0f5e232a4219
issue_id ah-ydx.3
event_type claimed
actor Eugene Blikh
old_value {"id":"ah-ydx.3","title":"Memory lifecycle: load-on-claim CONTEXT section, save-on-Done","description":"Wire mem0 into the task loop per SPEC §14.3: on claim, search mem0 (proj scope + global) and render a memory section into the prompt context via ctxpack; on Done/Cancelled terminal scan (shares the ah-07g hook), save run summary/verdict facts back to mem0 (run_id='task:\u003cid\u003e'). Depends on the mem0 client, ctxpack, and the ah-07g terminal-state scan.","notes":"MEM0 SERVER HEALTHY (2026-07-18, after user-authorized override delete + restart): /configure now reflects env-of-truth (deepseek/deepseek-v4-flash + nvidia/nemotron-embed-1b-v2). FULL live smoke green: ADD infer=false 200/event=ADD; SEARCH 200 with score (embeddings ok); ADD infer=true 200 (LLM extraction ok); LIST/PURGE/EMPTY clean; bogus key 401. Server-side contract fully verified — lifecycle implementation unblocked once ah-07g lands the terminal-state hook. OPERATIONAL RULE: mem0 config is ENV-ONLY; never POST /configure (GET redacts secrets, round-trip corrupts stored creds — happened + fixed today, backup at phoebe:/root/mem0-settings-backup.sql); if a stored override reappears (dashboard onboarding creates one), delete settings row key=config_overrides + restart.","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-07-18T13:23:57Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T13:57:49Z"}
new_value {"assignee":"Eugene Blikh","status":"in_progress"}
comment NULL
created_at 2026-07-18T18:59:38Z
id 019f7609-5df3-7e2c-9c47-040780bda56d
issue_id ah-ydx.3
event_type closed
actor Eugene Blikh
old_value
new_value Merged b761cbe: recall-on-claim (## Relevant memories via ctxpack, proj+global scopes, 15s budget, feature-off byte-identical) + save-on-Done (save→archive→prune ordering, infer=true, once-only via worktree signal, Cancelled excluded). Rollout: install MEM0_API_KEY in /etc/agent-hub/env, live-smoke recall block + one memory_saved event.
comment NULL
created_at 2026-07-18T19:22:33Z
id 019f7cda-8a36-7d94-95ee-828f51fb2264
issue_id ah-ydx.3
event_type label_added
actor Eugene Blikh
old_value NULL
new_value NULL
comment Added label: milestone:stage-3
created_at 2026-07-20T03:08:44Z
id 019f7cdc-1b3a-74af-aa85-142bb4461bb3
issue_id ah-ydx.3
event_type label_removed
actor Eugene Blikh
old_value NULL
new_value NULL
comment Removed label: milestone:stage-3
created_at 2026-07-20T03:10:27Z