9 Commits

Author SHA1 Message Date
Tink
f958eb4cc9 Merge remote-tracking branch 'origin/main' into feat/openai-compatible-session-isolation
# Conflicts:
#	nanobot/agent/context.py
#	tests/test_consolidate_offset.py
2026-03-06 19:03:41 +08:00
Tink
80219baf25 feat(api): add OpenAI-compatible endpoint with x-session-key isolation 2026-03-01 10:53:45 +08:00
Re-bin
8410f859f7 refactor: use WeakValueDictionary for consolidation locks — auto-cleanup, no manual pop 2026-02-28 08:26:55 +00:00
Re-bin
ec8dee802c refactor: simplify message tool suppress and inline consolidation locks 2026-02-27 02:39:38 +00:00
Alexander Minges
c1b5e8c8d2
fix(loop): lock /new snapshot and prune stale consolidation locks 2026-02-20 13:32:57 +01:00
Alexander Minges
9ada8e6854
fix(loop): require successful archival before /new clear 2026-02-20 13:06:07 +01:00
Alexander Minges
755e424127
fix(loop): serialize /new consolidation and track task refs 2026-02-20 12:40:59 +01:00
chengyongru
afc8d50659 test: add comprehensive tests for consolidate offset functionality
Add 26 new test cases covering:
- Consolidation trigger conditions (exceed window, within keep count, no new messages)
- last_consolidated edge cases (exceeds message count, negative value, new messages after consolidation)
- archive_all mode (/new command behavior)
- Cache immutability (messages list never modified during consolidation)
- Slice logic (messages[last_consolidated:-keep_count])
- Empty and boundary sessions (empty, single message, exact keep count, very large)

Refactor tests with helper functions to reduce code duplication by 25%:
- create_session_with_messages() - creates session with specified message count
- assert_messages_content() - validates message content range
- get_old_messages() - encapsulates standard slice logic

All 35 tests passing.
2026-02-13 16:30:43 +08:00
chengyongru
740294fd74 fix: history messages should not be change[kvcache] 2026-02-13 15:10:07 +08:00