Skip to content

product(desktop): capture deferred work in a project-aware Work Board #2560

Description

@liugddx

English

Parent roadmap: #2469
Related architecture: #2290

Problem

Useful follow-up work is frequently discovered while an Agent is executing a different task:

  • a bug is noticed but should not interrupt the current objective;
  • a refactor or product idea deserves to be preserved for later;
  • a side conversation identifies a concrete action item;
  • the user wants to remember work without starting another Session immediately.

Today this context usually remains buried in conversation history, is copied into an external tracker, or distracts the active task. Maka lacks a lightweight bridge between “we noticed this” and “start an auditable Agent task later.”

Product direction

Add a local-first Work Board that can hold deferred work in either:

  • a project-scoped board; or
  • a global, unassigned Inbox.

A board item is a user-owned work intention, not an Agent execution claim. It may originate from a main conversation, a side conversation, or manual entry. Later, the user can start it as a normal Maka task/Session while preserving its source context.

The intended loop is:

conversation or side chat
  -> capture deferred work
  -> project board / global Inbox
  -> start as a new task
  -> Session execution
  -> link result and evidence back to the item

Important boundary

Do not overload the Session Task Ledger from #2290.

  • Session Task Ledger: the model-owned, bounded execution plan inside one Session.
  • Work Board: user-owned, cross-Session deferred work and task entry points.

A board item may launch and link to a Session, but it must not be injected into every model turn or silently become part of the active plan. Runtime execution state remains authoritative in existing Session/AgentRun/TaskRun facts.

Proposed v1 experience

Board scopes

  • Inbox: project-independent ideas and unclassified work.
  • Current project: work associated with the selected Maka project.
  • Items can be moved between Inbox and projects.

Minimal states

  • Inbox
  • Todo
  • In progress
  • Done

“Waiting”, “blocked”, and “recoverable” should come from a linked active Session projection rather than being manually invented board states.

Capture paths

  1. Manual “Add item” from the board.
  2. From a main-conversation message or selection.
  3. From side chat, for example: “Do not handle this now; add it to the current project todo.”
  4. The Agent may propose a board item, but creation requires an explicit user action or unambiguous user instruction. No silent backlog generation.

Start-task path

  • “Start task” creates a normal Maka Session in the selected project/workspace.
  • The initial task context contains a concise item summary and typed source references, not a blind dump of the full conversation.
  • The board item links to the Session and reflects its projected execution state.
  • Completing or failing a Session does not automatically falsify user intent; the item presents the linked outcome and lets the user confirm completion or reopen it.

Provenance and review

Each captured item should preserve, when available:

  • source Session id;
  • source message/side-conversation reference;
  • project id or global scope;
  • creator (user or Agent suggestion confirmed by user);
  • linked execution Session(s);
  • result references such as changed files, validation, artifacts, or PRs when later available.

Delivery plan

Phase 0 — contract and authority

  • Define the minimal BoardItem contract and lifecycle.
  • Decide the local persistence owner and mutation boundary.
  • Define typed provenance references and project/global scope.
  • Specify how linked Session status is projected without copying Runtime state.
  • Add exhaustive contract and migration tests.

Phase 1 — capture and list MVP

  • Add a compact Work Board surface in the existing task/workbar area; do not introduce a new top-level module.
  • Support global Inbox and current-project filtering.
  • Support manual create, rename, move, complete/reopen, and archive.
  • Preserve source references for conversation-originated items.
  • Cover empty, loading, error, and offline/local persistence states.

Phase 2 — side-conversation capture

  • Add an explicit “Add to Work Board” action to side conversations.
  • Parse destination only from explicit intent: current project, named project, or Inbox.
  • Show a confirmation containing title and destination before/after mutation.
  • Keep the active task unchanged.
  • Add a real behavior test proving capture does not submit or alter the active Session plan.

Phase 3 — start as task

  • Add “Start task” from a board item.
  • Create a new Session with the correct project/workspace and concise source context.
  • Link the new Session back to the board item.
  • Project running/waiting/blocked/recoverable/completed state from existing authorities.
  • Add a first-success journey: capture in side chat -> open board -> start task -> finish -> review linked result.

Phase 4 — evidence and refinement

  • Link completion evidence and deliverables from the Completion Packet work in roadmap(product): evolve Maka into a durable Agent workspace #2469.
  • Add lightweight prioritization and ordering only after the core loop is validated.
  • Evaluate whether a column board is useful; begin with a compact list if it better fits the existing workbar.

Acceptance criteria

  • A user can capture deferred work without interrupting the active task.
  • An item can belong to a project or the global Inbox.
  • Side-chat capture preserves a source reference and never silently creates items.
  • Capturing an item does not mutate the active Session Task Ledger.
  • A board item can start a new normal Maka Session in the correct workspace.
  • Linked execution status is projected from existing Runtime authorities, not copied into a second execution-state authority.
  • Completion can link to evidence/results and can be reopened by the user.
  • Desktop behavior has a real capture-to-completion journey test.
  • Local data survives restart and has a safe migration/backup story.

Non-goals

  • Building a full replacement for Linear, GitHub Projects, or Jira.
  • Team collaboration, cloud sync, assignees, sprints, estimates, or roadmaps in v1.
  • Replacing the Session Task Ledger, Plan mode, Automations, or Agent Graph.
  • Automatically turning every Agent suggestion into backlog noise.
  • Treating manually moved columns as authoritative Runtime execution state.

简体中文

中文

父级路线:#2469
相关架构:#2290

问题

Agent 执行一个任务时,经常会发现值得后续处理、但不应该打断当前目标的工作:

  • 发现一个 bug,但本次任务不急着修;
  • 想到一个重构或产品想法,希望以后再做;
  • 侧边栏对话整理出了明确行动项;
  • 用户希望先记住问题,而不是立即启动新 Session。

目前这些内容通常埋在历史对话里、被复制到外部工具,或者干扰当前任务。Maka 缺少一座从“发现问题”通往“以后启动一个可审计 Agent 任务”的轻量桥梁。

产品方向

增加一个本地优先的 Work Board / 工作看板,支持:

  • 归属于某个项目;
  • 或进入不归属项目的全局 Inbox。

看板事项代表用户拥有的工作意图,不是 Agent 对执行状态的声明。它可以来自主对话、侧边栏对话或手工录入,之后再启动为普通 Maka 任务/Session,并保留来源上下文。

目标闭环:

主对话或侧边栏
  -> 捕获暂缓事项
  -> 项目看板 / 全局 Inbox
  -> 启动为新任务
  -> Session 执行
  -> 将结果和证据关联回事项

重要边界

不要复用或扩张 #2290 的 Session Task Ledger:

  • Session Task Ledger:模型在单个 Session 内维护的、受预算限制的执行计划。
  • Work Board:用户拥有的、跨 Session 的暂缓事项和任务入口。

看板事项可以启动并关联 Session,但不能被注入每轮模型上下文,也不能静默进入当前执行计划。实际运行状态继续由现有 Session、AgentRun、TaskRun 权威事实决定。

v1 体验建议

范围

  • Inbox:与项目无关或尚未分类的事项。
  • 当前项目:归属于所选 Maka 项目的事项。
  • 事项可以在 Inbox 和项目之间移动。

最小状态

  • Inbox
  • Todo / 待处理
  • In progress / 进行中
  • Done / 完成

“等待、阻塞、可恢复”等状态应从关联 Session 投影,而不是再造一套手工看板状态。

捕获入口

  1. 在看板中手工添加。
  2. 从主对话消息或选中文本创建。
  3. 从侧边栏对话创建,例如:“这个问题本次先不处理,加入当前项目待办。”
  4. Agent 可以建议加入,但只有用户明确操作或明确指令后才能创建,不能静默堆积事项。

启动任务

  • “开始任务”在对应项目/工作区创建普通 Maka Session。
  • 初始上下文只包含简洁事项摘要和强类型来源引用,不盲目灌入整段历史对话。
  • 看板事项关联该 Session,并展示其投影状态。
  • Session 完成或失败不应自动篡改用户意图;事项显示关联结果,由用户确认完成或重新打开。

来源与复核

每个事项应尽可能保存:

  • 来源 Session id;
  • 来源消息或侧边栏对话引用;
  • 项目 id 或全局范围;
  • 创建者(用户,或经用户确认的 Agent 建议);
  • 关联执行 Session;
  • 后续产生的文件变更、验证、Artifact、PR 等结果引用。

交付计划

Phase 0 — 契约与权威

  • 定义最小 BoardItem 契约和生命周期。
  • 决定本地持久化所有者与写入边界。
  • 定义强类型来源引用和项目/全局范围。
  • 定义如何投影关联 Session 状态,避免复制 Runtime 状态。
  • 增加完整契约和迁移测试。

Phase 1 — 捕获与列表 MVP

  • 在现有 task/workbar 区域增加紧凑 Work Board,不新增顶级模块。
  • 支持全局 Inbox 与当前项目筛选。
  • 支持手工新增、改名、移动、完成/重开和归档。
  • 对来自对话的事项保存来源引用。
  • 覆盖空、加载、错误和本地离线持久化状态。

Phase 2 — 侧边栏对话捕获

  • 在侧边栏对话增加明确的“加入工作看板”操作。
  • 只根据明确意图决定当前项目、指定项目或 Inbox。
  • 写入前后展示标题和目标位置确认。
  • 不改变当前任务。
  • 增加真实行为测试,证明捕获不会提交消息或修改当前 Session 计划。

Phase 3 — 启动为任务

  • 为看板事项提供“开始任务”。
  • 在正确项目/工作区创建新 Session,并注入简洁来源上下文。
  • 将新 Session 关联回看板事项。
  • 从现有权威投影运行、等待、阻塞、可恢复和完成状态。
  • 增加首次成功旅程:侧边栏捕获 -> 打开看板 -> 启动任务 -> 完成 -> 查看关联结果。

Phase 4 — 证据与体验完善

验收标准

  • 用户可以记录暂缓工作,不打断当前任务。
  • 事项可以属于某个项目,也可以进入全局 Inbox。
  • 侧边栏捕获保留来源引用,且不会静默创建事项。
  • 捕获事项不会修改当前 Session Task Ledger。
  • 看板事项可以在正确工作区启动为普通 Maka Session。
  • 关联执行状态来自现有 Runtime 权威投影,不复制成第二套执行状态。
  • 完成事项可以关联结果/证据,也可以由用户重新打开。
  • Desktop 有覆盖捕获到完成闭环的真实旅程测试。
  • 本地数据重启后仍存在,并具有安全迁移与备份方案。

非目标

  • 构建 Linear、GitHub Projects 或 Jira 的完整替代品。
  • v1 不做团队协作、云同步、负责人、Sprint、估时或 Roadmap。
  • 不替代 Session Task Ledger、Plan mode、Automation 或 Agent Graph。
  • 不把 Agent 每个建议自动变成待办噪音。
  • 不把手工移动的列当成 Runtime 执行状态权威。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions