Skip to content

feat(desktop): add Work Board Phase 3 start-task spike - #4598

Open
somewan820 wants to merge 10 commits into
apache:mainfrom
somewan820:feat/work-board-phase3-start-task
Open

feat(desktop): add Work Board Phase 3 start-task spike#4598
somewan820 wants to merge 10 commits into
apache:mainfrom
somewan820:feat/work-board-phase3-start-task

Conversation

@somewan820

Copy link
Copy Markdown
Contributor

Summary

Implements the thin Work Board Phase 3 validation spike for #2560.

  • Adds a default-off Start task path for project-scoped Work Board items whose target resolves to one available, non-archived Host/project target.
  • Reuses the existing New Task and Composer first-send flow; the draft contains the item title and optional notes.
  • Persists an idempotent Host-scoped linkedSessions reference only after a projected first-send outcome.
  • Navigates linked items through the existing Desktop Session identity path.
  • Keeps Inbox target selection, execution-state projection, automatic completion, model-visible tools, turn-tail injection, result refs, prioritization, and board redesign out of scope.
  • Clears pending Work Board claims on refused, failed, cancelled, or unknown first-send outcomes so retries are not permanently blocked.

The experiment is enabled only in a development renderer with:

VITE_MAKA_WORK_BOARD_START_TASK=1

This is intentionally not a persisted user setting. The goal is maintainer/contributor dogfooding before deciding whether to productize the entry and continue later Work Board phases.

Verification

  • npm test: 1580 passed, 12 skipped; runtime-host and other relevant suites passed.
  • npm --workspace @maka/desktop run build:main: passed.
  • Focused first-send cleanup tests: 16 passed.
  • Renderer TypeScript check: passed.
  • Biome lint: passed.
  • git diff --check: passed.

The storage workspace test run remains affected by the existing sandbox EPERM chmod restriction under ~/Library/Application Support/Maka / ~/Library/Caches/Maka; this is environmental and unrelated to the changed Work Board behavior.

Generated-by: Codex

AI use

Codex assisted with implementation, review, and test execution. The contributor reviewed the resulting changes and owns the final PR.

首发送结果未知时不再触发 onSessionResolved,避免误建 Work Board 持久链接;将 Work Board 编排迁入 workbar 功能,app-shell 仅通过 props 注入;workbar 控制器改用 toastApi 输入以通过主进程 tsconfig 编译;重新生成 renderer-architecture.json。
taskEntryDraftKey 的消费者均从 model/task-entry-selection.js 直接导入,feature index 的 re-export 无外部使用,knip 报未使用导出,删除之。
- work-board-target: 移除未使用的 preferredHost 参数
- use-workbar-controller: 删除 resolveWorkBoardStartTask 包装,透传底层解析
- work-board-panel: 每行只解析一次 start-task 目标
- use-task-entry-controller: 移除 prepareWorkBoardDraft 中的重复查找与校验
- IPC linkSession 增加 scope 校验,仅允许 project 项(防御纵深)
- core 解码改为宽容模式:丢弃损坏/重复的链接条目,不再隐藏整条记录
- 补充 ambiguous/archived/scope 校验与宽容解码测试
- 修复 ipc-main 测试缩进,操作行支持换行不溢出
rebase 冲突归并时误将 app-shell-chat-actions.ts 整体回退到 apache#4630 之前的版本,
重新引入了既有会话发送也会触发 onSessionResolved 的回归。恢复为上游 main 的
实现:onSessionResolved 仅在新建会话首次消息投射时触发,Work Board 链接只绑定
到已投射的新会话。
@somewan820
somewan820 force-pushed the feat/work-board-phase3-start-task branch from be39b1b to 4a5f222 Compare September 3, 2026 16:09
@github-actions github-actions Bot added effort/XL Under 2500 readable lines and removed effort/L Under 1000 readable lines labels Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/XL Under 2500 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant