Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
d3e8148
refactor(base): remove layering inversion - foundation no longer depe…
1jehuang Jun 5, 2026
ee4f19a
refactor(app-core): drop 11 dead jcode-tui-* dependency edges
1jehuang Jun 5, 2026
08846ba
fix(release): embed git metadata in Linux compat build so /changelog …
1jehuang Jun 6, 2026
b77cfba
Merge arch/base-layering-fix: remove base->tui layering inversion
1jehuang Jun 6, 2026
240a7f0
refactor(auth): single source of truth for Claude/OpenAI OAuth-vs-API…
1jehuang Jun 6, 2026
058e5a8
fix(reasoning): make 'current' mode ephemeral and in-place
1jehuang Jun 6, 2026
ba8bd7d
bench: verify Anthropic fast-mode granted tier + retry on 429
1jehuang Jun 6, 2026
4d8c06d
refactor(server): extract FileTouchService for file-touch tracking
1jehuang Jun 5, 2026
7dfac91
test(server): migrate file-touch tests to FileTouchService
1jehuang Jun 5, 2026
b228263
refactor(tui): group token accounting fields into TokenAccounting
1jehuang Jun 5, 2026
abe7b31
refactor(tui): group KV cache fields into KvCacheState
1jehuang Jun 5, 2026
9504867
refactor(tui): group streaming/turn progress fields into StreamingPro…
1jehuang Jun 5, 2026
521dc06
refactor(tui): group cost + cached pricing fields into CostState
1jehuang Jun 5, 2026
a03f17b
refactor(tui): move workspace_client process-global into App-owned state
1jehuang Jun 5, 2026
4f0ae5b
fix(tui): apply field renames to cache-write cost test from merge
1jehuang Jun 5, 2026
88f9351
docs(tui): TuiState decomposition plan + section the 114-method trait
1jehuang Jun 5, 2026
6c6dae1
bench: exercise Anthropic fast mode on direct API-key path
1jehuang Jun 6, 2026
f3d6b40
Add compile-time isolation probes
1jehuang Jun 6, 2026
05c71a3
Move build support out of base crate
1jehuang Jun 6, 2026
29044d5
Remove unused notify email dep from base
1jehuang Jun 6, 2026
6661686
Prune unused base crate dependencies
1jehuang Jun 6, 2026
a3da59c
Clarify compile isolation dependency reporting
1jehuang Jun 6, 2026
7fb55f1
refactor(tui): move memory tile rendering to render crate
1jehuang Jun 6, 2026
21bbb2e
refactor(tui): isolate visual debug support crate
1jehuang Jun 6, 2026
a6564b7
refactor(tui): move account picker overlay into leaf crate
1jehuang Jun 6, 2026
05ef269
refactor(tui): isolate usage overlay crate
1jehuang Jun 6, 2026
26e83ad
refactor(tui): make mermaid facade explicit
1jehuang Jun 6, 2026
e453afe
refactor(app-core): make build facade explicit
1jehuang Jun 6, 2026
7f59057
refactor(app-core): make ambient facades explicit
1jehuang Jun 6, 2026
26cf544
refactor(provider): isolate env credential helpers
1jehuang Jun 6, 2026
c989047
refactor(provider): move fingerprint helper into provider core
1jehuang Jun 6, 2026
de3f9db
refactor(provider): isolate bedrock provider crate
1jehuang Jun 6, 2026
b2004f7
refactor(app-core): prune stale aws sdk deps
1jehuang Jun 6, 2026
62cd567
refactor(app-core): prune stale provider deps
1jehuang Jun 6, 2026
a79fd53
tui: never auto-onboard self-dev/canary sessions
1jehuang Jun 6, 2026
55369dc
fix(openai): don't drop response.completed frames that mention websoc…
1jehuang Jun 6, 2026
d50becc
tui: add OSC 52 clipboard fallback for SSH/Docker (#327)
1jehuang Jun 6, 2026
8356469
perf(onboarding): cache external-CLI continuation-prompt scan
1jehuang Jun 6, 2026
184341f
refactor(provider): move OpenAI stream parser to leaf crate
1jehuang Jun 6, 2026
4428678
fix(reload): repair stale shared-server on update no-op, preserve sel…
1jehuang Jun 6, 2026
4f220e2
test(tui): cover reasoning-delta thinking status in status line
1jehuang Jun 6, 2026
f759ea7
refactor(provider): cfg-gate OpenAI websocket test exports
1jehuang Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 79 additions & 54 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ members = [
"crates/jcode-azure-auth",
"crates/jcode-notify-email",
"crates/jcode-provider-metadata",
"crates/jcode-provider-env",
"crates/jcode-provider-core",
"crates/jcode-provider-bedrock",
"crates/jcode-provider-openrouter",
"crates/jcode-provider-openai",
"crates/jcode-provider-gemini",
Expand All @@ -55,6 +57,7 @@ members = [
"crates/jcode-tui-account-picker",
"crates/jcode-tui-anim",
"crates/jcode-tui-render",
"crates/jcode-tui-visual-debug",
"crates/jcode-tui-session-picker",
"crates/jcode-tui-style",
"crates/jcode-tui-tool-display",
Expand Down
25 changes: 3 additions & 22 deletions crates/jcode-app-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -69,29 +69,17 @@ hex = "0.4"
url = "2"
open = "5" # Open URLs in browser
jcode-auth-types = { path = "../jcode-auth-types" }
jcode-azure-auth = { path = "../jcode-azure-auth" }
jcode-agent-runtime = { path = "../jcode-agent-runtime" }
jcode-ambient-types = { path = "../jcode-ambient-types" }
jcode-notify-email = { path = "../jcode-notify-email" }
jcode-provider-metadata = { path = "../jcode-provider-metadata" }
jcode-provider-core = { path = "../jcode-provider-core" }
jcode-provider-openai = { path = "../jcode-provider-openai" }
jcode-provider-openrouter = { path = "../jcode-provider-openrouter" }
jcode-provider-gemini = { path = "../jcode-provider-gemini" }
jcode-tui-markdown = { path = "../jcode-tui-markdown" }
jcode-tui-messages = { path = "../jcode-tui-messages" }
jcode-tui-core = { path = "../jcode-tui-core" }
jcode-tui-mermaid = { path = "../jcode-tui-mermaid" }
jcode-tui-account-picker = { path = "../jcode-tui-account-picker" }
jcode-tui-render = { path = "../jcode-tui-render" }
jcode-tui-session-picker = { path = "../jcode-tui-session-picker", features = ["serde"] }
jcode-tui-style = { path = "../jcode-tui-style" }
jcode-tui-tool-display = { path = "../jcode-tui-tool-display" }
jcode-tui-usage-overlay = { path = "../jcode-tui-usage-overlay" }
# NOTE: jcode-app-core does NOT depend on any jcode-tui-* crate. They were
# unused dead dependency edges here (the TUI declares them itself). Removing
# them stops a jcode-tui-* edit from cascading a recompile through app-core.
jcode-update-core = { path = "../jcode-update-core" }
jcode-terminal-launch = { path = "../jcode-terminal-launch" }
jcode-terminal-image = { path = "../jcode-terminal-image" }
jcode-tui-workspace = { path = "../jcode-tui-workspace" }
jcode-usage-types = { path = "../jcode-usage-types" }

# Streaming
Expand Down Expand Up @@ -141,13 +129,6 @@ tar = "0.4"
tempfile = "3"
agentgrep = { git = "https://github.com/1jehuang/agentgrep.git", tag = "v0.1.2" }
qrcode = { version = "0.14.1", default-features = false }
aws-config = "1.8.16"
aws-credential-types = "1.2.14"
aws-sdk-bedrockruntime = "1.130.0"
aws-types = "1.3.15"
aws-smithy-types = "1.4.7"
aws-sdk-bedrock = "1.141.0"
aws-sdk-sts = "1.103.0"

[features]
default = ["pdf", "embeddings"]
Expand Down
4 changes: 1 addition & 3 deletions crates/jcode-app-core/src/agent/provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,7 @@ impl Agent {
/// the provider distinguishes OAuth (subscription) from API key (cost).
/// Resolved authoritatively here so remote clients can render billing/usage
/// without re-deriving it from the provider name.
pub fn active_resolved_credential(
&self,
) -> Option<jcode_provider_core::ResolvedCredential> {
pub fn active_resolved_credential(&self) -> Option<jcode_provider_core::ResolvedCredential> {
self.provider.active_resolved_credential()
}

Expand Down
8 changes: 5 additions & 3 deletions crates/jcode-app-core/src/agent/turn_execution.rs
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,8 @@ impl Agent {
fn apply_selfdev_tool_surface(tools: &mut [ToolDefinition], is_canary: bool) {
for tool in tools.iter_mut() {
if tool.name == "selfdev" {
tool.description = crate::tool::selfdev::SelfDevTool::description_for(is_canary)
.to_string();
tool.description =
crate::tool::selfdev::SelfDevTool::description_for(is_canary).to_string();
tool.input_schema = crate::tool::selfdev::SelfDevTool::schema_for(is_canary);
}
}
Expand Down Expand Up @@ -401,7 +401,9 @@ impl Agent {
vec![ContentBlock::ToolUse {
id: tool_call_id,
name: tool_name,
input, thought_signature: None, }],
input,
thought_signature: None,
}],
);
self.session.save()?;
Ok(message_id)
Expand Down
Loading