84 lines
3.4 KiB
Markdown
84 lines
3.4 KiB
Markdown
# Project State
|
|
|
|
## Project Reference
|
|
|
|
See: .planning/PROJECT.md (updated 2026-02-04)
|
|
|
|
**Core value:** Frictionless conversation with Claude Code from anywhere via Telegram — no SSH, no manual inbox checking, just message and get a response.
|
|
**Current focus:** Phase 1 (Session & Process Foundation)
|
|
|
|
## Current Position
|
|
|
|
Phase: 1 of 4 (Session & Process Foundation)
|
|
Plan: 01-03 complete (3 of 3 plans completed)
|
|
Status: Phase 1 complete
|
|
Last activity: 2026-02-04 — Completed 01-03-PLAN.md (Bot command integration)
|
|
|
|
Progress: [███░░░░░░░░░░░░] 25%
|
|
|
|
## Performance Metrics
|
|
|
|
**Velocity:**
|
|
- Total plans completed: 3
|
|
- Average duration: 10 min
|
|
- Total execution time: 0.50 hours
|
|
|
|
**By Phase:**
|
|
|
|
| Phase | Plans | Total | Avg/Plan |
|
|
|-------|-------|-------|----------|
|
|
| 1 | 3 | 27min | 9min |
|
|
|
|
**Recent Trend:**
|
|
- Last 3 plans: 01-01 (3min), 01-02 (9min), 01-03 (15min)
|
|
- Trend: Increasing complexity (more orchestrator fixes)
|
|
|
|
*Updated after each plan completion*
|
|
|
|
## Accumulated Context
|
|
|
|
### Decisions
|
|
|
|
Decisions are logged in PROJECT.md Key Decisions table.
|
|
Recent decisions affecting current work:
|
|
|
|
- Claude Code CLI over raw API: Gets full tool access, --resume support, and all Claude Code features for free
|
|
- Haiku polling + Opus conversation: Avoids burning expensive Opus tokens on idle monitoring (deferred to v2)
|
|
- Path-based sessions: Leverages Claude Code's native session-per-directory behavior, files naturally scoped
|
|
- Extend existing bot: Reuse proven Telegram integration rather than building from scratch
|
|
- Sessions created as 'idle', activated explicitly: Creating doesn't mean in use, switch required (01-01)
|
|
- Metadata read from disk on demand: No caching to avoid stale state (01-01)
|
|
- Asyncio.gather for concurrent stream reading: Prevents pipe deadlock (01-02)
|
|
- Fresh process per turn: Spawn new `claude -p` invocation for Phase 1 simplicity (01-02)
|
|
- Callback architecture: Decouple subprocess from session management via on_output/on_error/on_complete/on_status (01-02)
|
|
- Sibling imports over package imports: Avoids shadowing pip telegram package (01-03)
|
|
- Archive sessions with tar+pigz: Compression + cleanup to sessions_archive/ (01-03)
|
|
|
|
### Pending Todos
|
|
|
|
None yet.
|
|
|
|
### Blockers/Concerns
|
|
|
|
**Phase 1 (Session & Process Foundation) — COMPLETE**
|
|
- ~~Claude Code CLI --resume behavior with pipes vs PTY unknown~~ — RESOLVED: Research confirms pipes + stream-json is correct approach
|
|
- ~~Output format for tool calls not documented~~ — RESOLVED: stream-json format documented and implemented
|
|
|
|
**Phase 2 (Persistent Processes) — BLOCKER:**
|
|
- **Non-persistent process model:** Current implementation spawns fresh `claude -p` per turn (~1s overhead each)
|
|
- Design goal was persistent processes that suspend when switching sessions
|
|
- This gap affects response latency and user experience
|
|
- Must be addressed before Phase 3 integration
|
|
- Requires refactoring ClaudeSubprocess to lifecycle-manage process instances
|
|
|
|
**Phase 3 (Telegram Integration):**
|
|
- Message batching strategy needs validation against actual Claude output patterns
|
|
- Optimal chunk split points require experimentation
|
|
- Streaming responses / typing indicators needed for UX during long API waits
|
|
|
|
## Session Continuity
|
|
|
|
Last session: 2026-02-04T18:00:00Z
|
|
Stopped at: Completed 01-03-PLAN.md (Bot command integration)
|
|
Resume file: None
|
|
Next: Phase 2 ready (persistent process model needed)
|