Skip to content

polish(desktop): track high-impact native-experience improvements #2084

Closed

Description

@Colafornia
English

Context

Maka Desktop is in an experience-polish phase. The goal of this pass is to improve high-frequency desktop behavior that users can notice during daily work, not to make the current Electron application indistinguishable from a fully native application.

This tracking issue records the findings, product decisions, delivery slices, and completion boundary for that pass. Each accepted slice remains independently reviewable and revertible.

Audit source and interpretation

The findings originated from an audit against yetone/native-feel-skill, primarily its native-conventions and ship-readiness checks.

The upstream skill describes the architecture and conventions required for a cross-platform application whose native feel is itself a hard product requirement. Maka's current objective is narrower. The skill is therefore used as a discovery and review tool, not as a requirement to implement every checklist item.

Each finding is classified using the following product rule:

Decision Meaning
Adopt now Clear user-visible or operational benefit with bounded implementation cost
Validate first Measure the problem or prove the workflow before implementing it
Defer A valid convention gap without enough current product value
Reject for this pass Outside the current Electron experience-polish boundary

When this issue is filed, record the audited native-feel-skill commit or release here so the decision can be reproduced if the upstream checklist changes:

  • Audited source revision: 9bd88c6
  • Maka revision: 31f1262
  • Audit date: 2026-08-04

Current evidence

Audit disposition

Finding Disposition Reason / revisit condition
Native application menu and platform commands Adopt now High-frequency platform behavior with bounded scope; deliver as a dedicated child issue/PR
Programmatic scroll consistency Adopt now Small renderer change; keep user-driven scrolling unchanged
Startup-to-composer latency Stop after validation #2176 found no clear wall-clock improvement. Do not add a release benchmark job now. Revisit if users report slower startup.
Production crash diagnostics Defer Revisit after potential compliance requirements have been evaluated
File associations Validate first Revisit when a concrete Finder/Explorer file-opening workflow is demonstrated
Rich clipboard formats Validate first Revisit when a concrete Notion/editor workflow is demonstrated
Separate Settings window Defer Revisit when users need to compare Settings with the main window during configuration
System accent color Defer Revisit if Maka adopts OS-level visual personalization
URL schemes Defer Revisit when a concrete deep-link workflow exists
Login Item Defer Revisit when launch-at-login is requested or required by a validated workflow
Native AppKit/WinUI host-shell rewrite Reject for this pass This pass polishes the existing Electron product; it does not change the desktop architecture

Deferred findings remain recorded only in this tracking issue. Do not create child issues for them until their revisit condition is met.

Order of work

P0 — Review the startup baseline

Decision: Complete with no new benchmark job.

  • Review the startup measurements from refactor(desktop): enforce a metadata-free renderer startup boundary #2176.
  • Record the result: cold startup stayed near 1.05 seconds and the change was within normal run-to-run noise.
  • Do not add a release benchmark job without a limit and a regular review process.
  • Revisit if users report slower startup or a maintainer needs a stable release metric.

P1 — Restore the native application-menu surface

  • File and link a dedicated issue for the native application menu and platform command routing: fix(desktop): restore the native application menu and unify platform command routing #2088.
  • Restore standard App, Edit, Window, and Help behavior using Electron native roles where available.
  • Preserve the existing Settings and New Task behavior without duplicate dispatch from menu accelerators and renderer keydown handlers.
  • Keep Reload and DevTools development-only.
  • Verify the supported packaged macOS build, including no-window, pre-reveal, focused-editor, minimized, hidden, and closed-window states.

Child issue/PR: #2088 / #2098

P2 — Converge programmatic scroll behavior

  • Audit the remaining explicit and fallback smooth call sites against their real caller paths.
  • Make programmatic navigation use the agreed behavior and preserve reduced-motion and deterministic E2E behavior.
  • Do not change touchpad inertia, scrollbar dragging, wheel scrolling, or other user-driven scrolling.
  • Prefer deleting or replacing a literal over adding another motion abstraction.

Child issue/PR: #2680

P3 — Establish actionable crash diagnostics

Decision: Deferred.

P3 is deferred pending evaluation of potential compliance requirements. Maka will retain existing local logs only. Automatic crash reporting and dedicated diagnostics export are out of scope for now and may be reconsidered later.

Child issue/PR: Deferred — no implementation issue/PR.

Invariants

  • Preserve the current Electron architecture and shared React UI.
  • Preserve the current Settings surface; this pass does not create a second Settings window.
  • Do not use globalShortcut for commands that should work only while Maka is active.
  • Do not create a second implementation of New Task, Settings, reduced-motion policy, or startup readiness.
  • Do not enable crash uploads without an explicit privacy decision.
  • Keep each implementation slice independently reviewable and revertible.
  • Prefer behavior tests and real-window checks over new source-regex-only contracts.

Out of scope

Completion

Close this tracking issue when:

  • every adopted slice links to a merged PR or has an explicit, recorded decision to defer;
  • the available startup evidence and the decision to stop are attached here;
  • the crash-reporting boundary is documented, even if production upload is consciously deferred;
  • accepted changes have proportional behavior or real-window verification;
  • no remaining unchecked item is required for this experience-polish pass.

References

简体中文

背景

Maka Desktop 当前处于体验打磨期。本轮目标是改善用户在日常使用中能够感知的高频桌面行为,而不是让现有 Electron 应用达到“无法与纯原生应用区分”的程度。

这个 tracking issue 记录本轮审计发现、产品取舍、交付切片和关闭边界。每个被采纳的切片都应能够独立 review、独立合并和独立回滚。

审计来源与解释方式

这些发现来自对 yetone/native-feel-skill 的审计,主要参考其中的 native conventions 和 ship-readiness checks。

上游 skill 面向“原生体验本身就是硬性产品要求”的跨平台应用。Maka 当前目标更窄,因此该 skill 用于发现问题和辅助 review,不代表其中每个检查项都必须落地。

每个发现按以下产品规则分类:

决策 含义
立即采纳 用户可感知或运营收益明确,且实现成本有界
先验证 先测量问题或证明工作流,再决定是否实现
延期 缺口真实存在,但当前产品收益不足
本轮拒绝 超出当前 Electron 体验打磨边界

创建 issue 时,在这里记录实际审计使用的 native-feel-skill commit 或 release,避免上游规则变化后无法复现当时的判断:

  • 审计来源版本:9bd88c6
  • Maka 版本:31f1262
  • 审计日期:2026-08-04

当前证据

审计决策

发现 处理结论 原因 / 重新评估条件
原生应用菜单和平台命令 立即采纳 高频平台行为,范围有界;使用独立 child issue/PR 交付
程序化滚动一致性 立即采纳 Renderer 小改动;不改变用户主动滚动
启动到 composer 可输入耗时 验证后停止 #2176 没有发现明确的整体启动提速。现在不增加 release benchmark job。用户反馈启动变慢时再评估。
Production crash diagnostics 延期 潜在合规要求完成评估后重新考虑
文件类型关联 先验证 出现明确的 Finder/Explorer 文件打开工作流时重新评估
富文本剪贴板 先验证 出现明确的 Notion/editor 工作流时重新评估
Settings 独立窗口 延期 用户需要在配置时对照 Settings 和主窗口时重新评估
系统强调色 延期 Maka 开始采用操作系统级视觉个性化时重新评估
URL scheme 延期 出现明确的 deep-link 工作流时重新评估
Login Item 延期 用户提出开机启动需求,或经验证的工作流需要它时重新评估
AppKit/WinUI 原生壳重写 本轮拒绝 本轮打磨现有 Electron 产品,不调整桌面架构

延期项只在本 tracking issue 中保留记录。在满足重新评估条件前,不为它们创建 child issue。

执行顺序

P0 — 检查启动基线

决定:完成,不新增 benchmark job。

P1 — 恢复原生 application menu

  • 创建并链接原生应用菜单和平台命令路由的独立 issue:fix(desktop): restore the native application menu and unify platform command routing #2088。
  • 在 Electron 提供标准 role 的位置,恢复 App、Edit、Window 和 Help 行为。
  • 保留现有 Settings 和 New Task 行为,避免 menu accelerator 与 renderer keydown 重复触发。
  • Reload 和 DevTools 只在开发环境提供。
  • 在受支持的 packaged macOS 构建中验证无窗口、首帧 reveal 前、编辑控件聚焦、最小化、隐藏和窗口关闭状态。

子 issue/PR:#2088 / #2098

P2 — 收敛程序化滚动行为

  • 按真实调用路径审计剩余显式和 fallback 的 smooth 调用点。
  • 让程序化导航遵守确认后的行为,同时保留 reduced-motion 和确定性 E2E 行为。
  • 不改变触控板惯性、拖动滚动条、滚轮或其他用户主动滚动。
  • 优先删除或替换 literal,不为此新增另一层 motion abstraction。

子 issue/PR:#2680

P3 — 建立可执行的崩溃诊断

决策:延期。

考虑到潜在的合规要求仍需进一步评估,P3 暂缓。Maka 目前仅保留现有本地日志,暂不实现自动崩溃上报及专用诊断导出功能,后续可按需重新评估。

子 issue/PR:延期——不创建实施 issue/PR。

不变约束

  • 保留现有 Electron 架构和共享 React UI。
  • 保留当前 Settings surface;本轮不创建第二个 Settings window。
  • 只应在 Maka 激活时工作的命令不使用 globalShortcut。
  • 不重复实现 New Task、Settings、reduced-motion policy 或 startup readiness。
  • 没有明确隐私决策时不启用 crash upload。
  • 每个实现切片都必须能够独立 review 和回滚。
  • 优先使用行为测试和 real-window 验证,不新增只检查源码文本的 contract test。

不在范围内

完成条件

满足以下条件后关闭本 tracking issue:

  • 每个已采纳切片都链接到 merged PR,或有明确记录的延期决定;
  • 已附上现有启动数据和停止决定;
  • 已记录 crash-reporting 支持边界,即使最终有意识地延期 production upload;
  • 已采纳改动具有与风险相称的行为测试或 real-window 验证;
  • 没有仍属于本轮体验打磨必需项的未完成 checkbox。

关联

Activity

  1. Colafornia commented on Aug 6, 2026

    @Colafornia
    MemberAuthor

    P1 packaged macOS verification completed successfully on 2026-08-06.

    The application-menu state matrix passed without issues, including normal, no-window, pre-reveal, focused-editor, minimized, hidden, and closed-window states. New Task and Settings dispatch once, standard Edit/application roles work, production hides Reload/DevTools, and quit behavior is functional.

    Implementation: #2098.

  2. Colafornia commented on Aug 20, 2026

    @Colafornia
    MemberAuthor

    This tracking issue can close.

    We will not add a release benchmark job now. It would use another runner and create an artifact, but there is no limit to check and no regular review process. Revisit this if users report slower startup or a maintainer needs a stable release metric.

    Posted with Codex assistance.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions