feat(settings): support preferred text size / Dynamic Type
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 68/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- ios, typescript
调研方向
Start at the existing agent-device settings command conventions and the iOS Simulator handling path; trace active-session, --device, and --udid selection plus the structured API/MCP response path. Add read and set behavior for the listed categories, validation, unsupported-target handling, help, documentation, and tests covering parsing, selection, success, invalid input, and unsupported targets.
由索引模型根据 Issue 内容生成。
描述
Problem
agent-device settings does not expose the preferred text-size / Dynamic Type category. This makes accessibility and layout QA less reproducible: an agent can observe unexpectedly large text, but it cannot inspect or restore the simulator's content-size category through the agent-device command surface.
Observed with agent-device 0.21.0 on an iOS simulator. The current workaround is to leave agent-device and call CoreSimulator directly:
xcrun simctl ui <udid> content_size
xcrun simctl ui <udid> content_size large
Driving the Settings app is possible, but it is slower and depends on localized labels and slider coordinates.
Proposed command
Add an iOS-simulator settings helper, for example:
agent-device settings text-size
agent-device settings text-size large
agent-device settings text-size accessibility-extra-large
The no-argument form should return the normalized current category. The setter should accept the categories supported by simctl ui ... content_size:
extra-smallsmallmediumlargeextra-largeextra-extra-largeextra-extra-extra-largeaccessibility-mediumaccessibility-largeaccessibility-extra-largeaccessibility-extra-extra-largeaccessibility-extra-extra-extra-large
Exact naming can follow the existing settings-command conventions.
Scope
- Implement the first slice for iOS Simulator by delegating to
simctl ui <device> content_size. - Respect the active session or explicit device selection (
--device/--udid). - Return
UNSUPPORTED_OPERATIONwith a useful message on targets where agent-device cannot set the category. - Android font-scale parity can be handled separately because its values and behavior do not map exactly to Apple's categories.
Acceptance criteria
- The current preferred content-size category can be read through CLI and structured API/MCP responses.
- A supported category can be set on the selected iOS simulator.
- The result reports the applied normalized category rather than only command success.
- Invalid category values fail before mutating simulator state and list the accepted values.
- Help text and command documentation include the new setting.
- Tests cover parsing, device selection, success, invalid input, and unsupported-target behavior.
- 主要语言
- TypeScript
- 星标
- 4.9k
- 派生
- 328
- 平均合并
- 12 小时 19 分钟
- 30 天内合并 PR
- 549
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
callstack/agent-device 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
callstack/agent-device#1869 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 38/100
callstack/agent-device#3263 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 36/100
callstack/agent-device#3261 · 3 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
callstack/agent-device#3260 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
callstack/agent-device#3254 ·
维护者通常 1 天内回复
查看 callstack/agent-device 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 85/100
wardian-app/Wardian#1603 ·
维护者通常 1 天内回复
-
Sign the pledge未关闭
难度 1/5 1 小时以内 新手友好度 85/100
input-output-hk/devx-updates#168 ·
维护者通常 1 天内回复
-
triage
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
agent-ready area: config area: skills type: chore upstream: brain-kit
难度 1/5 1 小时以内 新手友好度 95/100
-
dev experience frontend good first issue
难度 2/5 1-3 小时 新手友好度 78/100
cuttle-cards/cuttle#1403 ·
维护者通常 1 天内回复