mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-21 05:02:14 +00:00
Major improvements to mom's logging and cost reporting: Centralized Logging System: - Add src/log.ts with type-safe logging functions - Colored console output (green=user, yellow=mom, dim=details) - Consistent format: [HH:MM:SS] [context] message - Replace scattered console.log/error calls throughout codebase Usage Tracking & Cost Reporting: - Track tokens (input, output, cache read/write) and costs per run - Display summary at end of each run in console and Slack thread - Example: 💰 Usage: 12,543 in + 847 out (5,234 cache read) = $0.0234 Prompt Caching Optimization: - Move recent messages from system prompt to user message - System prompt now mostly static (only changes with memory files) - Enables effective use of Anthropic's prompt caching - Significantly reduces costs on subsequent requests Model & Cost Improvements: - Switch from Claude Opus 4.5 to Sonnet 4.5 (~40% cost reduction) - Fix Claude Opus 4.5 cache pricing in ai package (was 3x too expensive) - Add manual override in generate-models.ts until upstream fix merges - Submitted PR to models.dev: https://github.com/sst/models.dev/pull/439 UI/UX Improvements: - Extract actual text from tool results instead of JSON wrapper - Cleaner Slack thread formatting with duration and labels - Tool args formatting shows paths with offset:limit notation - Add chalk for colored terminal output Dependencies: - Add chalk package for terminal colors
64 lines
3.2 KiB
Markdown
64 lines
3.2 KiB
Markdown
# Changelog
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
|
|
- Working memory system with MEMORY.md files
|
|
- Global workspace memory (`workspace/MEMORY.md`) shared across all channels
|
|
- Channel-specific memory (`workspace/<channel>/MEMORY.md`) for per-channel context
|
|
- Automatic memory loading into system prompt on each request
|
|
- Mom can update memory files to remember project details, preferences, and context
|
|
- ISO 8601 date field in log.jsonl for easy date-based grepping
|
|
- Format: `"date":"2025-11-26T10:44:00.123Z"`
|
|
- Enables queries like: `grep '"date":"2025-11-26' log.jsonl`
|
|
- Centralized logging system (`src/log.ts`)
|
|
- Structured, colored console output (green for user messages, yellow for mom activity, dim for details)
|
|
- Consistent format: `[HH:MM:SS] [context] message`
|
|
- Type-safe logging functions for all event types
|
|
- Usage tracking and cost reporting
|
|
- Tracks tokens (input, output, cache read, cache write) and costs per run
|
|
- Displays summary at end of each agent run in console and Slack thread
|
|
- Example: `💰 Usage: 12,543 in + 847 out (5,234 cache read, 127 cache write) = $0.0234`
|
|
|
|
### Changed
|
|
|
|
- Enhanced system prompt with clearer directory structure and path examples
|
|
- Improved memory file path documentation to prevent confusion
|
|
- Message history format now includes ISO 8601 date for better searchability
|
|
- System prompt now includes log.jsonl format documentation with grep examples
|
|
- System prompt now includes current date and time for date-aware operations
|
|
- Added efficient log query patterns using jq to prevent context overflow
|
|
- System prompt emphasizes limiting NUMBER of messages (10-50), not truncating message text
|
|
- Log queries now show full message text and attachments for better context
|
|
- Fixed jq patterns to handle null/empty attachments with `(.attachments // [])`
|
|
- Recent messages in system prompt now formatted as TSV (43% token savings vs raw JSONL)
|
|
- Enhanced security documentation with prompt injection risk warnings and mitigations
|
|
- **Moved recent messages from system prompt to user message** for better prompt caching
|
|
- System prompt is now mostly static (only changes when memory files change)
|
|
- Enables Anthropic's prompt caching to work effectively
|
|
- Significantly reduces costs on subsequent requests
|
|
- Switched from Claude Opus 4.5 to Claude Sonnet 4.5 (~40% cost reduction)
|
|
- Tool result display now extracts actual text instead of showing JSON wrapper
|
|
- Slack thread messages now show cleaner tool call formatting with duration and label
|
|
- All console logging centralized and removed from scattered locations
|
|
|
|
### Fixed
|
|
|
|
- jq query patterns now properly handle messages without attachments (no more errors on empty arrays)
|
|
|
|
## [0.9.4] - 2025-11-26
|
|
|
|
### Added
|
|
|
|
- Initial release of Mom Slack bot
|
|
- Slack integration with @mentions and DMs
|
|
- Docker sandbox mode for isolated execution
|
|
- Bash tool with full shell access
|
|
- Read, write, edit file tools
|
|
- Attach tool for sharing files in Slack
|
|
- Thread-based tool details (clean main messages, verbose details in threads)
|
|
- Single accumulated message per agent run
|
|
- Stop command (`@mom stop`) to abort running tasks
|
|
- Persistent workspace per channel with scratchpad directory
|
|
- Streaming console output for monitoring
|