@qt4798/pi-web 0.9.16-beta.1 → 0.9.17-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/required-server-files.js +1 -1
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/api/sessions/[id]/auto-name/route.js +3 -3
  25. package/.next/server/app/index.html +1 -1
  26. package/.next/server/app/index.rsc +3 -3
  27. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  28. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  29. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/page.js +4 -4
  33. package/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app-paths-manifest.json +6 -6
  35. package/.next/server/chunks/440.js +1 -1
  36. package/.next/server/chunks/7915.js +1 -1
  37. package/.next/server/middleware-build-manifest.js +1 -1
  38. package/.next/server/pages/404.html +1 -1
  39. package/.next/server/pages/500.html +1 -1
  40. package/.next/static/chunks/app/page-7fa160a50338d6b7.js +22 -0
  41. package/.next/trace +8 -179
  42. package/.next/trace-build +1 -1
  43. package/README.en.md +7 -0
  44. package/README.md +9 -2
  45. package/package.json +1 -1
  46. package/.next/static/chunks/app/page-3a71956f793d87f7.js +0 -22
  47. /package/.next/static/{bQwfA6rX4NaYbsubUoY4b → dLdGlazBwRqCib28ilzT0}/_buildManifest.js +0 -0
  48. /package/.next/static/{bQwfA6rX4NaYbsubUoY4b → dLdGlazBwRqCib28ilzT0}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":172866432,"timestamp":335221983487,"id":14,"parentId":1,"tags":{},"startTime":1786009242424,"traceId":"f023333afd52580b"},{"name":"run-typescript","duration":30560128,"timestamp":335394881107,"id":18171,"parentId":1,"tags":{},"startTime":1786009415316,"traceId":"f023333afd52580b"},{"name":"static-check","duration":6988584,"timestamp":335425598169,"id":18174,"parentId":1,"tags":{},"startTime":1786009446033,"traceId":"f023333afd52580b"},{"name":"static-generation","duration":8465399,"timestamp":335433971074,"id":18320,"parentId":1,"tags":{},"startTime":1786009454405,"traceId":"f023333afd52580b"},{"name":"collect-build-traces","duration":80404112,"timestamp":335432593642,"id":18317,"parentId":1,"tags":{},"startTime":1786009453028,"traceId":"f023333afd52580b"},{"name":"telemetry-flush","duration":33,"timestamp":335513014345,"id":18329,"parentId":1,"tags":{},"startTime":1786009533446,"traceId":"f023333afd52580b"},{"name":"next-build","duration":291291364,"timestamp":335221723026,"id":1,"tags":{"buildMode":"default","version":"16.2.12","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1786009242164,"traceId":"f023333afd52580b"}]
1
+ [{"name":"run-webpack","duration":33076860,"timestamp":338145833029,"id":14,"parentId":1,"tags":{},"startTime":1786012165606,"traceId":"93938e70089a0830"},{"name":"run-typescript","duration":5505452,"timestamp":338178911267,"id":883,"parentId":1,"tags":{},"startTime":1786012198682,"traceId":"93938e70089a0830"},{"name":"static-check","duration":1217383,"timestamp":338184428492,"id":886,"parentId":1,"tags":{},"startTime":1786012204199,"traceId":"93938e70089a0830"},{"name":"static-generation","duration":1622781,"timestamp":338185967891,"id":1032,"parentId":1,"tags":{},"startTime":1786012205738,"traceId":"93938e70089a0830"},{"name":"collect-build-traces","duration":14356217,"timestamp":338185647191,"id":1029,"parentId":1,"tags":{},"startTime":1786012205418,"traceId":"93938e70089a0830"},{"name":"telemetry-flush","duration":12,"timestamp":338200014926,"id":1041,"parentId":1,"tags":{},"startTime":1786012219784,"traceId":"93938e70089a0830"},{"name":"next-build","duration":54466965,"timestamp":338145547975,"id":1,"tags":{"buildMode":"default","version":"16.2.12","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1786012165321,"traceId":"93938e70089a0830"}]
package/README.en.md CHANGED
@@ -65,6 +65,13 @@ The board's own **Task settings** button configures per-project execution (separ
65
65
  - The engine is a single server process (exclusive lock); interrupted tasks are recovered on restart (marked failed/interrupted, retryable).
66
66
  - Beta: desktop only; the mobile UI does not show the board.
67
67
 
68
+ ## Latest changes (2026-08-06 · v0.9.17-beta.1)
69
+
70
+ - **Fix 500 when generating titles for imported sessions** — auto-naming Reasonix-imported sessions no longer fails with `Cannot read properties of undefined (reading 'length')`. The import converter could emit text blocks missing the `text` field; both the importer and the title pipeline now handle this, including previously imported files.
71
+ - **Faster title generation** — very long sessions (thousands of tool messages) now use only the most recent portion of the conversation, avoiding timeouts; falls back to the full transcript when the tail has no user message.
72
+ - **Batch title generation** — a new "Generate titles" button in the session list header names all sessions in the current project in parallel with live progress, then refreshes automatically.
73
+ - **Parallel title generation after import** — the import-complete "generate titles" action now runs concurrently instead of serially with 500ms pauses; individual failures are skipped without affecting the rest.
74
+
68
75
  ## Latest changes (2026-08-05)
69
76
 
70
77
  - **Task board (Beta, desktop)** — a new title-bar button toggles a four-column kanban (Todo / In progress / Attention / Done) that runs each task as an agent in its own git worktree branch: drag-to-start, detail drawer (timeline / diff / changed files), review & merge, return with feedback, archive, task templates, per-project task settings (concurrency / merge strategy / preflight / init command / stage prompts), system notifications, and full i18n + theme support. Tasks are stored under `~/.pi/agent/tasks/` (JSONL).
package/README.md CHANGED
@@ -28,7 +28,7 @@
28
28
  | --- | --- |
29
29
  | 实时对话 | 通过 SSE 显示 Pi Agent 的流式输出、工具调用、思考过程与错误状态。 |
30
30
  | 会话管理 | 按项目查看会话,支持会话内分支、Fork、重命名、删除、AI 自动生成标题与 HTML 导出。 |
31
- | 会话导入 | 从 Reasonix 等工具导入历史对话记录,自动发现项目与会话,支持合并或新建项目。 |
31
+ | 会话导入 | 从 Reasonix 等工具导入历史对话记录,自动发现项目与会话,支持合并或新建项目;导入后可选批量并行生成标题。 |
32
32
  | 项目与文件 | 通过目录选择器加载项目,浏览文件、Diff、图片、音频、PDF、DOCX。 |
33
33
  | 模型与认证 | 在网页中管理模型、OAuth/API Key、连通性测试和默认模型;支持从供应商自动获取模型列表与 models.dev 定价预设一键填入。 |
34
34
  | 备份恢复 | 一键导出/导入核心配置、技能、插件、MCP 服务器与会话(可选含密钥),跨平台自动适配路径与命令。 |
@@ -87,7 +87,14 @@
87
87
  - 引擎由服务器进程持有(单实例锁),重启后自动恢复中断的任务(标记为失败/中断,可重试)。
88
88
  - Beta 阶段:仅在桌面端显示入口;移动端不可用。
89
89
 
90
- ## 最新更新(2026-08-06 · v0.9.16-beta.1)
90
+ ## 最新更新(2026-08-06 · v0.9.17-beta.1)
91
+
92
+ - **修复导入会话生成标题 500**:Reasonix 导入的会话自动生成标题时不再报 `Cannot read properties of undefined (reading 'length')`。根因是导入转换产生缺失 `text` 字段的消息块,已在导入与标题生成两条链路同时修复,历史坏文件也兼容。
93
+ - **标题生成提速**:超长会话(上千条工具消息)只取最近一段上下文生成标题,不再容易超时;尾部无用户消息时自动回退全量。
94
+ - **批量生成项目标题**:会话列表顶部新增「生成标题」批量按钮,一键为当前项目所有会话并行生成标题,带进度显示,完成后自动刷新。
95
+ - **导入标题生成并行化**:导入完成页的标题生成改为并发并行(原串行 + 500ms 间隔),单条失败自动跳过。
96
+
97
+ ## 历史更新(2026-08-06 · v0.9.16-beta.1)
91
98
 
92
99
  - **代理配置**:设置弹窗新增「代理」标签页,支持 HTTP / HTTPS / SOCKS5 代理,主机端口与用户名密码分开填写、密码脱敏;可测试连通性;保存后运行时热生效无需重启。适用于外部代理与本地代理(Clash / V2Ray 等)。
93
100
  - **计划模式**:输入框左下角加号升级为三选项菜单(常规 / 计划 / 上传文件)。计划模式切到只读工具集并自动注入「只读分析、输出实现计划」指令,输入框显示「计划模式」徽章;计划完成后弹出确认框,可确认执行、提出建议继续完善、或退出计划模式。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qt4798/pi-web",
3
- "version": "0.9.16-beta.1",
3
+ "version": "0.9.17-beta.1",
4
4
  "description": "Web workspace for the pi coding agent",
5
5
  "homepage": "https://github.com/t479842598/pi-web-QT#readme",
6
6
  "repository": {