-
Notifications
You must be signed in to change notification settings - Fork 19
Durable session identity: resume a conversation by id, and stop losing history #197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
senamakel
merged 162 commits into
tinyhumansai:main
from
senamakel:session-identity-tinyagents
Sep 23, 2026
+3,808
−101
Merged
Changes from all commits
Commits
Show all changes
162 commits
Select commit
Hold shift + click to select a range
4f8af3a
fix(session): handle empty transcript in session initialization
senamakel 3cae4c9
fix(test): update session test to use correct assertion
senamakel d805ccc
fix(session): handle empty transcript in session initialization
senamakel a10c4d6
fix(session): handle empty transcript in session creation
senamakel 56239ff
fix(session): correct test assertion for empty transcript
senamakel 609c577
fix(transcript): handle missing path segments in transcript paths
senamakel db531d7
chore(tests): add session transcript test file
senamakel b622720
fix(transcript): handle empty transcript in types
senamakel 3d02a81
chore: files changed crates/tinyagents-integration-tests/tests/featur…
senamakel d55fb60
fix: add missing line break before struct literal in seven functions
senamakel 748f26c
fix(transcript): handle empty JSONL files without error
senamakel f5b4642
fix(transcript): populate session_id and parent_session_id in meta_fr…
senamakel 704d7da
fix(transcript): handle empty history in session transcript
senamakel 7d03ac8
feat(transcript): implement session lifecycle methods for FileTranscr…
senamakel 3941cfd
test(transcript): add session identity and compaction tests
senamakel 3f0dedd
fix(transcript): handle empty adoption list in adoption module
senamakel 203231d
fix(test): update adoption test to use correct session ID
senamakel 6b10b28
feat(transcript): add adoption module for legacy transcript folding
senamakel 357a727
fix(transcript): handle empty history in session transcript
senamakel 9bd7298
feat(transcript): separate retained message injection from generation…
senamakel c0dba1b
test(transcript): add adoption tests for legacy OpenHuman transcript …
senamakel 7692d45
fix(test): remove unnecessary Option wrapper in test assertion
senamakel 1f57bd7
fix(types): remove unused import of std::collections::HashMap
senamakel a2d8f5d
chore(types): remove unused import of `std::collections::HashMap`
senamakel 3c2bf3e
fix(types): remove unused import of std::collections::HashMap
senamakel 55082e8
fix(session): handle missing session state on resume
senamakel e4cb828
feat(transcript): add legacy session adoption to TranscriptLocator
senamakel cf8ade9
fix(session): handle missing session state on resume
senamakel 2bb476d
fix(runtime): add SessionRef import to session module
senamakel 8e54605
refactor(session): replace verbose legacy adoption with a best-effort…
senamakel 7a11f1a
chore: files changed crates/tinyagents-runtime/src/builder.rs
senamakel d175708
feat(session): detect compaction and seal session-bound transcripts
senamakel aa27714
test(runtime): add session-aware transcript locator to test harness
senamakel c14da24
fix(runtime): add missing SessionRef import in test module
senamakel a321e34
test(runtime): add session-identity resume and compaction tests
senamakel d38e1d5
refactor(test): rename outcome helper to session_outcome
senamakel 4b63f7b
chore: reformat code for consistent style across transcript modules
senamakel 1f7dd3d
fix(test): simplify session_outcome return type
senamakel c5b1bd0
feat(transcript): add session_chain method to TranscriptLocator
senamakel 55b920d
refactor(session): extract first_generation helper from inline constr…
senamakel 69008ca
test(transcript): add test for session chain listing all generations
senamakel f657796
fix(transcript): handle empty session transcript gracefully
senamakel 8d3b0c4
fix(session): handle empty transcript in session initialization
senamakel 107657c
fix(session): handle empty transcript in session creation
senamakel a79e2a6
chore: remove unused import in session_test.rs
senamakel 0482c17
fix(transcript): handle empty history in session transcript
senamakel 026f1ef
fix(transcript): handle empty history in session transcript
senamakel b871688
fix(types): remove unused import of `std::fmt`
senamakel 75763cc
fix(types): remove unused import of `std::sync::Arc`
senamakel 5812fb7
fix(session): handle missing session state on resume
senamakel 7db1bbb
fix(session): handle missing session state on resume
senamakel 2827bb3
fix(session): handle missing session state on resume
senamakel a899c6c
chore(deps): update serde_json dependency to 1.0.128
senamakel 86fa5d6
chore(deps): add tracing dependency to Cargo.lock
senamakel e33ab88
fix(session): handle missing session state on resume
senamakel b562f46
fix(transcript): handle empty transcript in writer
senamakel 309e373
fix(transcript): handle empty transcript in writer
senamakel 27859c1
chore: Based on the provided information, there is no diff content to…
senamakel eb7a69c
fix(transcript): handle empty adoption list in adoption module
senamakel b60674e
fix(transcript): correct adoption test to verify agent message handling
senamakel a978489
fix(test): update adoption test to verify session transcript behavior
senamakel 0e91a7e
fix(transcript): correct adoption test to verify agent identity
senamakel b8ce2e0
fix(test): update session test to verify message ordering
senamakel 75aec15
fix(transcript): correct test assertion for empty transcript
senamakel 22ec19e
fix(session): correct transcript test to verify message ordering
senamakel 1eb89d1
fix(session): correct transcript test to verify message ordering
senamakel f196147
fix(test): update test to verify new runtime behavior
senamakel db91736
fix(runtime): remove unused test module
senamakel c3d15f6
fix(test): update test to use correct assertion macro
senamakel 3270300
fix(test): remove unused import in test module
senamakel 0aff394
fix(session): handle empty transcript in session creation
senamakel 7f3a2ee
fix(session): correct test assertion for empty transcript
senamakel 7238667
fix(session): correct test assertion for empty transcript
senamakel c2fe604
fix(transcript): inline format string in atomic_write
senamakel b8a157b
fix(session): correct test assertion for session transcript
senamakel af769a7
fix(transcript): handle empty history in session transcript
senamakel e35c9c9
fix(session): handle empty transcript in session creation
senamakel e7b3b7a
fix(session): handle empty transcript in session creation
senamakel 63e2c4d
fix(session): correct test assertion for empty transcript
senamakel e23695c
fix(transcript): handle empty transcript in writer
senamakel 38b0c4e
fix(transcript): handle empty transcript in writer
senamakel d45d9cf
fix(transcript): handle empty transcript in writer
senamakel c7421d3
fix(transcript): handle empty adoption list without panic
senamakel 865bccf
fix(transcript): handle empty adoption list in adoption check
senamakel e6e54dc
fix(transcript): correct adoption test to verify agent state after ad…
senamakel 3e98206
fix(transcript): handle empty transcript in summarization
senamakel 5a15ae7
fix(transcript): correct test assertion for empty transcript
senamakel 1f3857f
fix(transcript): correct adoption test to verify agent adoption
senamakel 2c1fe9e
fix(transcript): correct adoption test to verify agent state after ad…
senamakel 969da9c
fix(session): handle missing session state on resume
senamakel c1c5197
test(runtime): add test for thread resume not corrupting session-boun…
senamakel 89d74e7
fix(session): disable session persistence on resume
senamakel ad3c344
fix(runtime): restore session persistence guard condition
senamakel 9de5186
fix(runtime): correct test assertion for agent response
senamakel 91fb04a
fix(session): disable persisted transcript update on resume
senamakel 33ae5c1
fix(runtime): correct session persistence guard condition
senamakel a3b3d0a
chore(transcript): reformat long lines for readability
senamakel 041dd48
fix(transcript): handle empty history in session transcript
senamakel 9dd46ce
fix(transcript): handle empty history in session transcript
senamakel c8d7580
fix(transcript): handle empty history in session transcript
senamakel e8b8f6b
chore(transcript): reformat lock acquisition in history methods
senamakel c17b614
fix(transcript): handle empty adoption list in adoption check
senamakel 4a3703c
fix(transcript): correct adoption test to verify session state after …
senamakel e1a8e8f
fix(transcript): handle empty history in session transcript
senamakel d5b470e
fix(transcript): handle empty history in session transcript
senamakel 3da9389
fix(transcript): handle empty history in session transcript
senamakel 2892d46
fix(transcript): handle empty history in session transcript
senamakel ee4e7c1
fix(session): handle empty transcript in session initialization
senamakel 27ddbc1
fix(transcript): handle empty session transcript gracefully
senamakel 278e6c9
fix(transcript): handle empty session transcript gracefully
senamakel 459b4db
fix(session): correct test assertion for empty transcript
senamakel 626cf33
fix(session): correct test assertion for empty transcript
senamakel 88b4cb4
fix(session): use session_stem for parent stem in child sessions
senamakel d886604
fix(session): use bounded parent stem for child sessions
senamakel 7b86fca
chore(transcript): remove trailing blank line in FileTranscriptHistory
senamakel 8eca400
feat(session): expose unreadable-file flag in thread transcript lookup
senamakel aa0eb43
fix(transcript): handle empty adoption list in adoption module
senamakel 7693f84
fix(transcript): handle empty adoption list in adoption module
senamakel 4c98e04
fix(transcript): correct adoption test to verify session state after …
senamakel fa55cca
fix(transcript): handle empty transcript in writer
senamakel ab19d5c
fix(transcript): handle empty transcript in writer
senamakel 493a2cc
fix(transcript): handle empty history in session transcript
senamakel b7349b6
fix(transcript): correct test assertion for empty transcript
senamakel a50a9cb
fix(test): update test to use correct assertion macro
senamakel 414f148
chore: reformat long method chains and function calls
senamakel 4dde8c4
fix(session): handle empty session state on deserialization
senamakel 3b89f7e
fix(test): update test to use correct assertion for empty state
senamakel 9d91287
chore(session): remove dead code in session rebind logic
senamakel 569bece
feat(session): resolve head generation for all resume modes
senamakel 47908a4
fix(session): disable dead branch in session rebinding
senamakel 37fe5ea
fix(session): remove dead branch condition in rebind logic
senamakel ba59d9f
fix(test): update test to use correct assertion for empty state
senamakel 6f8fd55
fix(session): disable dead branch in session rebind logic
senamakel f131996
fix(session): remove dead branch condition in rebind logic
senamakel 2ff6e39
fix(session): handle empty transcript in session initialization
senamakel 887d5b1
fix(session): correct test assertion for empty transcript
senamakel 62e968b
fix(session): handle empty transcript in session initialization
senamakel 8a2252b
fix(session): handle empty transcript in session initialization
senamakel ff00e52
fix(test): update session test to verify new transcript behavior
senamakel 04c5d21
fix(session): handle empty transcript in session initialization
senamakel a5bb9f9
fix(session): correct test assertion for empty transcript
senamakel b5be9d2
fix(session): handle empty transcript in session initialization
senamakel 892cddb
fix(session): correct test assertion for empty transcript
senamakel 206c4af
fix(test): update session test to verify message ordering
senamakel dc742af
fix(session): correct test assertion for empty transcript
senamakel 3e518d1
fix(test): update session test to verify new timeout behavior
senamakel e24f3b3
fix(test): update session test to verify new timeout behavior
senamakel 68a4a08
fix(session): handle missing session state on resume
senamakel b441b42
fix(session): handle missing session state on resume
senamakel 7d6efd0
feat(runtime): add test module for runtime functionality
senamakel 9f262c2
fix(test): remove unused import in test.rs
senamakel e0d2a48
fix(test): update test to use correct assertion macro
senamakel 4de63c1
fix(test): update test to use correct assertion for error case
senamakel 560c809
fix(session): skip reloading target meta on transcript destination
senamakel 83ea630
fix(session): reload target meta when switching transcripts
senamakel 5d09627
fix(session): handle empty transcript in writer
senamakel edd41c6
fix(transcript): handle missing session id in writer
senamakel e2e9f64
fix(thread_lookup): handle missing thread in lookup
senamakel 2a88324
fix(thread_lookup): handle missing thread in lookup
senamakel c7499b7
fix(thread_lookup): handle missing thread in lookup
senamakel 0f7f426
fix(session): correct transcript test to use valid session ID
senamakel 3ad7006
fix(session): handle empty transcript in session initialization
senamakel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.