Skip to content

Fix/desktop private url hot reload - #1093

Merged
xiaomakuaiz merged 22 commits into
chaitin:mainfrom
xiaomakuaiz:fix/desktop-private-url-hot-reload
Aug 17, 2026
Merged

Fix/desktop private url hot reload#1093
xiaomakuaiz merged 22 commits into
chaitin:mainfrom
xiaomakuaiz:fix/desktop-private-url-hot-reload

Conversation

@xiaomakuaiz

Copy link
Copy Markdown
Collaborator

No description provided.

Account page redesign: MonkeyCode is the single account concept, and the
logged-out view is a login page with an edition switcher on top. Picking
an official edition applies instantly (silent config save, no save-bar
flash); self-hosted gets inline fields with an apply button. Sign-in
methods follow the edition: CN offers WeChat/SMS (Baizhi OAuth) plus
password, intl/self-hosted are password-only. Baizhi Cloud demotes to an
optional models/MCP sync service (hidden on intl). Resolve the intl
cloud llmproxy to proxy.monkeycode-ai.net/v1.
- save_config/engine_restart: apply the cloud service snapshot before the
  engine restart, so a failed restart no longer strands the shell on the
  old private-service address; the auto-recovery paths re-apply from disk
  and heal any split state left by earlier failures
- telemetry: serialize load->report->save across tick/mark_used (cursor
  stomps double-counted installs; first run could persist two install ids)
- driver reader: skip non-UTF-8 stdout lines instead of treating them as
  EOF, and kill before wait in crash cleanup so a live process can no
  longer hang the reader thread and disable auto-restart
- sessions: delete waits for the in-flight resume, then takes the busy
  re-check + created/engine_id snapshot + map removal in one lock (ghost
  sidecar resurrection via resume or via the send error path, orphan
  engine sessions, resume watch entries leaking); compact's busy guard is
  atomic with its set and closing frames land before the busy flag
  clears; catch_up/cold-repair re-validate idleness before materializing
  so a concurrent turn is never double-materialized or force-closed
- browser: contentEditable clear uses ownerDocument (same-origin iframes
  silently kept old text); snapshot keeps the cross-origin-iframe hint
  unless every subsession was actually collected
- baizhi: file download gets a cancel-aware 1s tick plus a 120s idle
  timeout (half-open TCP used to hang forever with cancel dead); PoW
  challenge params are bounded — this also defines Challenge::valid()
  already referenced by mod.rs since 4957f83, repairing that build
- wsl: output drain window 200ms->5s with an explicit error instead of
  silently treating output as empty
- repo: C-unquote porcelain paths; the " -> " split only applies to R/C
- pet: reset drag state on WM_CAPTURECHANGED (try_lock against reentrant
  delivery) with a GetCapture precondition in WM_MOUSEMOVE
- ChatView: the outline jump chain is session-scoped — retry/flash timers
  are cleared on session switch and the ensureLoaded continuation aborts
  once the session changed, so a stale chain can no longer hijack the new
  session's viewport on a colliding seq; the near-top auto-load is
  exempt while pinned to bottom (entering a short session used to trip
  it via the programmatic align scroll, stealing the follow flag so
  streaming output silently stopped following)
- CloudTaskList: invalidating group caches now refetches the groups that
  are still expanded (stop/reloadKey used to leave them blank with no
  rows, spinner, or empty hint until a manual collapse/expand), and the
  open set is read through a ref so stale closures frozen into the
  context menu cannot drop a group expanded while the stop was in flight
- App: the window title effect depends on locale — the native title used
  to stay in the previous language after switching until some other
  dependency happened to change
- terminal: termBytes tolerates bad base64 and returns empty bytes,
  matching parseTermFrame's dirty-frame contract; one bad data frame used
  to throw through the listen dispatch chain into the full-screen
  startup-error trap
Switching edition means switching accounts, so the picker lives only on
the login page; signed-in users disconnect first. Bottom-align the
credits/check-in/invite row, and clamp long sync-result messages to two
lines (full text on hover).
One three-way service list for both signed-in and signed-out states:
the active row expands (login methods when signed out — CN gets
WeChat/SMS/password tabs in the row header; usage tiles for quota,
credits and invites when signed in), inactive rows show their sign-in
method or a switch-to button. Switching never keeps the old session:
it reuses the disconnect flow (revoke -> logout -> clear member models)
before applying the new edition. Baizhi Cloud moves into an "other
accounts" card.
Keep only the primary accent bar; a full-block tint drowned the login
form in a wash of color.
With a live Baizhi session and MonkeyCode disconnected, the connect
button appeared with no context; add the one line that says it reuses
the current Baizhi account, with password login below for switching.
The connected service row and the Baizhi row now render their hosts as
external links (bare hosts from status get https:// prepended), matching
the inactive rows' domain links.
2xs(10, new @theme token) / xs(12) / body=sm(14) / lg(18). Replace all
arbitrary text-[10px]/text-[11px] values with tokens and fold the two
stray text-base uses into the lg tier; document the scale next to the
body font-size rule. Markdown and terminal keep their own relative
domains.
menu-sm rendered rows at 12px with tightened padding, drifting from the
documented geometry (item padding 12px, rows 14px vs 12px group labels).
Default menu restores the intended hierarchy.
Keep the quiet treatment (muted, medium weight, 12px icon); only the
text size joins the body tier now that rows render at 14px.
Four tiers (90/100/110/125%) applied via Tauri webview setZoom — the
VS Code/Discord page-zoom mechanism, so text, icons, controls, columns
and the terminal scale in lockstep. Instant-apply preference channel
(localStorage, applied before first frame); browser mode falls back to
root CSS zoom. Adds the set-webview-zoom capability for the main window.
@xiaomakuaiz
xiaomakuaiz merged commit f330f3f into chaitin:main Aug 17, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant