Skip to content

Commit a9abaa4

Browse files
Merge main into fix/delegated-approval-wait-20261015
2 parents b719a0d + b2fa5d3 commit a9abaa4

231 files changed

Lines changed: 7585 additions & 2359 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/actions/setup-ci-deps/action.yml‎

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,34 @@ runs:
1818
path: ~/.vite-plus
1919
key: vite-plus-home-v1-${{ runner.os }}-${{ runner.arch }}-${{ steps.vp.outputs.version }}
2020

21+
- name: Setup Vite+
22+
uses: voidzero-dev/setup-vp@v1
23+
with:
24+
node-version-file: package.json
25+
cache: false
26+
run-install: false
27+
28+
- name: Resolve pnpm store path
29+
id: pnpm_store
30+
shell: bash
31+
run: |
32+
store_path="$(vp pm cache dir)"
33+
echo "path=$store_path" >> "$GITHUB_OUTPUT"
34+
35+
# setup-vp's shared cache key ignores install filters. Keep full installs in a
36+
# separate namespace, including fallback restores.
2137
# The pnpm store stays a cache tarball on the runner's own disk. A store on a
2238
# Blacksmith sticky disk mounts in under a second, but pnpm then copies every
2339
# package across filesystems instead of hard-linking it: install took 28-49s
2440
# against 9s plus an 11s restore.
25-
- name: Setup Vite+
26-
uses: voidzero-dev/setup-vp@v1
41+
- name: Cache full pnpm store
42+
uses: actions/cache@v6
2743
with:
28-
node-version-file: package.json
29-
cache: true
30-
run-install: true
44+
path: ${{ steps.pnpm_store.outputs.path }}
45+
key: pnpm-full-v1-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', 'package.json') }}
46+
restore-keys: |
47+
pnpm-full-v1-${{ runner.os }}-${{ runner.arch }}-
48+
49+
- name: Install dependencies
50+
shell: bash
51+
run: vp install

‎.github/workflows/ci.yml‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,8 +482,6 @@ jobs:
482482
!/apps/mobile/modules/t3-terminal/Vendor/**/*.a
483483
sparse-checkout-cone-mode: false
484484

485-
# A full install: a filtered one that misses the cache first saves its
486-
# partial store under the shared lockfile key for every later job.
487485
- name: Setup Vite+
488486
uses: ./.github/actions/setup-ci-deps
489487

‎.github/workflows/release.yml‎

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,8 @@ jobs:
129129
!/.repos/
130130
sparse-checkout-cone-mode: false
131131

132-
- name: Setup Vite+
133-
uses: voidzero-dev/setup-vp@v1
134-
with:
135-
node-version-file: package.json
136-
cache: true
137-
run-install: true
132+
- name: Setup dependencies
133+
uses: ./.github/actions/setup-ci-deps
138134
env:
139135
pnpm_config_cache_dir: ${{ runner.temp }}/pnpm-metadata
140136

@@ -247,12 +243,8 @@ jobs:
247243
!/.repos/
248244
sparse-checkout-cone-mode: false
249245

250-
- name: Setup Vite+
251-
uses: voidzero-dev/setup-vp@v1
252-
with:
253-
node-version-file: package.json
254-
cache: true
255-
run-install: true
246+
- name: Setup dependencies
247+
uses: ./.github/actions/setup-ci-deps
256248

257249
- name: Ensure Electron runtime is installed
258250
run: vp run --filter @t3tools/desktop ensure:electron
@@ -281,12 +273,8 @@ jobs:
281273
!/.repos/
282274
sparse-checkout-cone-mode: false
283275

284-
- name: Setup Vite+
285-
uses: voidzero-dev/setup-vp@v1
286-
with:
287-
node-version-file: package.json
288-
cache: true
289-
run-install: true
276+
- name: Setup dependencies
277+
uses: ./.github/actions/setup-ci-deps
290278

291279
- name: Ensure Electron runtime is installed
292280
run: vp run --filter @t3tools/desktop ensure:electron
@@ -325,12 +313,8 @@ jobs:
325313
!/.repos/
326314
sparse-checkout-cone-mode: false
327315

328-
- name: Setup Vite+
329-
uses: voidzero-dev/setup-vp@v1
330-
with:
331-
node-version-file: package.json
332-
cache: true
333-
run-install: true
316+
- name: Setup dependencies
317+
uses: ./.github/actions/setup-ci-deps
334318

335319
# No Electron setup here: `t3` (apps/server) has no Electron dependency
336320
# and none of its tests touch the runtime. Only the non-server `test`

‎apps/mobile/deps/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
The Enriched Markdown tarball comes from the [`fork/t3-mobile` branch](https://github.com/pingdotgg/enriched-markdown/tree/fork/t3-mobile). Its `t3-fork.json` records the exact source commit and upstream base. File/skill link recognition, back navigation from horizontal blocks, table-image presses, and code-block headers use upstream implementations. The remaining fork adds clipboard metadata, parsed asset manifests, signed image source resolution, React media slots, and development-host autolinks.
1+
The Enriched Markdown tarball comes from [`feat/t3chat-markdown-parity-v2`](https://github.com/pingdotgg/enriched-markdown/tree/feat/t3chat-markdown-parity-v2), based on Julius's [`fork/t3-mobile` branch](https://github.com/pingdotgg/enriched-markdown/tree/fork/t3-mobile). Its `t3-fork.json` records the exact source commit and upstream base. File/skill link recognition, back navigation from horizontal blocks, table-image presses, and code-block headers use upstream implementations. The fork retains clipboard metadata, parsed asset manifests, signed image source resolution, React media slots, and development-host autolinks. The fork retains native math parsing, scrolling and copying, table layout and gestures, and inline-code layout. Character-reference decoding, iOS intrinsic-width measurement, and HTML clipboard round trips now use the upstream fixes included in Julius's base. RaTeX uses the upstream-released 0.1.15 dependency.
22

3-
To replace it, commit the fork changes, run `yarn install --immutable` and `yarn workspace react-native-enriched-markdown prepare` in the fork checkout, then `node scripts/pack-t3.mjs /path/to/t3code/apps/mobile/deps`. Bump the fork package version for each replacement, update the tarball path in `apps/mobile/package.json` and `pnpm-workspace.yaml`'s `allowBuilds`, and run `vp i` to update the lockfile. Native clients need rebuilding when this dependency changes.
3+
To replace it, commit the fork changes, run `yarn install --immutable` and `yarn workspace react-native-enriched-markdown prepare` in the fork checkout, then `node scripts/pack-t3.mjs /path/to/t3code/apps/mobile/deps`. Keep the package version aligned with Julius's `fork/t3-mobile` branch. Rename the archive to include the first eight characters of the source commit, such as `react-native-enriched-markdown-1.2.0-t3.15-fee84114.tgz`, so each build has a distinct dependency path without version bumps. Update the tarball path in `apps/mobile/package.json` and `pnpm-workspace.yaml`'s `allowBuilds`, and run `vp i` to update the lockfile. Native clients need rebuilding when this dependency changes.
Binary file not shown.
-1.12 MB
Binary file not shown.

‎apps/mobile/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
"react-dom": "catalog:",
126126
"react-native": "0.88.0",
127127
"react-native-blob-util": "0.25.1",
128-
"react-native-enriched-markdown": "file:deps/react-native-enriched-markdown-1.2.0-t3.15.tgz",
128+
"react-native-enriched-markdown": "file:deps/react-native-enriched-markdown-1.2.0-t3.15-fee84114.tgz",
129129
"react-native-gesture-handler": "~3.3.0",
130130
"react-native-image-viewing": "^0.2.2",
131131
"react-native-keyboard-controller": "1.22.7",
@@ -159,7 +159,7 @@
159159
"typescript": "catalog:"
160160
},
161161
"enriched-markdown": {
162-
"enableMath": false,
162+
"enableMath": true,
163163
"enableVideo": false
164164
},
165165
"expo": {

‎apps/mobile/src/Stack.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ const RootStackConfig = createWorkspaceStackNavigator({
889889
linking: `${THREAD_LINKING_PREFIX}/git/commit`,
890890
options: {
891891
...FORM_SHEET_PRESENTATION_OPTIONS,
892-
sheetAllowedDetents: [0.55, 0.92],
892+
sheetAllowedDetents: [0.8, 0.92],
893893
sheetGrabberVisible: true,
894894
},
895895
}),

‎apps/mobile/src/components/ComposerContextAttachment.tsx‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Button } from "./ui/Button";
12
import { settlePromise, squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime";
23
import { AsyncResult } from "effect/reactivity";
34
import * as Dialog from "./ui/Dialog";
@@ -118,16 +119,14 @@ export function ComposerContextAttachment(props: {
118119
</Text>
119120
) : null}
120121
<PresentationSource identifier={shareSourceIdentifier}>
121-
<Pressable
122-
accessibilityRole="button"
122+
<Button
123+
label={sharing ? "Opening attachment…" : "Open or share attachment"}
124+
tone="secondary"
123125
disabled={sharing}
124126
onPress={() => void share()}
125-
className="rounded-xl bg-subtle p-4"
126-
>
127-
<Text className="text-foreground">
128-
{sharing ? "Opening attachment…" : "Open or share attachment"}
129-
</Text>
130-
</Pressable>
127+
fullWidth
128+
loading={sharing}
129+
/>
131130
</PresentationSource>
132131
{previewOpen && record.kind === "image" && uri ? (
133132
<FilePreviewModal

‎apps/mobile/src/components/ComposerContextSheet.tsx‎

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Button } from "./ui/Button";
12
import * as Dialog from "./ui/Dialog";
23
import { useOpenPullRequest } from "../native/useOpenPullRequest";
34
import { SourceFileSurface } from "../features/files/SourceFileSurface";
@@ -299,18 +300,17 @@ export function ComposerContextSheet(props: {
299300
<View className="gap-3">
300301
<ContextField label="Thread" value={record.title} />
301302
{props.onOpenThread ? (
302-
<Pressable
303-
accessibilityRole="button"
303+
<Button
304+
label="Open thread"
305+
tone="secondary"
304306
onPress={() =>
305307
props.onOpenThread?.({
306308
environmentId: record.environmentId,
307309
threadId: record.threadId,
308310
})
309311
}
310-
className="rounded-xl bg-subtle p-4"
311-
>
312-
<Text className="text-foreground">Open thread</Text>
313-
</Pressable>
312+
fullWidth
313+
/>
314314
) : null}
315315
</View>
316316
) : null}
@@ -322,13 +322,12 @@ export function ComposerContextSheet(props: {
322322
value={props.skillDescription ?? "No description is available for this skill."}
323323
/>
324324
{props.onOpenSkill ? (
325-
<Pressable
326-
accessibilityRole="button"
325+
<Button
326+
label="View instructions"
327+
tone="secondary"
327328
onPress={props.onOpenSkill}
328-
className="rounded-xl bg-subtle p-4"
329-
>
330-
<Text className="text-foreground">View instructions</Text>
331-
</Pressable>
329+
fullWidth
330+
/>
332331
) : null}
333332
</View>
334333
) : null}
@@ -364,31 +363,23 @@ export function ComposerContextSheet(props: {
364363
</Pressable>
365364
) : null}
366365
{props.onOpenAttachment ? (
367-
<Pressable
368-
accessibilityRole="button"
366+
<Button
367+
label="Open attachment"
368+
tone="secondary"
369369
onPress={props.onOpenAttachment}
370-
className="rounded-xl bg-subtle p-4"
371-
>
372-
<Text className="text-foreground">Open attachment</Text>
373-
</Pressable>
370+
fullWidth
371+
/>
374372
) : null}
375373
{props.onOpenPullRequest && !pullRequestUrl ? (
376-
<Pressable
377-
accessibilityRole="button"
374+
<Button
375+
label="Open pull request"
376+
tone="secondary"
378377
onPress={props.onOpenPullRequest}
379-
className="rounded-xl bg-subtle p-4"
380-
>
381-
<Text className="text-foreground">Open pull request</Text>
382-
</Pressable>
378+
fullWidth
379+
/>
383380
) : null}
384381
{props.onRemove ? (
385-
<Pressable
386-
accessibilityRole="button"
387-
onPress={props.onRemove}
388-
className="rounded-xl bg-subtle p-4"
389-
>
390-
<Text className="text-foreground">Remove from draft</Text>
391-
</Pressable>
382+
<Button label="Remove from draft" tone="secondary" onPress={props.onRemove} fullWidth />
392383
) : null}
393384
</ScrollView>
394385
</Sheet>

0 commit comments

Comments
 (0)