diff --git a/package.json b/package.json index 1696333d..9a4c2a83 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@modelcontextprotocol/ext-apps": "^1.7.2", "@modelcontextprotocol/sdk": "^1.29.0", "@opencode-ai/sdk": "^1.17.13", - "@pierre/diffs": "^1.2.5", + "@pierre/diffs": "^1.3.6", "better-result": "^2.10.0", "better-sqlite3": "^12.10.0", "cross-spawn": "^7.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26f7684e..ff4ab0a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^1.17.13 version: 1.17.13 '@pierre/diffs': - specifier: ^1.2.5 - version: 1.2.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + specifier: ^1.3.6 + version: 1.3.6(@shikijs/themes@3.23.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) better-result: specifier: ^2.10.0 version: 2.10.0 @@ -623,16 +623,36 @@ packages: '@oxc-project/types@0.133.0': resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} - '@pierre/diffs@1.2.5': - resolution: {integrity: sha512-uYOz3Kfs5ED0qY0VraUXzylsEKvZPTVdexboM3QKPx/qBZmTT9F3lKAFuPpY5aIrV04sdHtoFCKStyzEu99U2A==} + '@pierre/diffs@1.3.6': + resolution: {integrity: sha512-a3woaW2QHy78JDxPJK0OJzwZUN4xoQLLIS/pceO8X6+L8gA5D682mP7/w3YxxEVRPXOaoe/p/RJ5Oj/3nrEzew==} peerDependencies: react: ^18.3.1 || ^19.0.0 react-dom: ^18.3.1 || ^19.0.0 - '@pierre/theme@1.0.3': - resolution: {integrity: sha512-sWHv11TMoqKxKDgTIk5VbhQjdPhs8DCcBxbjh3mRlS3YOM/OcrWoGX6MM8eBGn9cUu3M46Py0JnxsG2nJaFTuA==} + '@pierre/theme@2.0.0': + resolution: {integrity: sha512-yNDd9GYLQl1mEUJR8AneJ5e4ohLIHQd/wZLWr4fagt78vS2RwwZNW530vVgHqXFAyFVcFlRmGUD5ramXH46OXw==} engines: {vscode: ^1.0.0} + '@pierre/theming@1.0.1': + resolution: {integrity: sha512-WCI5Qd7iprDpISL9fBYOLe8RV53+b7mFNA3bPzl60/2CKCSrsKN8zEcep6Y3BAzvARlmca50zGjDodqPGiTUKA==} + peerDependencies: + '@pierre/theme': ^1.1.0 || ^2.0.0 + '@shikijs/themes': ^3.0.0 || ^4.0.0 + react: ^18.3.1 || ^19.0.0 + react-dom: ^18.3.1 || ^19.0.0 + shiki: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + '@pierre/theme': + optional: true + '@shikijs/themes': + optional: true + react: + optional: true + react-dom: + optional: true + shiki: + optional: true + '@pondwader/socks5-server@1.0.10': resolution: {integrity: sha512-bQY06wzzR8D2+vVCUoBsr5QS2U6UgPUQRmErNwtsuI6vLcyRKkafjkr3KxbtGFf9aBBIV2mcvlsKD1UYaIV+sg==} @@ -1074,6 +1094,10 @@ packages: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} + diff@9.0.0: + resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} + engines: {node: '>=0.3.1'} + drizzle-orm@0.45.2: resolution: {integrity: sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==} peerDependencies: @@ -2635,18 +2659,29 @@ snapshots: '@oxc-project/types@0.133.0': {} - '@pierre/diffs@1.2.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@pierre/diffs@1.3.6(@shikijs/themes@3.23.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@pierre/theme': 1.0.3 + '@pierre/theme': 2.0.0 + '@pierre/theming': 1.0.1(@pierre/theme@2.0.0)(@shikijs/themes@3.23.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@3.23.0) '@shikijs/transformers': 3.23.0 - diff: 8.0.3 + diff: 9.0.0 hast-util-to-html: 9.0.5 lru_map: 0.4.1 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) shiki: 3.23.0 + transitivePeerDependencies: + - '@shikijs/themes' - '@pierre/theme@1.0.3': {} + '@pierre/theme@2.0.0': {} + + '@pierre/theming@1.0.1(@pierre/theme@2.0.0)(@shikijs/themes@3.23.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@3.23.0)': + optionalDependencies: + '@pierre/theme': 2.0.0 + '@shikijs/themes': 3.23.0 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + shiki: 3.23.0 '@pondwader/socks5-server@1.0.10': {} @@ -3035,6 +3070,8 @@ snapshots: diff@8.0.4: {} + diff@9.0.0: {} + drizzle-orm@0.45.2(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.10.0): optionalDependencies: '@opentelemetry/api': 1.9.0 diff --git a/src/ui/workspace-app.css b/src/ui/workspace-app.css index 92dc4bf2..08a2ddc9 100644 --- a/src/ui/workspace-app.css +++ b/src/ui/workspace-app.css @@ -793,8 +793,12 @@ body { --diffs-dark-bg: var(--tool-payload-bg, var(--color-background-primary, #101114)); --diffs-font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace); --diffs-header-font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif); - --diffs-font-size: var(--font-text-sm-size, 12px); + /* Keep iOS WebKit from inflating dense diff text independently of the card UI. */ + --diffs-font-size: 12px; --diffs-line-height: 20px; + + -webkit-text-size-adjust: 100%; + text-size-adjust: 100%; display: block; overflow: visible; border-bottom-right-radius: 8px;