Skip to content

阶段 5 F1 后续调整:预览并入详情、方向控制符、截断计数、token 先存后抹(DEVLOG [33]) - #34

Merged
Smilewithoutfalling merged 14 commits into
masterfrom
f1.1
Oct 15, 2026
Merged

Smilewithoutfalling merged 14 commits into
masterfrom
f1.1

Conversation

@Smilewithoutfalling

Copy link
Copy Markdown
Owner

F1(#33)评审的后续调整,不是新功能。全部改动都对应评审提出的调整项,不夹带重构。基线是 master 7f0cdcd。

评审项 → 改动

  1. 预览重复整表读取:detect_encoding 要读完整个文件,所以没改成只读前 N 行;改成把预览并入 GET /datasets/{id}?rows=N,删掉 /preview,POST /datasets 的响应直接带预览,前端只发一个请求,每个文件只读一遍。详情改为直接用 table_paths 逐表读(表名和排序跟分析路径一致:B.csv + a.csv 是 [B, a]),每张表单独 try,一张读坏不影响其他表;单表表名沿用 df。
  2. 会话改名不更新 updated_at:db.py 加注释;左栏写明"按最近分析时间排序";补测试,确认改名不动 updated_at。
  3. 预览清理方向控制符:新增 _BIDI_CONTROLS(含 LRM/RLM);_CONTROL_CHARS 的字符集不变;预览只清方向控制符,并给出 bidi_stripped 计数。
  4. 截断标记:增加 truncated_cells 计数,在提示行写明。
  5. rows 错误码:Query(None, ge=1, le=100),越界和非整数都返回 422。
  6. token 存储顺序:先 try setItem,再抹地址栏;存失败时 token 只留在内存,页面不会白屏。
  7. DEVLOG [32] 的 SHA 回填 7f0cdcd。

多表概览从 summary 行移到 tab 标签上,跟 summary 来自同一次读取的同一个 DataFrame,数字口径一致。

不在本 PR

  • F2 的 cancel(CAS + finally CAS + done_seen)、SSE 等,留到 F2。
  • read_csv_with_encoding 读取时 bytes、str、DataFrame 三份同时在内存,已记入 DEVLOG 未做项。

验证

pytest 597 passed;vitest 21;Playwright 6;lint、tsc、build 通过。

@Smilewithoutfalling
Smilewithoutfalling merged commit cccddd5 into master Oct 15, 2026
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