Skip to content

a new tui_v3 allow to auto set workspace#700

Open
Lambda-zhou wants to merge 1158 commits into
lsdefine:mainfrom
Lambda-zhou:main
Open

a new tui_v3 allow to auto set workspace#700
Lambda-zhou wants to merge 1158 commits into
lsdefine:mainfrom
Lambda-zhou:main

Conversation

@Lambda-zhou

Copy link
Copy Markdown

auto set current path as workspace

lsdefine and others added 30 commits June 15, 2026 10:01
Annotate config block to guide new GA instances: enumerate candidate
mykey.py variable names and experimentally probe which config works;
only print var/field names, model, apibase host/path, status codes and
error types (never full dict or apikey/token); include a config format
example. Also flag that apibase/endpoint may differ per provider/proxy
at the two request-building sites.
…conflict) (lsdefine#617)

/continue N 默认改为「原地续」:接管原会话日志、后续轮次写回同一文件,取代旧的
镜像复制(supersedes b4356c7 的 mirror 方案),不再每次续接都 fork 新会话、日志增殖。

- 空闲会话 → 直接原地接管;被活进程占用 → 弹窗确认后才复制一份续。
- 每会话出生持锁(temp/model_responses/.locks/<logid>.lock),整进程共用一个心跳
  线程每 5s touch mtime、30s 无心跳判死可接管;atexit 干净释放,崩溃/强杀靠超时兜底。
- 切走/新对话不再「快照+清空」(原 _snapshot_current_log 因 logid≠pid 实为死代码,
  从未生成过快照),旧日志原样留作空闲会话,新对话铸新 logid。
- list_sessions 新增 exclude_log,修正 exclude_pid=getpid 失效导致当前会话出现在
  自己列表里的问题。
- continue_cmd 仅新增函数,reset_conversation/restore/handle 未改动 → 其他前端
  (IM/qt/streamlit 等)行为完全不变。
- 改动仅限 continue_cmd.py + tui_v3.py + tuiapp_v2.py;rewind/worldline 逻辑不在本 PR。
Update WeChat group 21 QR code image.

Co-authored-by: AspasZhang <AspasZhang@users.noreply.github.com>
…ne#621)

In-place /continue retargets agent.log_path to the restored file, so the
reset bind `_bind_workspace(None)` ran during restore was persisting
session_ws_set(path, "") — erasing that session's own workspace mapping to
"" (read back as "explicitly off") before we read it, which also short-
circuited the log-scan fallback. The continued session never re-entered its
workspace.

Add a `persist` flag to `_bind_workspace`; the restore-time reset passes
persist=False so it only refreshes in-memory state. The session→workspace
map is now written solely by explicit /workspace, /workspace off, and a
successful restore.
Trend chart fix:
- SVG had preserveAspectRatio="none" which stretched the viewBox 600x260
  non-uniformly to the container (max-width 760 x height 280), making text
  ~15% wider than tall ("扁").
- Switch to preserveAspectRatio="xMidYMid meet" so text renders at correct
  aspect, and replace fixed container height with aspect-ratio:600/260 +
  min-height:280px so chart fills naturally without distortion.

Color theme cleanup (user-requested):
- Drop 8-color mac-style palette, keep only a single gray light theme.
- --accent now hard-coded gray (#8e8e93); removed --swatch-2..8 and all
  html[data-theme="N"] / .swatch[data-theme="N"] CSS rules.
- Remove the entire "颜色" (set.theme) block from settings page.
- applyTheme() stubbed: still callable for backward compat with stored
  ga_theme values, but always normalizes to theme '1'.
- Drop set.theme i18n entries (zh + en).

Cache busters: styles.css 136→137, app.js 181→182.
Sidebar:
- 快速接入官方模型 header restyled to match 配置 button (foot-row style:
  transparent bg, padding, hover state, lightning icon on left,
  caretRight chevron on right that rotates 90deg when expanded).
- Drop the "填好 API Key 即可使用" subtitle for single-line consistency.
- Drop the "展开/折叠" tooltip on the head.
- Bump both .pq-head and .foot-row padding to 14px so the buttons look
  substantial.
- Set .sidebar-foot margin-top:6px to match .provider-quickstart's internal
  gap:6px — uniform 6px rhythm between pq-head→DeepSeek→Qwen→配置.

Services page:
- Remove the "IM 消息通道与后台进程,集中查看、启停与日志" subtitle.
- Align .svc-tabs margin with .tok-tabs (margin:10px 0 0) so the title
  position and tab bar position match the Token usage page.

Token page (i18n):
- zh: "Conductor" → "指挥家" on tab label, total/current row labels,
  tooltip, and the new tok.condOffline string (replaces hard-coded text).
- en remains "Conductor" (English UI keeps the English name).

Token table column widths:
- Switch to table-layout:fixed. Number columns 80px each, cache-rate 85px.
- First column (session name) gets the rest of the width; overflow truncates
  with ellipsis. JS adds title="<full name>" so hover shows the complete
  session title as a tooltip. No more column-width jitter when switching
  Chat/指挥家 tabs.

Color tweaks (no hardcoded values):
- .pq-btn background var(--bg-base) → var(--field-bg) (lighter).
- .model-guide border var(--accent) → var(--line-base); background
  var(--accent-bg) → var(--field-bg) (lighter, neutral).
# Conflicts:
#	desktop_release/TODO.md
#	desktop_release/apps/linux/README.md
#	desktop_release/scripts/linux/install_linux.sh
- Consolidate font stack: remove GA Lexend/Noto Sans, use system sans (SF Pro/Segoe UI)
- Reduce CSS font variables from 6 to 3 (--font-sans, --font-mono, --font-brand)
- Converge font-weights to match reference spec (700→600 headings, 600→500 labels)
- Add explicit font-family to pre/code blocks
- Compact nav-item: 28px height, 8px padding, 16px icons
- Remove 'token' from all UI copy, simplify to 'Usage'/'用量'
- Add cache-buster to fonts.css link
…sdefine#614)

On macOS the screenshot path lacked a counterpart to win32's
ClientToScreen. Detecting a target inside a cropped GrabScreen(bbox)
image and feeding the in-image (px,py) straight to Click silently
mis-clicks because the crop-origin offset is dropped.

- add CropToScreen(bbox, x, y): in-crop coords -> absolute physical
  coords (pure crop-origin add, no scaling)
- GrabScreen docstring: warn about the crop-origin trap and not to
  hand-roll screencapture -R (it takes logical points)
- Click 0%-pixel-change warning now names the common causes
- ljqCtrl_sop.md: add macOS subsection mirroring the win32 trap note
Co-authored-by: octo-patch <octo-patch@github.com>
feat: typography alignment with system font baseline
…+ refresh icon

The previous collab page showed a wide banner with the long offline message
plus a "重试" chip button across the top, which looked clunky. Move both
into the existing page-top status bar:

- Drop .collab-offline and .collab-reconnect <div> banners entirely
  (HTML, CSS rules, and JS show/hide logic).
- Wrap .run-state and a new .collab-retry-btn in a .page-top-center flex
  container (grid-column:2 of the page-top grid).
- Topbar text replaces "未连接" with the new collab.offlineShort string
  ("无法连接 Conductor(8900)" / "Cannot reach Conductor (8900)") via
  collabStatus.set(longer, 'offline').
- The retry button is a 24×24 button styled like .new-conv (var(--line-soft)
  bg + 1px border + 4px radius, hover var(--hover-2)), holding a 14×14
  inline SVG refresh-cw icon. Hidden by default, shown only when offline
  AND no auto-reconnect is in progress.
- setConnUi simplified to just toggle the retry icon's [hidden] attribute.
- Existing click handler on #collab-retry preserved (id unchanged).
- 提升弱文字对比度(--muted/--muted2),侧边栏选中态改深色+text-shadow假加粗(消除抖动)
- 统一 Token 统计重置按钮与日期框高度
- 会话项'更多'按钮放大并调深颜色
- 自定义任务卡: 主图标改用户图标,标题/描述截断(…)+tooltip
- 新增'编辑任务'功能(铅笔按钮->预填弹窗->更新预设)
- 修复字数上限告警: 改每字段独立提示(消除串扰),只提醒不提截断,
  2.5s自动消失,超限尝试才触发,JS管控长度修复中文IME下不再触发的问题
lsdefine and others added 29 commits July 12, 2026 15:09
…OP); ga.py: file_patch/file_write 保持原文件换行符, 修复LF文件被污染成CRLF; _arg 类型强转修复字符串false等
Add maxlen_multiplier derived from context_win (capped 3x); drives per-tool
truncation caps and history compression interval. WebScan uses half-increment
growth to avoid saturating its 35000 base. Docs updated for the new coupling.
Hard-delete path can preserve the first K history messages, insert a "..." gap, and strip dangling tool_use at the cut. Default 0 keeps previous behavior.
Ignore assets/glm52_instruction.txt and assets/gpt55_instruction.txt
so local customizations stay out of the repo.
…#681)

The agent's default cwd is the temp/ subdirectory, where git resolves
'-- <file>' pathspecs relative to cwd. Fed the root-relative paths that
'git diff --name-only' prints, 'git checkout upstream/main -- <file>'
fails with "pathspec did not match", breaking the working-tree
reconcile steps of /update. The prompt now tells the agent to run every
git command from the repo root (_ROOT), in both EN and ZH.

Co-authored-by: Shen Hao <shenhao-stu@users.noreply.github.com>
…sdefine#673)

When OS revokes master stdout, bare print() raises BrokenPipeError and aborts WS handle before tab registration, causing stale web_scan data and extension reconnect loops. Mirror ga.py safe_print across TMWebDriver log sites.

Closes lsdefine#672
Merge desktop fork updates into upstream main
c921bad tightened blank-turn detection by stripping <thinking>/<summary>
and treating meta-only replies as empty. That is too aggressive for the
main agent loop (summary-only / thinking-only turns get forced retries).
Keep desktop_bridge behavior; only revert ga.py core path.
fix(desktop): restore permissive empty-turn handling
Replace the README community QR with the current WeChat experience group image (wechat_group22.jpg) following the existing numbering convention.
Use pid+nanos for user_prompt temp filename to avoid same-second collisions under concurrent --func / run_subagents.

Fixes lsdefine#665
- Optional helper hook when available; warn reopen if used

- Sidebar cleanup: drop auto_start, tighten hr CSS
- Probe optional helper availability; show button only if present

- Bridge route for optional helper; i18n + cache bump

- llmcore: maxlen_multiplier factor 0.85->0.75
auto set current path as workspace
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.