main · last commit
13 days ago ·
7g0stsfu
ah-07g Investigate unbounded .task/events.jsonl (202MB for one design run)
Past Stand
bd reopen ah-07g
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-07-18T06:30:22Z |
| Started | 2026-07-18T13:21:59Z |
| Updated | 2026-07-18T14:48:24Z |
| Closed | 2026-07-18T14:48:24Z |
task-2/.task/events.jsonl was 202 MB for a single ~2min run producing a 100-line doc. pi event stream persisted verbatim, no truncation/rotation, under work_root. work_root fills fast. Investigate pi verbosity, whether events.jsonl is needed post-run, add rotation/cap or prune-on-Done.
DECIDED 2026-07-18 (user): 'remove worktree, but backup .task and additional docs'. Policy: - When a card reaches Done or Cancelled and its worktree still exists: archive FIRST, then 'git worktree remove --force'. - Archive = tar.gz containing .task/ (PROMPT.md, summary.md, events.jsonl, *.json) PLUS any files in the worktree that are uncommitted relative to the branch head (untracked + modified) — i.e. everything that would be lost with the worktree. Branch itself is the durable artifact and is NOT touched. - Archive location: config archive_dir, default <work_root>/archive/, file task-<id>.tar.gz (overwrite on re-archive). - Failed/In Review/etc: untouched (zellij attach + debugging still want the worktree). - events.jsonl compresses ~10-20x (repeated JSON context), so backup satisfies keep-for-debug without the 202MB/run disk cost.
INVESTIGATION (2026-07-18): events.jsonl is pi's raw event stream, persisted verbatim by pi in <worktree>/.task/. 210MB for task-2's ~2min run; lines up to ~100KB each (full message/context per event). Worktrees are NOT pruned on terminal state (task-1 and task-2 both still on disk under work_root). Two levers: (a) pi-side — reduce event verbosity / don't persist full context per event (pi is external, needs a flag or upstream change); (b) daemon-side — prune the worktree or at least .task/events.jsonl when a task reaches Done (NOT In Review, where zellij-attach/review still want it). Retention policy is a user call: keep-for-debug vs disk. No code changed yet — needs a retention-policy decision.
No outgoing dependencies.
ah-ydx.3
— Memory lifecycle: load-on-claim CONTEXT section, save-on-Done
blocks
| id | ah-07g |
| content_hash | bac07329270d597d113053b517e9dfaf960a2c01112410a47ffc02a9fde7bcf3 |
| title | Investigate unbounded .task/events.jsonl (202MB for one design run) |
| description | task-2/.task/events.jsonl was 202 MB for a single ~2min run producing a 100-line doc. pi event stream persisted verbatim, no truncation/rotation, under work_root. work_root fills fast. Investigate pi verbosity, whether events.jsonl is needed post-run, add rotation/cap or prune-on-Done. |
| design | DECIDED 2026-07-18 (user): 'remove worktree, but backup .task and additional docs'. Policy: - When a card reaches Done or Cancelled and its worktree still exists: archive FIRST, then 'git worktree remove --force'. - Archive = tar.gz containing .task/ (PROMPT.md, summary.md, events.jsonl, *.json) PLUS any files in the worktree that are uncommitted relative to the branch head (untracked + modified) — i.e. everything that would be lost with the worktree. Branch itself is the durable artifact and is NOT touched. - Archive location: config archive_dir, default <work_root>/archive/, file task-<id>.tar.gz (overwrite on re-archive). - Failed/In Review/etc: untouched (zellij attach + debugging still want the worktree). - events.jsonl compresses ~10-20x (repeated JSON context), so backup satisfies keep-for-debug without the 202MB/run disk cost. |
| acceptance_criteria | |
| notes | INVESTIGATION (2026-07-18): events.jsonl is pi's raw event stream, persisted verbatim by pi in <worktree>/.task/. 210MB for task-2's ~2min run; lines up to ~100KB each (full message/context per event). Worktrees are NOT pruned on terminal state (task-1 and task-2 both still on disk under work_root). Two levers: (a) pi-side — reduce event verbosity / don't persist full context per event (pi is external, needs a flag or upstream change); (b) daemon-side — prune the worktree or at least .task/events.jsonl when a task reaches Done (NOT In Review, where zellij-attach/review still want it). Retention policy is a user call: keep-for-debug vs disk. No code changed yet — needs a retention-policy decision. |
| status | closed |
| priority | 3 |
| issue_type | task |
| assignee | Eugene Blikh |
| estimated_minutes | NULL |
| created_at | 2026-07-18T06:30:22Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-07-18T14:48:24Z |
| closed_at | 2026-07-18T14:48:24Z |
| 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 3e2eb3c: Done/Cancelled cards get .task/ + uncommitted files archived to archive_dir/task-<id>.tar.gz (stdlib tar+gzip, atomic overwrite, archive-before-remove), then git worktree remove --force; branch kept; worktree_archived/worktree_gone events. Live verify (drag a Done card, check archive) after next CI deploy. |
| 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-18T13:21:59Z |
| is_blocked | 0 |
| 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 | 019f73eb-336f-792f-b2ff-2893e3883189 |
| issue_id | ah-07g |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-07-18T09:30:21Z |
| id | 019f73f5-f38e-7bb4-91d4-89df1389eeb2 |
| issue_id | ah-07g |
| event_type | updated |
| actor | Eugene Blikh |
| old_value | {"id":"ah-07g","title":"Investigate unbounded .task/events.jsonl (202MB for one design run)","description":"task-2/.task/events.jsonl was 202 MB for a single ~2min run producing a 100-line doc. pi event stream persisted verbatim, no truncation/rotation, under work_root. work_root fills fast. Investigate pi verbosity, whether events.jsonl is needed post-run, add rotation/cap or prune-on-Done.","status":"open","priority":3,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-07-18T06:30:22Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T06:30:22Z"} |
| new_value | {"notes":"INVESTIGATION (2026-07-18): events.jsonl is pi's raw event stream, persisted verbatim by pi in \u003cworktree\u003e/.task/. 210MB for task-2's ~2min run; lines up to ~100KB each (full message/context per event). Worktrees are NOT pruned on terminal state (task-1 and task-2 both still on disk under work_root). Two levers: (a) pi-side — reduce event verbosity / don't persist full context per event (pi is external, needs a flag or upstream change); (b) daemon-side — prune the worktree or at least .task/events.jsonl when a task reaches Done (NOT In Review, where zellij-attach/review still want it). Retention policy is a user call: keep-for-debug vs disk. No code changed yet — needs a retention-policy decision."} |
| comment | NULL |
| created_at | 2026-07-18T09:42:06Z |
| id | 019f7564-0cef-7a68-a953-9969886e28fb |
| issue_id | ah-07g |
| event_type | claimed |
| actor | Eugene Blikh |
| old_value | {"id":"ah-07g","title":"Investigate unbounded .task/events.jsonl (202MB for one design run)","description":"task-2/.task/events.jsonl was 202 MB for a single ~2min run producing a 100-line doc. pi event stream persisted verbatim, no truncation/rotation, under work_root. work_root fills fast. Investigate pi verbosity, whether events.jsonl is needed post-run, add rotation/cap or prune-on-Done.","notes":"INVESTIGATION (2026-07-18): events.jsonl is pi's raw event stream, persisted verbatim by pi in \u003cworktree\u003e/.task/. 210MB for task-2's ~2min run; lines up to ~100KB each (full message/context per event). Worktrees are NOT pruned on terminal state (task-1 and task-2 both still on disk under work_root). Two levers: (a) pi-side — reduce event verbosity / don't persist full context per event (pi is external, needs a flag or upstream change); (b) daemon-side — prune the worktree or at least .task/events.jsonl when a task reaches Done (NOT In Review, where zellij-attach/review still want it). Retention policy is a user call: keep-for-debug vs disk. No code changed yet — needs a retention-policy decision.","status":"open","priority":3,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-07-18T06:30:22Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T06:42:06Z"} |
| new_value | {"assignee":"Eugene Blikh","status":"in_progress"} |
| comment | NULL |
| created_at | 2026-07-18T16:21:59Z |
| id | 019f7564-0e1e-7cfc-b6ba-dd3f965fb5dd |
| issue_id | ah-07g |
| event_type | updated |
| actor | Eugene Blikh |
| old_value | {"id":"ah-07g","title":"Investigate unbounded .task/events.jsonl (202MB for one design run)","description":"task-2/.task/events.jsonl was 202 MB for a single ~2min run producing a 100-line doc. pi event stream persisted verbatim, no truncation/rotation, under work_root. work_root fills fast. Investigate pi verbosity, whether events.jsonl is needed post-run, add rotation/cap or prune-on-Done.","notes":"INVESTIGATION (2026-07-18): events.jsonl is pi's raw event stream, persisted verbatim by pi in \u003cworktree\u003e/.task/. 210MB for task-2's ~2min run; lines up to ~100KB each (full message/context per event). Worktrees are NOT pruned on terminal state (task-1 and task-2 both still on disk under work_root). Two levers: (a) pi-side — reduce event verbosity / don't persist full context per event (pi is external, needs a flag or upstream change); (b) daemon-side — prune the worktree or at least .task/events.jsonl when a task reaches Done (NOT In Review, where zellij-attach/review still want it). Retention policy is a user call: keep-for-debug vs disk. No code changed yet — needs a retention-policy decision.","status":"in_progress","priority":3,"issue_type":"task","assignee":"Eugene Blikh","owner":"bigbes@gmail.com","created_at":"2026-07-18T06:30:22Z","created_by":"Eugene Blikh","updated_at":"2026-07-18T13:21:59Z","started_at":"2026-07-18T13:21:59Z"} |
| new_value | {"design":"DECIDED 2026-07-18 (user): 'remove worktree, but backup .task and additional docs'. Policy:\n- When a card reaches Done or Cancelled and its worktree still exists: archive FIRST, then 'git worktree remove --force'.\n- Archive = tar.gz containing .task/ (PROMPT.md, summary.md, events.jsonl, *.json) PLUS any files in the worktree that are uncommitted relative to the branch head (untracked + modified) — i.e. everything that would be lost with the worktree. Branch itself is the durable artifact and is NOT touched.\n- Archive location: config archive_dir, default \u003cwork_root\u003e/archive/, file task-\u003cid\u003e.tar.gz (overwrite on re-archive).\n- Failed/In Review/etc: untouched (zellij attach + debugging still want the worktree).\n- events.jsonl compresses ~10-20x (repeated JSON context), so backup satisfies keep-for-debug without the 202MB/run disk cost."} |
| comment | NULL |
| created_at | 2026-07-18T16:21:59Z |
| id | 019f75b3-2929-7144-a047-3fd054ba575a |
| issue_id | ah-07g |
| event_type | closed |
| actor | Eugene Blikh |
| old_value | |
| new_value | Merged 3e2eb3c: Done/Cancelled cards get .task/ + uncommitted files archived to archive_dir/task-<id>.tar.gz (stdlib tar+gzip, atomic overwrite, archive-before-remove), then git worktree remove --force; branch kept; worktree_archived/worktree_gone events. Live verify (drag a Done card, check archive) after next CI deploy. |
| comment | NULL |
| created_at | 2026-07-18T17:48:23Z |
No comments.
Close reason