Explicit macOS surface is lost from recorded actions and replay scripts
维护者通常 1 天内回复
已经有一个关联 PR 被合并了。
- #3217 来自 @janicduplessis —— 已合并
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- node.js, typescript
调研方向
Start from recordActionEntry and the surface field's recorded: false flag in the open-action schema — that is where an explicit --surface is dropped before the journal's open-surface allowlist runs. Then read the .ad open serializer/parser to see how --surface would be emitted and reparsed without collapsing into an app positional. A SessionStore record/event test should assert each enum value (app, frontmost-app, desktop, menubar) survives and that omission stays omitted, plus a round-trip test for saved open scripts and a malformed-input rejection, with existing privacy filtering unchanged. Note that linked PR #3217 already targets this, so the work is under way.
由索引模型根据 Issue 内容生成。
描述
Problem
An explicit macOS surface is lost at the canonical action-recording boundary. On agent-device 0.21.12, open <owned-app-bundle-id> --platform macos --surface app succeeds, but its action.recorded entry contains details.flags: { "platform": "macos" }, with no surface. Consumers cannot distinguish an explicitly app-scoped open from desktop/frontmost-app opens safely.
The same declaration remains in upstream main 2212eacf5be976acc78378a7e65539be5fc81489 and the public npm 0.21.20 tarball: surface has recorded: false, so recordActionEntry removes it before the journal's existing open-surface allowlist. The .ad open serializer/parser also omit it, so recording and replaying a desktop or menubar session changes its target surface.
Required behavior
Preserve a supplied --surface app|frontmost-app|desktop|menubar in canonical actions, projected open events, and .ad open round trips. Keep an omitted surface omitted; do not infer the session's effective surface or broaden free-form event fields.
Completion
An actual SessionStore record/event test preserves each explicit enum value and distinguishes omission. Saved open scripts round-trip the explicit value without turning --surface into an app positional, and malformed surface input is refused. Existing privacy filtering remains intact.
- 主要语言
- TypeScript
- 星标
- 4.9k
- 派生
- 328
- 平均合并
- 11 小时 51 分钟
- 30 天内合并 PR
- 535
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
callstack/agent-device 的其他 Issue
-
settings clear-app-state fails with ENOENT … scandir '(null)' for iOS system apps such as Settings未关闭
难度 2/5 1-3 小时 新手友好度 80/100
callstack/agent-device#3305 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
callstack/agent-device#3296 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
callstack/agent-device#1869 ·
维护者通常 1 天内回复
-
needs-triage refactor
难度 5/5 一周以上 新手友好度 35/100
callstack/agent-device#3311 ·
维护者通常 1 天内回复
-
refactor(provider-webdriver): ship AWS Device Farm as the `@agent-device/aws-device-farm` plugin未关闭needs-triage refactor
难度 4/5 3-5 天 新手友好度 54/100
callstack/agent-device#3310 ·
维护者通常 1 天内回复
查看 callstack/agent-device 的全部 Issue
相似的 Issue
-
[bug] diagnostics.dumpBody:Buffer 形态请求(透传 lane)跳过 dumps/ 落盘,仅留 raw/-unknown-可能已有人在做 @ranxianglei 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 62/100
ranxianglei/billion-context#2421 · 2 条评论 ·
维护者通常 1 天内回复
-
pending triage
难度 2/5 1-3 小时 新手友好度 76/100
nuxt/test-utils#1842 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
MoonshotAI/kimi-code#4146 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
farbenmeer/tapi#531 ·
-
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复