v1.3.0: Bedrock translator refactor, usage metrics, session restore fixes, and predefined rules
Major changes: - **Bedrock translator architecture**: Extract orchestration logic from `impl.rs` into a dedicated `translator.rs` module. Rename `convert_request.rs` → `request_translator.rs` and `stream.rs` → `response_translator.rs` for clarity. Remove `tool_docs.rs` (inlined). Remove `fallback_to_warp` setting and server fallback path — Bedrock is now the sole backend. - **Unknown tool handling**: The response translator now detects hallucinated/unknown tool calls from the model and synthesizes error tool_results so the conversation doesn't deadlock waiting for a result that will never come. - **Usage display overhaul**: Replace credit-based usage display with detailed token metrics showing context window %, cache hit rate (read/write/miss), and estimated cost in dollars. Add `total_input_tokens`, `total_cache_read_tokens`, `total_cache_write_tokens`, and `cache_miss_tokens` accessors to `AIConversation`. - **Predefined rules system**: Add `predefined_rules.rs` with 11 system-defined behavioral rules that are auto-seeded on first launch. Add "Add Predefined Rules" button to the Rules UI for re-adding them later. Track seeding state via `has_seeded_predefined_rules` setting. - **Session restore improvements**: Rename database file from `warp.sqlite` to `galaxy.sqlite` with automatic migration from both same-directory and state_dir legacy paths. Improve CWD persistence by falling back to `session_startup_path` for agent-mode and fresh tabs. Add extensive session-save/restore logging. - **Shell bootstrap rebrand**: Rename `WARP_INITIAL_WORKING_DIR` environment variable to `GALAXY_INITIAL_WORKING_DIR` across bash, zsh, and fish bootstrap scripts. - **Model defaults**: Change default Bedrock model from Opus 4.7 to Opus 4.6. Add `context_window_for_model()` helper with model-aware context sizes. Remove `is_bedrock_model()` (no longer needed without server fallback). - **User query persistence**: The response translator now emits a `UserQuery` proto message at stream start so the user's prompt persists across sessions for conversation titles. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
ec99146ccc
commit
eaa2ddc75e
@@ -808,7 +808,7 @@ fn build_docker_sandbox_command(
|
||||
let sentinel_value = "57265949261";
|
||||
builder.env("HISTFILESIZE", sentinel_value);
|
||||
builder.env("GALAXY_INITIAL_HISTFILESIZE", sentinel_value);
|
||||
// Intentionally do NOT set `WARP_INITIAL_WORKING_DIR` for sandboxes:
|
||||
// Intentionally do NOT set `GALAXY_INITIAL_WORKING_DIR` for sandboxes:
|
||||
// the container's init script cds into the sandbox home dir, not
|
||||
// the host's startup dir.
|
||||
|
||||
|
||||
@@ -5636,8 +5636,6 @@ impl TerminalView {
|
||||
let estimated_cost_cents: f32 = token_usage_list.iter().map(|u| u.cost_in_cents).sum();
|
||||
|
||||
let conversation_usage_info = ConversationUsageInfo {
|
||||
credits_spent: conversation.credits_spent(),
|
||||
credits_spent_for_last_block: conversation.credits_spent_for_last_block(),
|
||||
tool_calls: tool_usage.total_tool_calls(),
|
||||
models: conversation.token_usage().to_vec(),
|
||||
context_window_usage: conversation.context_window_usage(),
|
||||
@@ -6536,11 +6534,22 @@ impl TerminalView {
|
||||
.and_then(|data| data.maybe_convert_absolute_path(cwd))
|
||||
})
|
||||
})
|
||||
// Checking if the pwd from the active session actually exists
|
||||
// and if not (ie. directory was removed) - return None.
|
||||
.filter(|path| path.is_dir())
|
||||
// Fall back to the shell's startup directory when no block CWD
|
||||
// is available (e.g. agent mode sessions or freshly opened tabs).
|
||||
.or_else(|| {
|
||||
self.model
|
||||
.lock()
|
||||
.session_startup_path()
|
||||
.filter(|path| path.is_dir())
|
||||
})
|
||||
} else {
|
||||
None
|
||||
// For non-local sessions (viewers, transcript viewers), still try
|
||||
// the startup path so we can persist where the pane was opened.
|
||||
self.model
|
||||
.lock()
|
||||
.session_startup_path()
|
||||
.filter(|path| path.is_dir())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user