Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2437 commits
Select commit Hold shift + click to select a range
3d8efc1
Merge branch 'fix/mcp-collision-identity' into integrate/approved-prs…
1jehuang Sep 19, 2026
8567dfa
Merge PR #1256: scoped Gemini reliability fixes with reload-safe config
1jehuang Sep 19, 2026
4ff778d
Merge branch 'integrate/pr-1256-reviewed' into integrate/approved-prs…
1jehuang Sep 19, 2026
899b990
ci: classify PR labels with Jev semantic scope (#1305)
1jehuang Sep 19, 2026
22320bc
fix(api): expose side panel snapshots through harness and SDK
1jehuang Sep 19, 2026
c6a2a2d
fix(api): expose side panel snapshots through harness and SDK
1jehuang Sep 19, 2026
10c3391
test(sdk): use EventStream timeout API for side panel routing
1jehuang Sep 19, 2026
343e483
test(sdk): use EventStream timeout API for side panel routing
1jehuang Sep 19, 2026
0818e2e
Merge branch feat/swarm-root-effort into master
1jehuang Sep 19, 2026
1e11ffc
Merge remote-tracking branch 'origin/master' into integrate/approved-…
1jehuang Sep 19, 2026
81f2daa
fix(release): compare against the latest indexed release
1jehuang Sep 19, 2026
169b957
Merge commit '81f2daa79' into integrate/approved-prs-20260919
1jehuang Sep 19, 2026
d0d596d
feat(panel): add desktop panel lifecycle and bounded linked PDF payloads
1jehuang Sep 19, 2026
e6bd75f
fix(panel): negotiate PDF support for native clients
1jehuang Sep 19, 2026
c444a70
Merge remote-tracking branch 'origin/master'
1jehuang Sep 19, 2026
01c8cdf
chore(release): v0.85.0
1jehuang Sep 19, 2026
89d54e6
ci: run Jev labels after completed Greptile reviews (#1308)
1jehuang Sep 19, 2026
6ac6b2e
Merge PR #1193: restore valid workflow environment maps
1jehuang Sep 19, 2026
0f3bc4d
Merge PR #1246: report indeterminate source update checks
1jehuang Sep 19, 2026
16b6bad
Merge PR #1218: scoped September triage fixes
1jehuang Sep 19, 2026
057a0c8
Merge PR #1237: record already-integrated bridge and provider fixes
1jehuang Sep 19, 2026
7d25a56
Merge PR #1276: record already-integrated ambient and badge fixes
1jehuang Sep 19, 2026
3824bf9
ci: fix stale-base evidence in semantic PR labeling (#1311)
1jehuang Sep 19, 2026
9be3689
Merge fix/harness-side-panel: record already-integrated API and SDK f…
1jehuang Sep 19, 2026
38d95c4
feat(memory): add bounded Jev relevance recall engine
1jehuang Sep 19, 2026
da092b1
Add isolated Jev Decisions client and subscription capability gate
1jehuang Sep 19, 2026
f89e438
test(memory): add opt-in synthetic Jev live acceptance gate
1jehuang Sep 19, 2026
e10c0ee
fix(memory): minimize Jev candidate metadata disclosure
1jehuang Sep 19, 2026
e63af4a
Bind pending memory to project and revalidate selected facts before i…
1jehuang Sep 19, 2026
c32f136
Prefer included subscriber Jev over automatic BYOK routing
1jehuang Sep 19, 2026
2e6e423
Replace automatic memory recall with embedding-free Jev decisions
1jehuang Sep 19, 2026
3e9d12d
Use persisted scoped memory in agent deferral test
1jehuang Sep 19, 2026
0ef42d6
Route memory interfaces through Jev and remove embedding startup work
1jehuang Sep 19, 2026
37eaf33
Bind pending recall to exact Jev-selected metadata snapshots
1jehuang Sep 19, 2026
937e013
Document observed Jev memory acceptance and rollout boundaries
1jehuang Sep 19, 2026
7a00fe8
Record successful graceful Jev daemon activation
1jehuang Sep 19, 2026
a874649
Record final whole-result Jev gateway live acceptance
1jehuang Sep 19, 2026
5afd465
fix: skip source update checks without an upstream
1jehuang Sep 19, 2026
28821bd
docs: clarify desktop lives in a separate repository
1jehuang Sep 19, 2026
84805d6
feat(voice): add native Nari streaming and bounded PCM capture
1jehuang Sep 19, 2026
8d59533
fix(voice): clamp final upsample frame to recording limit
1jehuang Sep 19, 2026
781ed2a
Add subscription-aware remote compilation with shared compute credits
1jehuang Sep 19, 2026
0728476
Document remote compute validation and rollout boundaries
1jehuang Sep 19, 2026
0b4eb42
Record batch regressions and bounded Worker runtime validation
1jehuang Sep 19, 2026
58e319b
fix: persist authoritative file-position diffs in edit results
1jehuang Sep 19, 2026
5541e45
fix: distinguish known no-op file diffs from unknown snapshots
1jehuang Sep 19, 2026
eebc499
docs: update weekly stars chart
github-actions[bot] Sep 19, 2026
c923f72
fix(sdk): expose framed assistant messages and final answers
1jehuang Sep 19, 2026
51884da
test(sdk): enforce harness protocol minor version parity
1jehuang Sep 19, 2026
271df5c
fix: retain history snapshot guard across nonblocking fast path (#1284)
1jehuang Sep 19, 2026
9a7be7b
fix(protocol): frame assistant text messages and preserve retry corre…
1jehuang Sep 19, 2026
0b8179f
test: verify assistant text framing through daemon and harness sockets
1jehuang Sep 19, 2026
b487e42
fix(api): retain fragmented daemon frames across request cancellation
1jehuang Sep 19, 2026
6dcf591
test: verify Guy issue fixes through real provider SDK acceptance
1jehuang Sep 19, 2026
5424d87
feat: add bounded Jev voice session intent classification
1jehuang Sep 19, 2026
6fa9c60
fix: resolve explicit newest voice conversation requests
1jehuang Sep 19, 2026
df34e92
fix: serve busy fresh-session history without persisted snapshot (#1284)
1jehuang Sep 19, 2026
465610a
test: repeat fresh-session SDK acceptance after confidence audit
1jehuang Sep 19, 2026
053c9d6
docs: map final whole-result rerun to Guy issue requirements
1jehuang Sep 19, 2026
5101ded
feat(sdk): add owned shared SSH transport for independent clients
1jehuang Sep 19, 2026
c62973a
Reuse authenticated SSH transports across independent SDK clients
1jehuang Sep 19, 2026
0c96a08
feat(tui): add merge-to-main slash command
1jehuang Sep 19, 2026
b23f613
fix(tui): validate combined merge result before reporting success
1jehuang Sep 19, 2026
451fb72
style: apply workspace Rust formatting
1jehuang Sep 19, 2026
50c4533
test(browser): add isolated paired handoff benchmark harness
1jehuang Sep 19, 2026
831171a
feat(browser): default to subscription-first Jev handoff
1jehuang Sep 19, 2026
600b8b5
fix(browser): enable isolated benchmark debug readiness
1jehuang Sep 19, 2026
725f4c5
test(browser): require productive handoff for timing eligibility
1jehuang Sep 19, 2026
48da481
docs(browser): record fresh-session handoff timing and rollout blockers
1jehuang Sep 19, 2026
acde90a
Persist Anthropic cache duration and support /cache extend
1jehuang Sep 19, 2026
db75c80
fix(openai): align cache retention policy with auth routes and curren…
1jehuang Sep 19, 2026
3d18adf
docs(browser): verify handoff on real public documentation sites
1jehuang Sep 19, 2026
7d0a774
Report cache baseline retention separately from saved preference
1jehuang Sep 19, 2026
b266246
docs(browser): audit test counts and pin measured build artifact
1jehuang Sep 19, 2026
f9185a1
fix(tui): snapshot cache retention and label estimates honestly
1jehuang Sep 19, 2026
b3a005e
Avoid cache expiry warnings for estimates and inactive provider routes
1jehuang Sep 19, 2026
8343408
fix(openai): preserve cache write token usage
1jehuang Sep 19, 2026
c0be37c
Price OpenAI cache-write tokens as an input subset
1jehuang Sep 19, 2026
8ef9382
Track per-request cache prompt totals across providers and history
1jehuang Sep 19, 2026
be248c6
Add GitHub Sponsors funding link (#1317)
1jehuang Sep 19, 2026
4973d39
Suppress proactive cache countdowns for estimated retention
1jehuang Sep 19, 2026
4d91642
Fix cache notification regression fixture type inference
1jehuang Sep 19, 2026
73558a0
Expose actual cache expiry notification policy in /cache diagnostics
1jehuang Sep 19, 2026
8225cae
fix(tui): keep drag-to-copy aligned on wrapped rows
zipadoodlez Sep 19, 2026
a62d04d
docs: update weekly stars chart
github-actions[bot] Sep 20, 2026
e5e4285
Remove pinned diff side panel mode
1jehuang Sep 20, 2026
91c0bdd
fix(tui): keep drag-to-copy aligned on wrapped rows
zipadoodlez Sep 19, 2026
79bc8fb
Merge pull request #1319 from zipadoodlez/fix/wrapped-row-copy-map
1jehuang Sep 20, 2026
f28e346
Make Jev browser handoff own multi-step task execution
1jehuang Sep 20, 2026
c5882da
Keep uncertain browser exploration inside Jev handoff
1jehuang Sep 20, 2026
a776881
Trace Jev handoff requirements to final live acceptance evidence
1jehuang Sep 20, 2026
939fb1a
Record post-commit rerun of all mapped handoff checks
1jehuang Sep 20, 2026
97e6a51
Refine Jcode base system prompt
1jehuang Sep 20, 2026
135ca5b
fix: reduce false-positive todo ownership and confidence checks
1jehuang Sep 20, 2026
3d400e8
fix(openai): replay changed persistent input prefixes
1jehuang Sep 20, 2026
1a591ff
feat(tui): show session edit counts and work time in terminal titles
1jehuang Sep 20, 2026
d2dcb61
test(tui): cover wrapped copy content at narrow widths
1jehuang Sep 20, 2026
2483892
docs: refine base agent guidance
1jehuang Sep 20, 2026
2173c7e
test(todo): align schema checks with concise follow-up guidance
1jehuang Sep 20, 2026
b18d0ed
test(browser): expand paired benchmark suite with enforced direct-onl…
1jehuang Sep 20, 2026
5b4f93d
Merge system prompt refinement and upstream master
1jehuang Sep 20, 2026
e589cbe
chore(release): prepare v0.86.0
1jehuang Sep 20, 2026
54df8d1
feat(sdk): add TypeScript session tool controls and callbacks
1jehuang Sep 20, 2026
6f65f5f
fix: preserve proxy tool arguments until stream completion (fixes #1326)
1jehuang Sep 20, 2026
d8b39ab
feat(sdk): enforce session tool policies and owner-scoped callbacks
1jehuang Sep 20, 2026
3b2272a
Clear account-pinned daemon cooldown after OpenAI usage reset
1jehuang Sep 20, 2026
52315ce
Show account-scoped banked reset hint at OpenAI usage exhaustion
1jehuang Sep 20, 2026
baee4a1
Add safe OpenAI banked usage reset client and quota refresh
1jehuang Sep 20, 2026
0448a8d
Suppress local reset availability hint for SSH sessions
1jehuang Sep 20, 2026
1ac3e6a
Fix reset hint test buffer extraction scope
1jehuang Sep 20, 2026
4a2e947
feat(tui): add confirmed banked OpenAI usage reset command
1jehuang Sep 20, 2026
f1b4363
feat(sdk): support persisted per-session system prompt overrides
1jehuang Sep 20, 2026
9158ef0
test: import transfer helper for prompt inheritance coverage
1jehuang Sep 20, 2026
adbf48b
feat(sdk): expose structured abnormal turn stop reasons
1jehuang Sep 20, 2026
8962a20
feat(streaming): expose parallel tool names and keyed input eagerly
1jehuang Sep 20, 2026
46af731
fix(openai): stream interleaved tool calls with stable keyed events
1jehuang Sep 20, 2026
b6375bb
fix(tui): keep interleaved streaming tool inputs keyed by call
1jehuang Sep 20, 2026
f7e17ee
feat(tui): add merge and remote release command
1jehuang Sep 20, 2026
1d83886
fix(cli): accept tool input event metadata in consumers
1jehuang Sep 20, 2026
2a4edaa
docs: update weekly stars chart
github-actions[bot] Sep 21, 2026
5c9c33e
fix(auth): preserve scriptable login JSON through validation
1jehuang Sep 21, 2026
ada84e8
fix(runtime): retain busy turn owner for attached successor
1jehuang Sep 21, 2026
2ede271
Document audited browser handoff timings and current credit blocker
1jehuang Sep 21, 2026
3815e1c
feat(voice): expose real microphone RMS on NariRecording
1jehuang Sep 22, 2026
74f9b75
fix(swarm): accept TLDR summaries above recommended length
1jehuang Sep 22, 2026
4d36cfa
fix(api): invalidate idle snapshots on pre-stream turn activity
1jehuang Sep 22, 2026
10032ba
fix(bash): accept null notification flags as defaults
1jehuang Sep 22, 2026
7684b61
fix(serve): allow credential-free daemon onboarding
1jehuang Sep 22, 2026
9c5aded
Expose read-only usage counts by authentication method
1jehuang Sep 22, 2026
b040ce9
fix(sdk): release OAuth callbacks on retry and surface safe login fai…
1jehuang Sep 22, 2026
ef4c2bd
docs: update weekly stars chart
github-actions[bot] Sep 22, 2026
697038b
feat(voice): classify coding-agent intent and bounded quick actions
1jehuang Sep 22, 2026
856d961
fix(voice): batch Jev questions and expose validated reports
1jehuang Sep 22, 2026
b20c02a
fix(anthropic): bump Claude CLI user agent to 2.1.280
arxdeus Sep 22, 2026
0ba3bb9
docs: explain direct Anthropic API login and model routing
1jehuang Sep 22, 2026
3b61d83
feat(anthropic): support Opus 5.5 mandatory adaptive thinking
1jehuang Sep 22, 2026
ded299f
fix(tui): align model suggestion provider and method columns
1jehuang Sep 22, 2026
43d1779
fix(anthropic): isolate API and OAuth model catalogs and route availa…
1jehuang Sep 22, 2026
1179258
fix(anthropic): refresh auth routes independently and shape Opus 5.5 …
1jehuang Sep 22, 2026
48a947e
test(anthropic): assert independent availability for both picker routes
1jehuang Sep 22, 2026
ce944ab
fix(tui): repair reset review flow and show credit expirations
1jehuang Sep 22, 2026
2b22f62
Merge pull request #1388 from arxdeus/master
1jehuang Sep 22, 2026
24b7045
docs: explain direct Anthropic API login and model routing
1jehuang Sep 22, 2026
750fb60
feat(anthropic): support Opus 5.5 mandatory adaptive thinking
1jehuang Sep 22, 2026
6582741
fix(anthropic): isolate API and OAuth model catalogs and route availa…
1jehuang Sep 22, 2026
de9b5fe
fix(anthropic): refresh auth routes independently and shape Opus 5.5 …
1jehuang Sep 22, 2026
578ea23
test(anthropic): assert independent availability for both picker routes
1jehuang Sep 22, 2026
3aff81f
fix(anthropic): reshape model fallback requests and preserve bound th…
1jehuang Sep 22, 2026
f442094
chore(release): prepare v0.87.0
1jehuang Sep 22, 2026
2ac26c2
fix(tui): keep todo quality gates quiet after final response
1jehuang Sep 22, 2026
774d93b
fix(anthropic): honor scoped OAuth catalog over legacy plan gate
1jehuang Sep 22, 2026
670e092
fix: route voice Jev through Typesafe-backed providers
1jehuang Sep 22, 2026
0c2f188
fix(voice): select highest-scoring concrete intent without thresholds
1jehuang Sep 22, 2026
49b8d4a
Propagate resolved credential on ModelChanged so auth badge updates o…
1jehuang Sep 22, 2026
ec291ff
fix(voice): deduplicate classification policy within bounded requests
1jehuang Sep 22, 2026
88e4c1f
feat(voice): send product vocabulary as Nari recognition context
1jehuang Sep 22, 2026
b207583
feat(voice): report Jev token usage and published Jev/Nari prices
1jehuang Sep 23, 2026
2955240
Expose /save labels in SessionInfo so API clients can search them
1jehuang Sep 23, 2026
e2a088e
Share pretty model names from jcode-provider-core for Desktop
1jehuang Sep 23, 2026
8c0fc61
fix(voice): open mic during Nari handshake so first words are kept
1jehuang Sep 23, 2026
d2a1f30
Persist /save through the daemon so later session writes keep the boo…
1jehuang Sep 23, 2026
1533e8c
Always list saved sessions even past the recency limit
1jehuang Sep 23, 2026
e1576e9
feat(browser): detect the user's browser and support Chrome, Edge, Br…
1jehuang Sep 23, 2026
80eeb56
docs: update weekly stars chart
github-actions[bot] Sep 23, 2026
edcdb10
Route anthropic-api: model specs through the native Anthropic runtime
1jehuang Sep 23, 2026
8c03ce4
Make Claude Opus 5.5 at medium effort the default Anthropic model
1jehuang Sep 23, 2026
a88c36d
Add shared metered_usage_cost_usd helper for per-token spend
1jehuang Sep 23, 2026
b52e5d6
Add streaming_session_ids for cheap daemon-wide running-session polling
1jehuang Sep 23, 2026
4690cff
tui: 2-row minimum composer, quieter right-aligned reversed overscrol…
1jehuang Sep 23, 2026
c64d90d
tui: revert composer to 1-row minimum
1jehuang Sep 23, 2026
ac9398a
tui: compact overscroll context bar, keep dir visible, add git status
1jehuang Sep 23, 2026
e860615
tui: adaptive overscroll status line, pinned on by default
1jehuang Sep 23, 2026
be68f8d
tui: adaptive overscroll status line, pinned on by default
1jehuang Sep 23, 2026
944f747
chore(release): prepare v0.87.1
1jehuang Sep 23, 2026
2690526
base: move external auth review into jcode-base for desktop onboarding
1jehuang Sep 23, 2026
34b54a4
base: read-only recent transcript sampler for Desktop onboarding
1jehuang Sep 23, 2026
1b37d57
app-core: restore multiedit.rs until its mod.rs removal lands
1jehuang Sep 23, 2026
4228505
tools: merge multiedit into atomic edit, add replace, nudge bash edits
1jehuang Sep 23, 2026
ac0b578
app-core: drop orphaned multiedit.rs (merged into edit)
1jehuang Sep 23, 2026
eaa95ac
macos: hide notification helper, drop CLI Spotlight launcher; rustfmt…
1jehuang Sep 23, 2026
2fda4f5
external_auth: expose canonical provider ids on review candidates
1jehuang Sep 23, 2026
567c3da
external_auth: import that never shadows logins Jcode already has
1jehuang Sep 23, 2026
65bd862
Jev voice routing: remove the uncertain outcome, unclear input goes t…
1jehuang Sep 23, 2026
0291517
config: round-trip [desktop.*] tables so CLI saves never wipe Desktop…
1jehuang Sep 23, 2026
71af92d
voice: keep Nari handshake off the mic-readiness path
1jehuang Sep 23, 2026
29127c2
voice: NariRecording starts without blocking on mic or network
1jehuang Sep 23, 2026
ec4319d
style: cargo fmt --all
1jehuang Sep 23, 2026
92743f2
Merge remote-tracking branch 'origin/master'
1jehuang Sep 23, 2026
780e390
voice: correct Jeff to Jev and J code to Jcode in transcripts
1jehuang Sep 23, 2026
5056eba
fix: persist prepared sessions and repair test/clippy drift
1jehuang Sep 23, 2026
ee4cd3d
chore(release): prepare v0.88.0
1jehuang Sep 23, 2026
66948f6
voice: describe Jev in the Nari recognition prompt, doubling exact re…
1jehuang Sep 23, 2026
6666b9b
fix: make clippy -D warnings clean across the workspace
1jehuang Sep 23, 2026
700a493
Add native email code account sign-in to the SDK
1jehuang Sep 23, 2026
0a6e96e
fix: budget MiMo v2.6 models at their 1M context window (fixes #1401)…
1jehuang Sep 23, 2026
3587418
fix: skip skills already imported by an earlier source on first run (…
1jehuang Sep 23, 2026
1eaa5a9
fix(macos): make Jcode Desktop the only Jcode app launcher (#1408)
1jehuang Sep 23, 2026
53098c4
fix: correlate Responses tool events by stable output identity (fixes…
1jehuang Sep 23, 2026
8c33c49
Add Gmail search link for account sign-in emails, including spam
1jehuang Sep 23, 2026
3597682
feat(tui): clear input on first Ctrl+C, quit on second (#1418)
SiavZ Sep 23, 2026
4913d40
cursor: add grok-4.7 and grok-4.6 to fallback model catalog (#1377)
rook-bao Sep 23, 2026
4d1e195
deps: bump tar, cmov, rand and fast-uri past their published advisori…
ianalitis Sep 23, 2026
7031acf
ci(release): publish and announce only from the canonical repository …
ianalitis Sep 23, 2026
acc14b6
ci(freebsd-smoke): declare least-privilege workflow permissions (#1371)
ianalitis Sep 23, 2026
baa2bcf
fix(test): read the jev mock socket in blocking mode (#1355)
ianalitis Sep 23, 2026
c161349
Fix typos in README (#1334)
Londopy Sep 23, 2026
1e20791
fix: keep 1M context for renamed DeepSeek Flash id (#1396)
zipadoodlez Sep 23, 2026
63bc9d9
fix(auto): detect configured OpenAI-compatible profiles (#1385)
zipadoodlez Sep 23, 2026
25ead74
style: cargo fmt after #1385
1jehuang Sep 23, 2026
bc89f48
fix(server): validate model switch against target, not current provid…
zipadoodlez Sep 23, 2026
2ca8a59
fix(test): drop unused test-module imports in jcode-app-core (#1364)
ianalitis Sep 23, 2026
df07e7e
fix(tui): snap tail-follow viewport on resize instead of animating (#…
zipadoodlez Sep 23, 2026
1dcca57
tui: retain the prepared chat frame as the published geometry (#1425)
zipadoodlez Sep 23, 2026
29398b1
fix: strip provider prefix before matching configured default_model (…
asans Sep 23, 2026
d9f5f83
fix(tui): consume focus events and log stream errors in turn loops (#…
KooshaPari Sep 23, 2026
75dd137
feat: add pre-tool input transformers (#1279)
fardjad Sep 23, 2026
4cff1fb
fix(tui): keep the draft when Ctrl+Up jumps into prompt history (#1378)
costajohnt Sep 23, 2026
7ddd98e
Preserve enabled=false when importing Codex MCP servers (#1328)
superbigcup325 Sep 23, 2026
ed8d804
fix(tui): stop the live git probe leaking real repo state into tests …
ianalitis Sep 23, 2026
938e74a
Onboarding replay samples the longest recent session from Jcode, Clau…
1jehuang Sep 23, 2026
1bc6fdd
feat(tui): support embedded and multiple slash commands (#1278)
yansigit Sep 23, 2026
c4c3b62
fix(tui): give drag-edge autoscroll its own step and cadence (#1400)
zipadoodlez Sep 23, 2026
842477f
style: attribute palette overrides by role identity, not color proxim…
zipadoodlez Sep 23, 2026
7680d8b
fix(tui): stop two account tests asserting labels the store never ass…
ianalitis Sep 23, 2026
15a46be
fix(session): prune stale active-pid markers left by the exec reload …
zipadoodlez Sep 23, 2026
f57ccf8
style: cargo fmt after #1419
1jehuang Sep 23, 2026
07ced4b
Add Claude session-limit reset client and banked reset reporting for …
1jehuang Sep 23, 2026
95c276b
fix(macos): gate test-only and unused setup-hints imports
1jehuang Sep 23, 2026
96053d0
test: split synthetic AWS key so the secret-scan preflight passes
1jehuang Sep 23, 2026
6af993e
fix(macos): gate paused_jcode_shell_command to tests
1jehuang Sep 23, 2026
268abfa
deps: bump h2 to 0.4.19 and rustls to 0.23.45 past RUSTSEC-2026-0258/…
1jehuang Sep 23, 2026
080500f
style: satisfy clippy manual_contains in slash command parser
1jehuang Sep 23, 2026
e181af5
feat: add Yolo-Auto provider (#1432)
harryvgiunta Sep 23, 2026
b772d6f
perf: skip full session scan when resuming an unknown generated sessi…
1jehuang Sep 23, 2026
953c25e
fix(jev): retry transient 429/5xx/529 overload on the same route with…
1jehuang Sep 23, 2026
4834a88
style(jev): rustfmt
1jehuang Sep 23, 2026
3e4f093
refactor(providers): remove the Claude Code CLI subprocess transport
1jehuang Sep 23, 2026
c81ed22
refactor(bedrock): resolve aws login profiles via the SDK instead of …
1jehuang Sep 23, 2026
e5122e2
voice_intent: evaluate Jev batches concurrently
1jehuang Sep 23, 2026
7a3479c
harness bridge: stop per-event thread churn and return retained heap
1jehuang Sep 23, 2026
a33bb7e
refactor(grok-build): talk to the Grok CLI chat proxy over HTTPS inst…
1jehuang Sep 23, 2026
27244d3
style(grok-build): collapse nested if in auth retry stream (clippy)
1jehuang Sep 23, 2026
69800d7
perf(jev): hedge voice routing across fresh connections, single Types…
1jehuang Sep 23, 2026
5bedd93
jev: prefer Typesafe direct over OpenRouter in auto routing
1jehuang Sep 24, 2026
b659310
sdk: support per-connection SSH identities and pinned host keys
1jehuang Sep 24, 2026
c1424ea
selfdev: add reload-bridge to safely restart the harness API bridge
1jehuang Sep 24, 2026
b60d666
harness-api: report requested working_dir for unpersisted new sessions
1jehuang Sep 24, 2026
8870f19
bridge: handle --help; bound reload-bridge preflight
1jehuang Sep 24, 2026
7af4fc0
copilot: route responses-only models (grok-4.x etc) to /responses API
MaxMoldmann Sep 24, 2026
f98937a
copilot: add tests for /responses routing and needs_responses_api
MaxMoldmann Sep 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: [1jehuang]
33 changes: 5 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: CI

env:
JCODE_CI: "1"

on:
push:
branches: [main, master]
Expand All @@ -14,6 +11,7 @@ concurrency:
cancel-in-progress: true

env:
JCODE_CI: "1"
CARGO_TERM_COLOR: always
SCCACHE_GHA_ENABLED: "true"

Expand Down Expand Up @@ -42,13 +40,6 @@ jobs:
key: quality-ubuntu
cache-all-crates: "true"

- name: Install system dependencies
# jcode-desktop2 pulls yeslogic-fontconfig-sys, whose build script hard
# fails without fontconfig.pc. Without this the "Enforce desktop2 frame
# budget" step cannot even build, and `cargo check --all-targets
# --all-features` above is affected the same way.
run: sudo apt-get update && sudo apt-get install -y -qq libfontconfig1-dev

- name: Check module declarations resolve
# A `mod x;` with no file makes rustfmt fail with "Error writing files:
# failed to resolve mod", which reads like a formatting problem and hides
Expand Down Expand Up @@ -105,22 +96,6 @@ jobs:
shell: bash
run: python3 scripts/check_wildcard_reexport_budget.py

# Frame-cost gate for desktop2. `build_scene` is a pure function of its
# model and `states::NODES` enumerates the app's visual states, so frame
# cost is something CI can evaluate rather than something a person has to
# notice by using the app and reporting that it feels slow.
#
# The decisive assertion is about work, not time: an unchanged frame must
# not lay the transcript out again. That is exact, so it fires on a
# contended CI runner exactly as it does locally, unlike a wall-clock
# budget which has to carry enough slack to hide real regressions.
#
# Runs on the default profile so it reuses this job's existing build
# artifacts rather than compiling a second dependency tree.
- name: Enforce desktop2 frame budget
shell: bash
run: "cargo test -p jcode-desktop2 profile:: -- --test-threads=1"

- name: Enforce no unused dependencies
shell: bash
run: |
Expand Down Expand Up @@ -392,8 +367,10 @@ jobs:
run: |
./scripts/check_powershell_syntax.ps1

- name: Enforce warning budget (Linux)
if: runner.os == 'Linux'
# Linux and macOS. Windows still has its own cfg-gated surface and is
# not yet warning-clean, so it stays out of the gate (#1177).
- name: Enforce warning budget (Linux, macOS)
if: runner.os == 'Linux' || runner.os == 'macOS'
shell: bash
run: |
scripts/check_warning_budget.sh
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/discord-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ permissions:

jobs:
announce:
# Same rule as `release.yml`: announcing is an outbound side effect, so it
# belongs to the canonical repository. On a fork the webhook secret is
# absent and the step would fail rather than post, but the guard makes that
# independent of whether the fork happens to hold the secret.
if: github.repository == '1jehuang/jcode'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/freebsd-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ on:
# Weekly drift check so FreeBSD breakage is caught even without a push.
- cron: '0 7 * * 1'

permissions:
contents: read

concurrency:
group: freebsd-smoke-${{ github.ref }}
cancel-in-progress: true
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/ios-testflight.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: iOS TestFlight

env:
JCODE_CI: "1"

on:
workflow_dispatch:
push:
Expand All @@ -16,6 +13,7 @@ concurrency:
cancel-in-progress: true

env:
JCODE_CI: "1"
BUNDLE_ID: com.jcode.mobile
SCHEME: JCodeMobile
TEAM_ID: TAS6ARKDN7
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Semantic PR labels
on:
workflow_dispatch:
inputs:
pull-request:
description: Existing open PR number (waits for a completed Greptile review)
required: true
type: string
check_run:
types: [completed]
check_suite:
types: [completed]
permissions:
contents: read
checks: read
pull-requests: write
issues: write
jobs:
label:
if: >-
github.event_name == 'workflow_dispatch' ||
(github.event.check_run.app.id == 867647 &&
github.event.check_run.name == 'Greptile Review') ||
(github.event_name == 'check_suite' && github.event.check_suite.app.id == 867647)
# Apply the trusted-app condition before acquiring a concurrency slot.
# Other apps' checks must never displace a pending Greptile completion.
concurrency:
group: jev-labels-${{ github.repository }}-${{ github.event.check_run.app.id || github.event.check_suite.app.id || 'manual' }}-${{ github.event.check_run.head_sha || github.event.check_suite.head_sha || inputs.pull-request }}
cancel-in-progress: false
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
# Reviewed action code, pinned to an immutable revision.
# No PR checkout or PR-controlled executable code.
- uses: 1jehuang/jev-pr-labeler@267b789247298b06e04fcf3cac01730694c9dcb5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
openrouter-api-key: ${{ secrets.OPENROUTER_API_KEY }}
repository: ${{ github.repository }}
pull-request: ${{ inputs.pull-request }}
check-sha: ${{ github.event.check_run.head_sha || github.event.check_suite.head_sha }}
require-greptile: 'true'
apply: 'true'
8 changes: 8 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ permissions:
jobs:
create-release:
name: Create release
# Publish only from the canonical repository. A fork that runs this
# workflow on a `v*` tag would otherwise create a release carrying that
# upstream version number with binaries built from the fork, which is the
# same class of accidental-publication path as a fork pushing a package.
# Every other job in this workflow needs `create-release`, directly or
# transitively, so gating this one job skips the whole workflow: a skipped
# dependency skips its dependents.
if: github.repository == '1jehuang/jcode'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/windows-smoke.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: Windows Smoke

env:
JCODE_CI: "1"

on:
workflow_dispatch:
inputs:
Expand All @@ -21,6 +18,7 @@ concurrency:
cancel-in-progress: true

env:
JCODE_CI: "1"
CARGO_TERM_COLOR: always
SCCACHE_GHA_ENABLED: "true"

Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ ios_simulator_screenshot.png
target-ttest/
target-ttest*/

# Offscreen frames written by `jcode-desktop2 --capture`. These are review
# artefacts for a single change, not committed baselines.
# Local capture artefacts are not committed baselines.
captures/

# Stray experiment/debug artifacts at the repo root. Real assets live under
Expand Down
2 changes: 1 addition & 1 deletion .jcode/semantic-todo-migration-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,5 +133,5 @@ block persisting.
`cargo test -p jcode-app-core todo`, `cargo test -p jcode-tui todo`,
`cargo check -p jcode-tui -p jcode-telemetry-core`.

Do NOT touch unrelated dirty files (desktop2, render-core, etc). Commit nothing;
Do NOT touch unrelated dirty files. Commit nothing;
the coordinator commits.
22 changes: 17 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
# Repository Guidelines

## Repository Scope

- Jcode Desktop is in a separate repository.

## Development Workflow

- **Stay on your own branch** - Do not take, cherry-pick, merge, or copy code from other
people's or other agents' branches unless the source branch belongs to a repository
maintainer and the user explicitly asks you to integrate it. Only work from your branch
and its base (e.g. `main`) otherwise. Never integrate branches owned by non-maintainers
or other agents yourself; tell the user and let them decide how to proceed.
- **Use the user's Git identity** - Create commits with the configured
`user.name` and `user.email`. Do not override them with `Jcode`, `Jcode agent`,
or a fabricated agent email. Preserve existing contributor attribution when
integrating work. If no identity is configured, ask rather than inventing one.
- **Welcome pull requests from everyone** - Review contributions on their merits,
regardless of whether the author is a maintainer, an existing contributor, a
first-time contributor, or an agent. Good PRs can be merged directly after review
and validation. Do not require a maintainer-authored rewrite merely because of
who submitted the change. See `CONTRIBUTING.md` for the contribution policy.
- **Keep work scoped** - Work on your own branch and preserve unrelated work. When
the user asks you to review or integrate a PR or branch, you may inspect, test,
and integrate that contribution regardless of author status. Do not pull in
unrelated branches or merge a PR without user authorization.

## Install Notes
- `~/.local/bin/jcode` is the launcher symlink used from `PATH`.
Expand Down
8 changes: 8 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Repository Instructions

@AGENTS.md

Follow `AGENTS.md` for the development workflow and `CONTRIBUTING.md` for the
contribution policy. Pull requests from everyone are welcome for direct review
and merging, regardless of contributor or maintainer status. Preserve unrelated
work and obtain user authorization before merging.
20 changes: 10 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,28 @@ Thanks for contributing.

## Issues vs pull requests

If the problem is easy for me to reproduce, please prefer opening a GitHub issue. A clear issue with reproduction steps, expected behavior, actual behavior, logs, screenshots, or traces is usually the fastest path to a fix.
Both issues and pull requests are welcome. Open an issue to report a bug or discuss an idea, or send a focused PR if you have a fix or improvement ready. For large changes, discuss the approach in an issue first to avoid spending time on work that may not fit the project.

Pull requests are more useful when the problem depends on an environment I may not have, such as macOS-specific behavior, Windows-specific behavior, unusual shells, terminal emulators, filesystems, GPU/display setups, provider accounts, or other local configuration. In those cases, a PR can be a useful reference because it captures the behavior in the environment where the problem actually occurs.
A clear issue or PR includes reproduction steps, expected behavior, actual behavior, and relevant logs, screenshots, or traces. Environment-specific fixes are especially helpful when they cover systems the maintainers may not have, such as macOS, Windows, unusual shells, terminal emulators, filesystems, GPU/display setups, or provider accounts.

Every PR must link to an existing GitHub issue in this repository. If there is no issue yet, open one and reference it in the PR description, for example with `Closes #123`.

## Pull request policy

Pull requests are welcome and encouraged.
Pull requests from everyone are welcome and encouraged, including first-time contributors and people who are not maintainers or existing contributors.

That said, most PRs should be treated as proposals or references, not as changes that are likely to be merged directly. This project is developed with heavy use of code generation, and generated code can be deceptively plausible: it may fix the visible problem while introducing subtle correctness, lifecycle, architecture, or maintenance issues.
PRs are reviewed as changes that can be merged directly, not merely as proposals or references for a maintainer-authored rewrite. Review is based on correctness, tests, security, architecture, maintainability, and fit with the project, not the author's contributor status.

Because of that, I will often use PRs to understand the bug, feature request, test case, design direction, or proposed implementation, then write my own version of the change. The submitted code may still be extremely valuable as a reference, reproduction, or proof of concept, even if the final committed code is different.
AI-assisted and generated contributions are welcome and held to the same standards as handwritten code. Understand the changes you submit, explain their assumptions and tradeoffs, and validate them. This applies equally to maintainer and community contributions.

This is not a judgment that maintainer-generated code is inherently better than contributor-generated code. It is a practical ownership rule: if I am going to maintain the resulting code, I need to understand its assumptions, tradeoffs, and failure modes.
Maintainers may request revisions, help refine an implementation, or decline a change that does not fit the project. A rewrite is not required just because a PR comes from an outside contributor.

The best PRs therefore include:
The best PRs include:

- a clear description of the problem being solved
- a minimal reproduction or failing test when possible
- notes about edge cases and tradeoffs
- focused changes that are easy to review independently
- any relevant logs, screenshots, traces, or benchmarks

Large, generated, or highly invasive PRs may be closed even when the underlying idea is good. In those cases, the issue or PR may still be used as a reference for a maintainer-authored change.

Handwritten by author: My clanker slop may or may not be better than your clanker slop. I know how to work with my clanker slop though.
Keep changes focused and split large changes into independently reviewable pieces when possible. Passing checks does not guarantee a merge, but author status or use of code generation is not, by itself, a reason to reject a contribution.
Loading
Loading