Peter Steinberger
ad5c87c193
fix: relax slash command parsing
2026-01-08 03:24:18 +01:00
Lutro
36b443f4f3
Telegram: fix /think command to show current level when no arg
2026-01-08 03:24:18 +01:00
Peter Steinberger
0d34f330b8
refactor(browser): share chrome resolution helpers
2026-01-08 02:18:43 +00:00
Peter Steinberger
1e826862c3
fix(browser): support Windows Chrome detection (PR #439 , thanks @mrdbstn)
2026-01-08 02:08:59 +00:00
Mourad Boustani
7294ba037d
browser: add Windows Chrome executable detection
2026-01-08 02:06:59 +00:00
Peter Steinberger
92a62bc300
style: format providers docs output
2026-01-08 02:01:43 +00:00
Peter Steinberger
313925b357
fix: restore gateway connection details helper
2026-01-08 02:00:27 +00:00
Peter Steinberger
6f82ec7b83
style: colorize providers list
2026-01-08 02:59:15 +01:00
Peter Steinberger
440a5b82cf
fix(gateway): honor local auth password for CLI (PR #301 , thanks @jeffersonwarrior)
2026-01-08 02:59:06 +01:00
Peter Steinberger
cda050d050
chore: tweak providers docs link
2026-01-08 02:56:47 +01:00
Peter Steinberger
03cf7da2bd
feat: default providers list to usage
2026-01-08 02:56:47 +01:00
Peter Steinberger
8ce6f783f0
feat: add usage to providers list
2026-01-08 02:56:47 +01:00
Peter Steinberger
2f707ad4ad
style: format gateway call helpers
2026-01-08 01:53:28 +00:00
Peter Steinberger
6aa6c837e7
fix: add gateway connection debug output
2026-01-08 02:51:39 +01:00
Peter Steinberger
3d0156890c
refactor: split port diagnostics helpers
2026-01-08 02:42:43 +01:00
Peter Steinberger
2fe3b483b1
fix: add gateway close context
2026-01-08 02:42:32 +01:00
Peter Steinberger
2140caaf67
fix: telegram html formatting ( #435 , thanks @RandyVentures)
2026-01-08 02:34:32 +01:00
Peter Steinberger
61f5ed8bb7
fix: improve gateway diagnostics
2026-01-08 02:29:32 +01:00
Peter Steinberger
cad853b547
refactor: rebuild agent system prompt
2026-01-08 02:20:30 +01:00
Peter Steinberger
a450390f7c
refactor: share reply payload threading/dedupe
2026-01-08 01:09:23 +00:00
Peter Steinberger
3f1807b6cb
fix: restore doctor sandbox warnings
2026-01-08 01:55:59 +01:00
Peter Steinberger
05b8679c8b
feat: add providers CLI and multi-account onboarding
2026-01-08 01:55:59 +01:00
Peter Steinberger
6b3ed40d0f
feat: format cron list output
2026-01-08 01:52:33 +01:00
Peter Steinberger
bbf45a0264
feat: add cron cli aliases
2026-01-08 01:52:33 +01:00
Peter Steinberger
2ca936ee98
refactor: split doctor into modules
2026-01-08 01:52:33 +01:00
Peter Steinberger
8b9f0c4e2a
refactor: extract doctor state integrity
2026-01-08 01:52:33 +01:00
Peter Steinberger
ee28b20419
fix: harden doctor state integrity checks
2026-01-08 01:52:33 +01:00
Peter Steinberger
17d052bcda
fix: polish reply threading + tool dedupe (thanks @mneves75) ( #326 )
2026-01-08 00:50:47 +00:00
mneves75
33e2d53be3
feat(telegram): wire replyToMode config, add forum topic support, fix messaging tool duplicates
...
Changes:
- Default replyToMode from "off" to "first" for better threading UX
- Add messageThreadId and replyToMessageId params for forum topic support
- Add messaging tool duplicate detection to suppress redundant block replies
- Add sendMessage action to telegram tool schema
- Add @grammyjs/types devDependency for proper TypeScript typing
- Remove @ts-nocheck and fix all type errors in send.ts
- Add comprehensive docs/telegram.md documentation
- Add PR-326-REVIEW.md with John Carmack-level code review
Test coverage:
- normalizeTextForComparison: 5 cases
- isMessagingToolDuplicate: 7 cases
- sendMessageTelegram thread params: 5 cases
- handleTelegramAction sendMessage: 4 cases
- Forum topic isolation: 4 cases
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 00:50:47 +00:00
Peter Steinberger
6cd32ec7f6
test: stabilize cron auto-run test
2026-01-08 01:38:48 +01:00
Peter Steinberger
56310bad44
docs: add gateway self-update prompt guidance
2026-01-08 01:37:02 +01:00
Peter Steinberger
1bc4e1ae88
fix: satisfy lint for slow listener logs
2026-01-08 01:32:52 +01:00
Peter Steinberger
71c31266a1
feat: add gateway config/update restart flow
2026-01-08 01:30:02 +01:00
Peter Steinberger
3398fc3820
fix: format slow listener logs
2026-01-08 01:28:21 +01:00
Peter Steinberger
67213e0fc6
refactor(nodes): share run parsing helpers
2026-01-08 00:24:11 +00:00
Peter Steinberger
e35845dd49
fix(nodes-tool): add run invoke timeout (PR #433 , thanks @sircrumpet)
2026-01-08 00:18:06 +00:00
SirCrumpet
b34fc0aaed
fix(nodes-tool): add missing 'run' action to execute commands on paired nodes with optional parameters as defined in CLI
2026-01-08 00:18:06 +00:00
Peter Steinberger
145fe1cec7
refactor(sandbox): unify scope + per-agent overrides
2026-01-08 01:17:55 +01:00
Peter Steinberger
5c38d17c4b
refactor: dedupe embedded prompt append
2026-01-08 00:08:27 +00:00
Peter Steinberger
4f58e6aa7c
feat(sandbox): per-agent docker overrides
2026-01-08 01:06:14 +01:00
Peter Steinberger
badc1602c8
fix: avoid duplicate prompt context
2026-01-08 00:01:40 +00:00
Peter Steinberger
8b4bcc6b7a
refactor: centralize message provider normalization
2026-01-07 23:53:38 +00:00
Peter Steinberger
b03a1ad814
feat(sandbox): per-agent docker setupCommand
2026-01-08 00:52:22 +01:00
Peter Steinberger
da5481e878
fix: route agent messageProvider from resolved provider ( #389 , thanks @imfing)
2026-01-07 23:34:43 +00:00
Peter Steinberger
11006d1245
refactor: share backoff helpers
2026-01-07 23:22:12 +00:00
Peter Steinberger
c96f669f2f
fix: reconnect signal sse monitor
2026-01-07 23:15:55 +00:00
Quentin
80f31cd75e
fix: Signal SSE monitor reconnects on connection drop
...
- Wrap streamSignalEvents in reconnection loop
- Exponential backoff: 1s → 30s max
- Log reconnection attempts
- Respect abortSignal for clean shutdown
Fixes #425
2026-01-07 23:15:55 +00:00
Peter Steinberger
b2de667b11
fix: persist topic session files
2026-01-07 22:56:50 +00:00
Peter Steinberger
67d1f61872
fix: harden session caching and topic transcripts
2026-01-07 22:51:26 +00:00
hsrvc
8da4f259dd
Implement Phase 2: Topic-level message history isolation for multi-topic Telegram support
...
Add topic-specific session file isolation to fix root cause of Gemini turn validation errors.
Each Telegram topic now maintains its own conversation history file, eliminating race
conditions and message corruption during concurrent topic processing.
Changes:
1. Enhanced resolveSessionTranscriptPath() to support optional topicId parameter
- Topic ID (Telegram messageThreadId) now incorporated into session filename
- Format: sessionId.jsonl (direct chats) vs sessionId-topic-{topicId}.jsonl (topics)
- Backward compatible: topicId is optional
2. Updated reply.ts to pass MessageThreadId to session file resolution
- ctx.MessageThreadId now flows through to resolveSessionTranscriptPath()
- Automatically provides topic context for each incoming message
3. Automatic propagation through entire system
- sessionFile parameter automatically carries topic-specific path through:
- FollowupRun object (queued runs)
- runEmbeddedPiAgent() calls
- compactEmbeddedPiSession() calls
- SessionManager lifecycle (load, read, write operations)
Benefits:
✓ Complete elimination of shared .jsonl race conditions
✓ Each topic's conversation history independently cached
✓ SessionManager instances operate on isolated files
✓ No concurrent mutations of the same message history
✓ Maintains full Phase 1 turn validation as safety layer
Testing:
✓ Build succeeds with no TypeScript errors
✓ Backward compatible with non-topic sessions (direct messages)
✓ Topic ID properly extracted from Telegram messageThreadId
Expected impact:
- Gemini "function call turn" errors eliminated (root cause fixed)
- Message history corruption prevented across all topics
- Improved stability in multi-topic scenarios
- Each topic maintains independent conversation state
This completes the two-phase fix:
- Phase 1 (previous): Turn validation to suppress errors
- Phase 2 (current): Topic isolation to fix root cause
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-07 22:51:26 +00:00