testing
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Test Plan: Sessions
|
||||
|
||||
## Feature description
|
||||
|
||||
Sessions persist conversation history across multiple turns. They
|
||||
store messages, role context, model info, and optional MCP config.
|
||||
Sessions can be temporary, named, or auto-named.
|
||||
|
||||
## Behaviors to test
|
||||
|
||||
### Session creation
|
||||
- [ ] Temp session created with TEMP_SESSION_NAME
|
||||
- [ ] Named session created at correct file path
|
||||
- [ ] New session captures current role via extract_role
|
||||
- [ ] New session captures save_session from AppConfig
|
||||
- [ ] Session tracks model_id
|
||||
|
||||
### Session loading
|
||||
- [ ] Named session loads from YAML file
|
||||
- [ ] Loaded session resolves model via Model::retrieve_model
|
||||
- [ ] Loaded session restores role_prompt if role exists
|
||||
- [ ] Auto-named sessions (prefixed `_/`) handled correctly
|
||||
|
||||
### Session saving
|
||||
- [ ] Session saved to correct path
|
||||
- [ ] Session file contains messages, model_id, role info
|
||||
- [ ] save_session flag controls whether session is persisted
|
||||
- [ ] set_save_session_this_time overrides for current turn
|
||||
|
||||
### Session lifecycle
|
||||
- [ ] use_session creates or loads session
|
||||
- [ ] Already in session → error
|
||||
- [ ] exit_session saves and clears
|
||||
- [ ] empty_session clears messages but keeps session active
|
||||
|
||||
### Session carry-over
|
||||
- [ ] New empty session with last_message prompts "incorporate?"
|
||||
- [ ] If accepted, last Q&A added to session
|
||||
- [ ] If declined, session starts fresh
|
||||
- [ ] Only prompts when continuous and output not empty
|
||||
|
||||
### Session compression
|
||||
- [ ] maybe_compress_session returns true when threshold exceeded
|
||||
- [ ] compress_session reduces message count
|
||||
- [ ] Compression message shown to user
|
||||
- [ ] Session usable after compression
|
||||
|
||||
### Session autoname
|
||||
- [ ] maybe_autoname_session returns true for new sessions
|
||||
- [ ] Auto-naming sets session name based on content
|
||||
- [ ] Autoname only triggers once per session
|
||||
|
||||
### Session info
|
||||
- [ ] session_info returns formatted session details
|
||||
- [ ] Shows message count, model, role, tokens
|
||||
|
||||
## Context switching scenarios
|
||||
- [ ] Session → role change: role updated within session
|
||||
- [ ] Session → exit session: messages saved, state cleared
|
||||
- [ ] Agent session → exit: agent session cleanup
|
||||
- [ ] Session with MCP → exit: MCP servers handled
|
||||
|
||||
## Old code reference
|
||||
- `src/config/mod.rs` — `use_session`, `exit_session`, `empty_session`
|
||||
- `src/config/session.rs` — `Session` struct, new, load, save
|
||||
- `src/config/request_context.rs` — `use_session`, `exit_session`
|
||||
Reference in New Issue
Block a user