- 1. Add session auto-save interval (every 30s during idle)
- 2. Add session size limit warning (>100 messages)
- 3. Add session export to markdown
- 4. Add session search by content
- 5. Add session tagging system
- 6. Add session branching (fork from checkpoint)
- 7. Add session compression for old sessions
- 8. Add session stats (token count, duration, tool calls)
- 9. Add session lock file to prevent double-open
- 10. Add session cleanup command (delete old sessions)
- 11. Add session naming from first prompt
- 12. Add session resume with conflict detection
- 13. Validate session integrity on load
- 14. Add max session file size enforcement
- 15. Add session history pagination in /history
- 16. Store git branch with session metadata
- 17. Add session diff (compare two sessions)
- 18. Add session merge (combine two sessions)
- 19. Track files modified per session
- 20. Add session duration timer in status bar
- \1 Friendly error: missing API key per provider
- 22. Friendly error: network unreachable
- 23. Friendly error: rate limited (show retry-after)
- 24. Friendly error: context too long (suggest /compact)
- 25. Friendly error: invalid model name (suggest closest)
- 26. Friendly error: permission denied on file ops
- 27. Friendly error: tool timeout (show which tool)
- 28. Friendly error: MCP server not responding
- 29. Friendly error: disk full
- 30. Friendly error: invalid JSON in settings
- 31. Add error recovery suggestions in all error messages
- 32. Add --verbose flag for debug output
- 33. Add error log file (~/.hawk/error.log)
- 34. Add crash report generation
- 35. Catch panics and save session before exit
- 36. Add connection health check on startup
- 37. Add API key validation on startup (quick test)
- 38. Add provider-specific error parsing
- 39. Add retry indicator in TUI ("Retrying 2/3...")
- 40. Handle SIGTERM gracefully (save + exit)
- 41. Handle SIGHUP (save session, keep running)
- 42. Add timeout configuration per tool
- 43. Add global request timeout setting
- 44. Add error deduplication (don't show same error 10x)
- 45. Add error context (what was being attempted)
- 46. Render markdown code blocks with syntax highlighting
- 47. Render markdown lists (bullet, numbered)
- 48. Render markdown links (show URL in dim)
- 49. Render markdown headers (bold + color)
- 50. Render inline code with background
- 51. Add diff coloring for Edit tool output
- 52. Add file tree display for /files
- 53. Add tool execution progress indicator
- 54. Add cost display in status bar
- 55. Add token count in status bar
- 56. Add model name in status bar
- 57. Add session name in status bar
- 58. Add time elapsed for current query
- 59. Add word wrap that respects terminal width
- 60. Add horizontal scroll for wide content
- 61. Fix viewport jump on new content
- 62. Add smooth scroll animation
- 63. Add search in viewport (Ctrl+F)
- 64. Add copy last response to clipboard
- 65. Add multi-line input (Shift+Enter)
- 66. Add input history persistence across sessions
- 67. Add tab completion for file paths
- 68. Add tab completion for tool names
- 69. Add slash command fuzzy matching
- 70. Add permission prompt with diff preview
- 71. Add thinking indicator with elapsed time
- 72. Add tool result folding (expand/collapse)
- 73. Add message timestamps
- 74. Add message numbering
- 75. Add theme system (dark, light, solarized)
- 76. Add configurable colors
- 77. Add status bar toggle (hide/show)
- 78. Add welcome screen skip option
- 79. Add notification sound on completion
- 80. Add TUI resize without content loss
- 81. Bash: add configurable default timeout (120s)
- 82. Bash: add max output size config
- 83. Bash: show real-time output during execution
- 84. Bash: add working directory tracking
- 85. Bash: detect and warn on destructive commands
- 86. Read: stream large files instead of loading all
- 87. Read: add binary file detection
- 88. Read: add encoding detection (UTF-8, Latin1)
- 89. Read: add image EXIF info display
- 90. Edit: validate old_string exists before attempting
- 91. Edit: show context around the edit (±3 lines)
- 92. Edit: add undo support (store pre-edit content)
- 93. Write: create parent directories automatically
- 94. Write: backup original file before overwrite
- 95. Write: validate file isn't binary before text write
- 96. Grep: add max results limit
- 97. Grep: add file type filtering
- 98. Grep: show match context lines
- 99. Glob: add .gitignore respect
- 100. Glob: add max depth limit
- 101. WebFetch: add response size limit
- 102. WebFetch: add timeout per request
- 103. WebFetch: add redirect following limit
- 104. WebFetch: add robots.txt respect option
- 105. WebSearch: add result count limit
- 106. WebSearch: add region/language setting
- 107. LSP: add server health monitoring
- 108. LSP: auto-restart on crash
- 109. MCP: add server startup timeout
- 110. MCP: add reconnection on disconnect
- 111. Add
hawk initto create project config - 112. Add config validation on load
- 113. Add config migration between versions
- 114. Add environment variable interpolation in config
- 115. Add .env file loading
- 116. Add per-directory .hawk/config.json
- 117. Add config diff (show what's overridden)
- 118. Add config reset command
- 119. Add provider-specific config sections
- 120. Add custom system prompt from file
- 121. Add prompt templates library
- 122. Add alias definitions in config
- 123. Add auto-allowed patterns file
- 124. Add ignore patterns for file tools
- 125. Add max cost budget with hard stop
- 126. Add max tokens per session limit
- 127. Add default model per project
- 128. Add model aliases (e.g., "fast" → haiku)
- 129. Add startup commands in config
- 130. Add shell integration (zsh/bash completions)
- 131. Lazy-load plugin system
- 132. Lazy-load MCP connections
- 133. Lazy-load model catalog
- 134. Parallel MCP server startup
- 135. Cache AGENTS.md content (invalidate on file change)
- 136. Index sessions in SQLite for fast search
- 137. Streaming token count estimation
- 138. Pre-warm API connection on startup
- 139. Batch tool results in single message
- 140. Reduce memory allocation in hot path
- 141. Profile startup time (target <200ms)
- 142. Profile first-token-time
- 143. Add benchmark tests for critical paths
- 144. Reduce binary size (strip debug info)
- 145. Add --fast flag that skips optional init
- 146. Cache provider health checks
- 147. Debounce session saves during rapid edits
- 148. Limit viewport re-render frequency
- 149. Pool JSON encoder/decoder instances
- 150. Async plugin hook execution
- 151. Never log API keys
- 152. Mask API keys in /config display
- 153. Validate file paths don't escape sandbox
- 154. Block command injection in tool arguments
- 155. Rate limit tool executions per minute
- 156. Add audit log for all file modifications
- 157. Add confirmation for rm -rf style commands
- 158. Block reading .env files by default
- 159. Block reading SSH keys by default
- 160. Add credential detection in file writes
- 161. Sanitize output before writing to log
- 162. Add file permission preservation on write
- 163. Validate MCP server binaries
- 164. Add checksum for plugin installations
- 165. Encrypt stored tokens at rest
- 166. Add session encryption option
- 167. Clear sensitive data from memory after use
- 168. Add command allowlist/blocklist
- 169. Prevent symlink traversal attacks
- 170. Add network request allowlist
- 171. Add integration test: full session flow
- 172. Add integration test: session resume
- 173. Add integration test: crash recovery
- 174. Add integration test: compaction triggers
- 175. Add integration test: permission flow
- 176. Add integration test: tool execution chain
- 177. Add fuzz test: session JSON parsing
- 178. Add fuzz test: bash command safety
- 179. Add fuzz test: file path validation
- 180. Add benchmark: session save/load (1000 messages)
- 181. Add benchmark: startup time
- 182. Add benchmark: tool dispatch overhead
- 183. Add test: atomic save under concurrent writes
- 184. Add test: WAL recovery with corrupt entries
- 185. Add test: large file read (>1GB)
- 186. Add test: 1000+ tool calls in session
- 187. Add test: resize handling in TUI
- 188. Add test: vim mode all motions
- 189. Add test: slash command routing
- 190. Add test: provider fallback chain
- 191. Add test: config merging precedence
- 192. Add test: hook execution order
- 193. Add test: permission pattern matching
- 194. Add test: compaction token boundary math
- 195. Add golden test: CLI --help output
- 196. Add goreleaser config for cross-compilation
- 197. Add GitHub Actions CI pipeline
- 198. Add install.sh for curl|bash installs
- 199. Add Homebrew formula
- 200. Add man page generation
- 201. Add shell completions (zsh, bash, fish)
- 202. Add version injection at build time
- 203. Add changelog generation from commits
- 204. Add release notes template
- 205. Add binary size tracking
- 206. Add Docker image
- 207. Add Nix flake
- 208. Add deb/rpm packages
- 209. Add Windows MSI installer
- 210. Add auto-update mechanism with rollback
- 211. Add /doctor output with system info
- 212. Add /debug command for troubleshooting
- 213. Add --dry-run flag for tools
- 214. Add --no-color flag
- 215. Add HAWK_DEBUG env for verbose logging
- 216. Add /metrics command (memory, goroutines)
- 217. Add /profile command (timing breakdown)
- 218. Add /export markdown (session to .md)
- 219. Add /export json (session to structured JSON)
- 220. Add /undo command (revert last tool action)
- 221. Add /retry command (re-send last prompt)
- 222. Add /edit command (edit last message)
- 223. Add /fork command (branch session from here)
- 224. Add /quiet mode (minimal output)
- 225. Add /verbose mode (show thinking, tool args)
- 226. Add model cascade router (classify prompt → select model tier)
- 227. Add dynamic max_tokens (adaptive output budgets per task type)
- 228. Use cheap model for compaction summaries
- 229. Add context budget allocator (formal token allocation across categories)
- 230. Wire prompt caching headers in eyrie (cache_control on system/tools)
- 231. Add Ollama as first-class local model provider
- 232. Add batch API client for non-interactive operations
- 233. Add frugal mode config (aggressive cost optimization preset)
- 234. Wire cost analytics to real session data
- 235. Add per-request cost estimation in status bar
- 236. Add LLM reflection engine (verbal self-reflection on failures)
- 237. Add self-review before file write (rubber duck debugging)
- 238. Add session lifecycle loop (OnSessionStart/OnSessionEnd)
- 239. Wire EvolvingMemory.Learn() into session end
- 240. Wire skill distillation into successful complex sessions
- 241. Add few-shot example curation from prior successes
- 242. Add error pattern database (trigger → root cause → resolution)
- 243. Add benchmark-driven system prompt tuning
- 244. Add cross-session transfer learning
- 245. Add adaptive system prompts from feedback
- 246. Add import/dependency graph (Go/Python/TypeScript)
- 247. Add change-set aware context from git diff
- 248. Enhanced AST parser (go/ast, no CGO) replacing regex parsers
- 249. Add call graph analysis for Go (callers/callees)
- 250. Add file relevance prediction (pre-load predicted files)
- 251. Add recent edit tracker (feed into Shapley ranker)
- 252. Add co-change analysis from git history
- 253. Add hierarchical code summarization (3-level cache)
- 254. Add interface extraction mode (exported signatures only)
- 255. Add fsnotify for real-time index updates
- 256. Add Landlock sandbox (Linux default, zero-dependency)
- 257. Add seccomp-bpf syscall filtering (blocks 21 dangerous syscalls)
- 258. Add Landlock auto-detection and fallback chain
- 259. Add gVisor (runsc) Docker backend option
- 260. Improve seatbelt profile (deny home writes in strict mode)