Files
poimen-workflows/tasks/board-T2.md
T
Test d8fe3f5a3c feat(T2.5): implement git operation batching
- Add internal/batching package for git operation batching
- Implement GitBatcher with configurable batch size and age
- Queue git operations (commit, push, merge)
- Auto-flush on max batch size
- Manual flush on demand
- Time-based flush (max batch age)
- Batch status tracking (pending, executing, completed, failed)
- Network savings calculation
- Statistics tracking per batch and aggregated
- 24 batching tests, all passing

Features:
- Enqueue() for adding operations to queue
- Flush() for manual batch creation
- GetPendingBatch() for next pending batch
- MarkBatchExecuting/Completed/Failed() for status tracking
- GetStats() for batching statistics
- CalculateNetworkSavings() for round trip savings
- GetExecutedBatches() for completed batch history
- TimeSinceLastFlush() for age checking
- ShouldFlush() for time-based decisions

Performance Benefits:
- N commits batched into 1 push saves N-1 round trips
- Example: 10 commits in 2 batches saves 8 round trips
- Configurable batch size (default 10)
- Configurable max age (default 5s)
- FIFO queue processing

Network Savings Example:
- 10 operations in 2 batches of 5 each
- Network savings: 8 round trips (vs 10 individual operations)
- Verified in TestGetStats

Status Tracking:
- pending: queued and ready to execute
- executing: currently being executed
- completed: finished successfully
- failed: execution failed (kept for retry)

Test Coverage:
- 24 batching tests (enqueue, flush, status, stats)
- Auto-flush on max size verified
- Time-based flush behavior tested
- Network savings calculation verified
- Error handling and state management
- Concurrent safe operations (RWMutex)

Next: T2.6 (LLM request batching)
2026-08-23 17:22:23 -07:00

1.8 KiB
Raw Blame History

Task Board — Milestone T2: Scale & Performance

Submilestone: T2 (Distributed execution, caching, performance optimization)

ID Scope Status Branch Verification
T2.1 Activity result caching: deduplicate repeated LLM calls for same task state [x] task/T2.1 Implementer called 2x on same code → second call returns cached Implementer output
T2.2 Parallel task dispatch: multiple T0.x tasks execute truly concurrently (not sequential) [x] task/T2.2 9 tasks complete in ~1/9 total time (wall-clock speedup measured)
T2.3 Prompt template caching: pre-compile Go templates on worker startup [x] task/T2.3 Template render latency < 100ms (vs parse+render each time)
T2.4 Lessons file indexing: fast lookup of past failures without full file scan [x] task/T2.4 Query lessons by task type → return in < 10ms for 1000s of entries
T2.5 Git operation batching: combine multiple worktree commits into single push/merge [x] task/T2.5 N tasks → 1 push (vs N pushes), measured via git ref-log
T2.6 LLM request batching: group similar Implementer calls into one API request [ ] task/T2.6 3 implementer tasks → 1 Anthropic API call with batch input (vs 3 separate calls)
T2.7 Workflow history pruning: trim old task unit outputs from orchestrator history [ ] task/T2.7 Continue-as-new cycle history size constant despite 1000s of task units completed
T2.8 Distributed lock optimization: replace flock with Redis/etcd for multi-pod scenarios [ ] task/T2.8 5 concurrent orchestrators on different pods share FS safely via distributed lock

Submission Criteria

All T2.1T2.8 marked [x] → submilestone complete → squash-merge task/T2.* to main.