Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
8601797
fix(web): align update toast release notes link (#6322)
t3-code[bot] Aug 12, 2026
770946d
fix(web): render tooltips above dropdowns (#6241)
extoci Aug 12, 2026
8d24b51
fix(web): open modified PR clicks in browser (#6278)
t3-code[bot] Aug 12, 2026
18918d1
Fix mobile command popover glass rendering (#6370)
juliusmarminge Aug 12, 2026
e3a9c25
test(mobile): seed snoozed showcase threads (#5155)
PixPMusic Aug 12, 2026
9666b87
fix(web): preserve appearance mode when changing themes (#6343)
extoci Aug 12, 2026
d0b8d63
feat(connect): deregister account environments from any client (#4844)
StiensWout Aug 12, 2026
b28f9bf
feat(web): pull request surfaces — filters & qualifiers, all-server l…
Bil0000 Aug 12, 2026
2eb099f
fix(web): cmd+click sidebar PR numbers open in the browser (#6378)
t3dotgg Aug 12, 2026
ac1264e
feat(web): project favicon and workspace icons in command subtitles (…
gsimone Aug 12, 2026
da6253b
web/settings: fix source control scan on relay environments (#6230)
dominic-r Aug 12, 2026
33f9705
fix(web): make reset zoom hover visible (#6385)
t3-code[bot] Aug 12, 2026
1e59b4c
fix(web): keep the typed prompt when a draft changes repo (#6393)
t3dotgg Aug 12, 2026
6bc6cb6
fix(web): keep diff file lists scrollable past expanded files (#6423)
dominic-r Aug 13, 2026
df19f6c
fix(server): align Codex collaboration prompts (#6432)
none23 Aug 13, 2026
5015d7c
fix(web): keep turn minimap stable as composer grows (#6414)
extoci Aug 13, 2026
97db94c
fix(web): keep pull request panel within viewport (#6451)
Bil0000 Aug 13, 2026
9513e62
Add bil0000 to VOUCHED contributors list (#6462)
maria-rcks Aug 13, 2026
2ab188f
fix: ignore pull request actions in latency tracker (#6476)
t3-code[bot] Aug 13, 2026
9e20194
Remove rebase requirement before opening PR (#6479)
juliusmarminge Aug 13, 2026
fd51561
fix(mobile): extend blockquotes across wrapped lines (#6482)
chrisdeeming Aug 13, 2026
83ad26c
fix(mobile): prevent invalid HTML entities from crashing markdown (#6…
Lucenx9 Aug 13, 2026
1b16ed6
fix(web): avoid Clerk close button overlap (#6442)
t3-code[bot] Aug 13, 2026
2fab18e
fix(web): show unlinked icon when viewport aspect ratio is unlocked (…
UtkarshUsername Aug 13, 2026
92d4a2e
fix(web): scope pull request errors to their environment (#6490)
Adamulek123 Aug 13, 2026
bad1143
fix(mobile): show a real settings cog in the Android sidebar header (…
paul-vd Aug 13, 2026
23d45d9
fix(web): restore default stage artwork colors (#6535)
t3-code[bot] Aug 13, 2026
5ff3a03
fix(web): align sidebar wordmark label (#6086)
WarheadTaylor Aug 13, 2026
96bfa67
fix(web): align the snoozed thread wake icon (#6215)
RakshithBhat03 Aug 13, 2026
db1507e
feat: allow disabling auto-settle on merge (#5880)
t3dotgg Aug 13, 2026
85389b9
Nest mobile task settings in bottom sheets (#6224)
juliusmarminge Aug 13, 2026
5304f3e
chore(mobile): bump app version to 1.0.4
t3-code[bot] Aug 14, 2026
59be6f7
fix(web): simplify the desktop-managed server update banner copy (#6549)
t3dotgg Aug 14, 2026
e15f655
fix(web): show background policy tooltips sooner (#6506)
davidhu2000 Aug 14, 2026
710fd0e
feat(desktop): add favicons to the Browser panel (#5644)
chrisdeeming Aug 14, 2026
9fd788b
fix(preview): only show browser-ready local servers (#6021)
chrisdeeming Aug 14, 2026
7e01d33
perf(build): stop unpacking node_modules wholesale from the Windows a…
tsouth89 Aug 14, 2026
baaeda3
fix: avoid stale Live Activities when publishing is disabled (#6325)
juliusmarminge Aug 14, 2026
8f9ab08
fix(mobile): add breathing room between the git progress overlay and …
PollyGlot Aug 14, 2026
4a2f8b0
fix(web): keep thread rename open during IME composition (#6281)
MichaelCharles Aug 14, 2026
6ae44b4
refactor(mobile): name the iOS nav bar height fallback (#6589)
PollyGlot Aug 14, 2026
b3b4b57
fix(mobile): preserve keyboard suggestions while typing (#6323)
juliusmarminge Aug 14, 2026
21a3669
fix(mobile): prevent OTA update restart crashes (#6324)
juliusmarminge Aug 14, 2026
038560e
fix(web): align every titlebar control cluster on one shared inset (#…
juliusmarminge Aug 14, 2026
184d8ef
fix(mobile): steer active turns by default (#6543)
chrisdeeming Aug 14, 2026
1a65994
fix(web): clarify desktop update status (#6504)
StiensWout Aug 14, 2026
8099140
fix(server): terminal subprocess polling no longer floods the PID spa…
SunkenInTime Aug 14, 2026
1add47b
fix(web): add copying terminal selection with ctrl+c in the web app (…
UtkarshUsername Aug 14, 2026
c9063f0
perf(desktop): speed up Windows update installation (#6169)
StiensWout Aug 14, 2026
196c8ea
fix(web): style sidebar action tooltips (#6371)
t3-code[bot] Aug 14, 2026
9885a84
refactor(web): simplify global styling (#6381)
t3-code[bot] Aug 14, 2026
f071907
fix(server): handle files named HEAD in git status (#6397)
Lucenx9 Aug 14, 2026
e25021a
feat(packaging): maintain AUR packages in-repo (#4128)
maria-rcks Aug 14, 2026
74f7b43
fix(web): bound OKLCH gamut mapping (#6485)
Lucenx9 Aug 14, 2026
57a299a
feat(web): open remote environments in your local editor over SSH (#6…
t3dotgg Aug 15, 2026
d7abd7f
feat(web): refresh workspace layouts and tool activity
maria-rcks Aug 15, 2026
804cba4
revert: refresh workspace layouts and tool activity (#6657)
maria-rcks Aug 15, 2026
48ddb3d
feat(web): older chat timestamps show the date, not just the time (#6…
t3dotgg Aug 15, 2026
8c628f1
fix(web): align pull request action menu rows (#6534)
Bil0000 Aug 15, 2026
6ae9662
fix(web): restore selected themes in dark mode (#6665)
StiensWout Aug 15, 2026
f0ebc62
fix(web): improve Codex usage graph contrast (#6669)
StiensWout Aug 15, 2026
e9ae134
docs: route feature requests to Discussions
juliusmarminge Aug 15, 2026
d8a6dfd
fix(desktop): app zoom no longer zooms the preview browser (#6649)
juliusmarminge Aug 15, 2026
afca73d
fix(server): keep provider notification consumers alive past startSes…
tsouth89 Aug 15, 2026
7547280
fix(server): treat removed Bitbucket permissions endpoint as unknown,…
lnieuwenhuis Aug 15, 2026
672216d
fix(ssh): let cold remote servers finish starting (#6168)
gbarros-dev Aug 15, 2026
1e87029
fix(web): preserve Claude insight line breaks (#4344)
nateEc Aug 15, 2026
a6ac27e
feat(web): accept file drops across the chat workspace (#6636)
dbalders Aug 15, 2026
eaa6c47
fix(web): widen ordered-list marker gutter for 3+ digit item numbers …
lnieuwenhuis Aug 15, 2026
71c6f82
fix(server): bound thread activity hydration (#6153)
t3-code[bot] Aug 15, 2026
48cba7d
fix(web): restore the Archive action in the default sidebar thread me…
lnieuwenhuis Aug 15, 2026
9f26656
fix(web): open diff files from nested projects (#6174)
gbarros-dev Aug 15, 2026
b277cc6
fix(mobile): use tryOpenExternalUrl for markdown links in ThreadFeed …
mohamedmastouri-hue Aug 15, 2026
2cb1a26
fix(web): open the file a bare filename reference names (#6297)
Brechard Aug 15, 2026
ddee418
fix(server): stop the provider title mirror from overwriting real thr…
repparw Aug 15, 2026
178da6b
fix(shared): match source-control providers by DNS label (#6175)
gbarros-dev Aug 15, 2026
b7dbbba
feat(desktop): Chrome-style hold-to-quit (#5508)
Bil0000 Aug 15, 2026
d94fbda
fix(gitlab): submit review comments on context lines (#6348)
tarik02 Aug 15, 2026
db3278f
fix(marketing): keep Grok mark clear of mobile hero copy (#4542)
NicL9923 Aug 15, 2026
3bc4fdf
fix(mobile): recover the QR pairing scanner when camera access is den…
hey-jj Aug 15, 2026
a38cac8
fix(web): keep a long path from running under the folder picker butto…
Sy-D Aug 15, 2026
270489b
fix(terminal): right-click paste works in the terminal (#5240)
StiensWout Aug 15, 2026
4db5075
fix(mobile): explain iOS-only settings on Android (#4981)
danvernon Aug 15, 2026
9bdd912
fix(web): stop counting a workflow coordinator as a working agent (#6…
Rishet11 Aug 15, 2026
6e6d1b4
fix(web): keep floating preview anchored after panel closes (#6547)
AksharP5 Aug 15, 2026
a7c5ad5
fix(web): unstick /connect after in-modal sign-in by redirecting to t…
TorbenWetter Aug 15, 2026
7afa184
fix(web): keep send reachable while a turn is running on mobile (#4781)
AMohamedAakhil Aug 15, 2026
34a12bc
fix(web): reject unsupported composer image types at attach time (#6574)
mdshzb04 Aug 15, 2026
5ffbf3c
Make ClaudeTextGeneration tests hermetic on Windows (#4508)
mihneaptu Aug 15, 2026
143f713
fix(web): show command output in work log (#4083)
LikoKiko Aug 15, 2026
06dd999
fix(web): reserve sibling column width when resizing the right panel …
Lasdw6 Aug 15, 2026
9e61d0f
fix(web): replace whitespace in new ref names with dashes (#6270)
jorj-pineda Aug 15, 2026
c7b14a8
fix(client-runtime): branch list no longer resets while paging throug…
a20hek Aug 15, 2026
b0de385
fix(web): support Shift+Insert terminal paste (#5982)
aoright Aug 15, 2026
d79f975
fix(web): keep the composer glass aligned with the context strip at a…
Williawar Aug 15, 2026
135dc15
fix(codex): keep background memory out of chats (#5468)
AksharP5 Aug 15, 2026
51c6daa
fix(server): treat a missing Codex rollout as a recoverable resume er…
Rishet11 Aug 15, 2026
3cde99b
fix(web): hide provider Update toast action while an update is runnin…
mrmg Aug 15, 2026
e204f5a
fix(desktop): agent shells inherit a UTF-8 locale on macOS (#6236)
Linus-Boehm Aug 15, 2026
474cc5f
fix(server): ignore Claude command lifecycle messages (#6606)
naveed949 Aug 15, 2026
402c9e0
docs: mention Bitbucket user read scope needed by auth probe (#6291)
thamrx Aug 15, 2026
551f4c9
fix(server): return valid preview action results (#5966)
duncan-vc Aug 15, 2026
e9e4697
fix(claude): make "Always allow for session" stick, and only for the …
kakismash Aug 15, 2026
9d0f2fc
fix(ssh): surface a failed remote t3 install instead of a silent 0-by…
TorbenWetter Aug 15, 2026
f075a58
perf(server): persist the wire projection for streaming tool.updated …
mInrOz Aug 15, 2026
c4556ab
fix(web): stop wrapping partial code block selections in markdown fen…
JoeJoeflyn Aug 15, 2026
efe1773
fix(web): hide T3 Connect toggle in web app settings (#5068)
JoeJoeflyn Aug 15, 2026
a5d3532
fix(web): show provider account accent badge in sidebar rows and hove…
vitalyiegorov Aug 15, 2026
c0f9d91
fix(server): wait for concurrent SQLite writers instead of failing wi…
ostapondo Aug 15, 2026
7c55e86
fix(web): reject oversized prompts before provider turn start (#6602)
naveed949 Aug 15, 2026
40ab7bf
feat(web): collapse the question prompt from its header (#6773)
Jardo-51 Aug 15, 2026
684d703
fix(shared): degrade an unknown system time zone to UTC in usage wind…
Rishet11 Aug 15, 2026
ad47d23
fix(claude): discover repo-local .agents/skills in skill discovery (#…
RoshanMhatre Aug 15, 2026
d715c2e
fix(server): let slow provider CLIs raise their discovery probe budge…
CDVolvik Aug 15, 2026
d5465ae
fix(web): retain terminal PR badges after checkout switch (#4755)
sebbonit Aug 15, 2026
ca37b19
fix(web): show selected model in context window tooltip (#4772)
nqrwhal Aug 15, 2026
5e14737
fix(web): scale command details with code font (#6510)
Serendeep Aug 15, 2026
cf7bfd1
fix(web): preserve XML-like tags in user messages (#4133)
0utsights Aug 15, 2026
7c8848e
fix(desktop): route mouse thumb buttons to the in-app browser (#4459)
akosbalogh Aug 15, 2026
f915320
fix(web): keep the final segment of directory paths with a trailing s…
jorvarea Aug 15, 2026
7083bce
Keep block code plain when copying from rendered markdown (#4468)
yashranaway Aug 15, 2026
21b6fb5
fix(web): add web app manifest so installed app keeps its scope (#4306)
Albro3459 Aug 15, 2026
db02c6b
Skip user hooks during Claude capability probes (#4466)
yashranaway Aug 15, 2026
31d0fb6
fix(mobile): use Android monospace font family (#4609)
tastelessjolt Aug 15, 2026
b72d5d7
fix(desktop): timestamps follow the OS locale instead of en-US (#6190)
brzzdev Aug 15, 2026
1a5ff42
fix(web): keep multi-select questions open after the first click (#6646)
RaitP1 Aug 15, 2026
d550b82
fix(web): stop clipping the changed-files expand hover on Windows (#6…
mrmg Aug 15, 2026
86fb47a
fix(server): allow long-running git pushes (#6499)
devchaudhary24k Aug 15, 2026
160c76c
fix(desktop): keep probing backend readiness while the process is ali…
lgwacker Aug 15, 2026
dc0ff8f
fix(server): allow install scripts in npm-global provider updates (#5…
hey-jj Aug 15, 2026
7ce4194
fix: detect SSH remotes with non-git user prefixes (e.g. gitlab@) (#3…
JackatDJL Aug 15, 2026
39167eb
fix(web): describe what Ultracode does in the Reasoning picker (#6092)
delltrak Aug 15, 2026
3b54a2a
fix(server): settle pending user-input requests when a Claude session…
AaronAbuUsama Aug 15, 2026
4fc80fc
fix(server): stop replaying a command receipt for a different aggrega…
ostapondo Aug 15, 2026
07e668d
fix(server): settle snoozed threads immediately (#5379)
0bkevin Aug 15, 2026
277a7cb
fix(mobile): prevent crash on sign out in settings (#4899)
shubhu121 Aug 15, 2026
f8bb92b
fix(mobile): local-checkout threads record their branch so PR badges …
Zeus-Deus Aug 15, 2026
62bb974
fix(web): contain long approval commands (#6503)
Serendeep Aug 15, 2026
e17f244
feat(web): make right panel maximize bindable (#5091)
husseinraoouf Aug 15, 2026
61b2e74
fix(server): respect inherited OPENCODE_CONFIG_CONTENT (#4242)
jonocodes Aug 15, 2026
04f2309
fix(marketing): detect Mac chip on homepage download button (#4197)
mahdibm-dev Aug 15, 2026
931e915
Keep the server alive when a response write hits a dead socket (#4470)
yashranaway Aug 15, 2026
664499c
Limit physical key fallback to non-Latin layout output (#4469)
yashranaway Aug 15, 2026
2fc6762
fix: restore CLAUDE.md symlink target (#3929)
NgoQuocViet2001 Aug 15, 2026
ec141c1
fix(clients): default clone destination to folder plus repo name (#5989)
inayayousfi Aug 15, 2026
20a7042
fix(web): keep timestamp date and time in the same locale (#7081)
juliusmarminge Aug 15, 2026
ad11723
feat(desktop): add signal macOS DMG installer background (#6201)
Brechard Aug 15, 2026
a5e29ed
feat(web): send PR line requests to agent (#6597)
Bil0000 Aug 15, 2026
e58cbb9
fix(web): restore dark theme palette (#6663)
eddy-naboulet Aug 15, 2026
2f486ab
refactor(web): simplify advanced theme controls (#7107)
StiensWout Aug 15, 2026
d484735
fix(web): keep highlighted command menu items clear of the scroll fad…
PollyGlot Aug 15, 2026
2773229
test: remove redundant and stale tests (#6267)
t3-code[bot] Aug 16, 2026
3583cd2
test: favor behavior over implementation details (#7157)
t3-code[bot] Aug 16, 2026
d23b181
feat(mobile): add built-in themes (#6619)
chrisdeeming Aug 16, 2026
4cb676c
docs: point CLAUDE.md at AGENTS.md with an @import instead of a symli…
UtkarshUsername Aug 16, 2026
4c1d99d
fix(web): show filenames when commit dialog paths overflow (#6392)
frarredondo Aug 16, 2026
89c52a3
fix(mobile): keep sheet actions below status bar (#6635)
NitayRabi Aug 16, 2026
bab4b6f
fix(web): align Windows update confirmation copy (#7208)
StiensWout Aug 16, 2026
791d415
chore(upstream): merge pingdotgg/t3code@bab4b6f02b8b
claude Aug 16, 2026
9bc1a29
fix(desktop): point the WSL server tree test at MARCODE_HOME
claude Aug 16, 2026
cf90a76
fix(web): keep private hosts out of URL shortcut favicon lookups
claude Aug 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
40 changes: 21 additions & 19 deletions .agents/skills/test-t3-mobile/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The development identity on both platforms is:

- App: `T3 Code Dev`
- Bundle/package identifier: `com.t3tools.marcode.dev`
- URL scheme: `t3code-dev`
- URL scheme: `marcode-dev`

Bundle or package presence proves the correct variant, not native compatibility. Reuse it only when the current changes did not alter its Expo SDK, native dependencies, config plugins, entitlements, generated project, or native source.

Expand Down Expand Up @@ -72,14 +72,14 @@ Enter the complete `http://` origin to make the test transport explicit. Bare IP

Run Metro from `apps/mobile`.

1. Inspect any process on the intended Metro port and its `/status` response. Reuse it only when it is healthy, belongs to this worktree, and matches `APP_VARIANT=development`, `--dev-client`, and scheme `t3code-dev`.
1. Inspect any process on the intended Metro port and its `/status` response. Reuse it only when it is healthy, belongs to this worktree, and matches `APP_VARIANT=development`, `--dev-client`, and scheme `marcode-dev`.
2. Never kill another worktree's Metro. Use a free explicit port when necessary.
3. Run `vp run dev:client` on the standard port. For another port, retain the complete development identity:

```bash
APP_VARIANT=development vp exec expo start \
--dev-client \
--scheme t3code-dev \
--scheme marcode-dev \
--clear \
--lan \
--port <metro-port>
Expand Down Expand Up @@ -125,31 +125,31 @@ Do not start, stop, erase, or reconfigure an emulator owned by another task. Tra

## Pair each client once

Issue a fresh credential against the running backend's exact base directory:
Use the bundled helper from the repository root. It issues a fresh credential against the running backend's exact base directory, opens the existing Add Environment route with the credential in an encoded query parameter, and asks that route to connect once:

```bash
MARCODE_PORT=<server-port> node apps/server/src/bin.ts auth pairing create \
--base-dir <base-dir> \
--base-url <mobile-origin> \
--ttl 15m \
--label agent-mobile-<short-device-id>
.agents/skills/test-t3-mobile/scripts/pair-client.sh \
ios <simulator-udid> <server-port> <base-dir>

.agents/skills/test-t3-mobile/scripts/pair-client.sh \
android <emulator-serial> <server-port> <base-dir>
```

In PowerShell, set `$env:MARCODE_PORT = "<server-port>"` first and run the `node ... auth pairing create` command without the leading assignment.
Run only the command for the selected platform. The helper uses `http://127.0.0.1:<server-port>` for iOS and `http://10.0.2.2:<server-port>` for Android. Pass a fifth argument only when testing a non-development URL scheme.

If the visible Add Environment action is not exposed as a semantic target, open the app's registered route instead of guessing coordinates:
The helper is a bash script. On Windows, run it from Git Bash or WSL, or mint the credential directly with `$env:MARCODE_PORT = "<server-port>"` followed by `node apps/server/src/bin.ts auth pairing create --base-dir <base-dir> --base-url <mobile-origin> --ttl 15m --label agent-mobile-<short-device-id>`.

```bash
xcrun simctl openurl <simulator-udid> 't3code-dev://connections/new'
adb -s <emulator-serial> shell am start -W \
-a android.intent.action.VIEW \
-d 't3code-dev://connections/new' \
com.t3tools.marcode.dev
The helper opens this registered route:

```text
marcode-dev://connections/new?pairingUrl=<encoded-pairing-url>&autoConnect=1
```

Run only the command for the selected platform.
The Add Environment route owns the behavior: `pairingUrl` prefills its normal host and token inputs, while `autoConnect=1` submits once in development builds and returns to Home after success. Without `autoConnect`, the same route only prefills the form for manual inspection.

Do not enter pairing hosts or tokens through simulator keyboard automation. Xcode's semantic typer sends HID-style key events through the simulator's active keyboard state, which can corrupt uppercase tokens and punctuation even when the host Mac uses a U.S. input source. The one-shot route is the deterministic pairing path. Use the visible form only as a fallback, and paste credentials rather than typing them character by character.

In T3 Code Dev, open Add Environment and enter the complete `<mobile-origin>` and newly printed `Token`. Verify the expected seeded projects appear before exercising the affected flow.
Verify the expected seeded projects appear before exercising the affected flow.

Pairing credentials are secret, short-lived, and single-use. Create a different credential for every simulator, emulator, physical device, or browser. If an attempt fails, issue a new credential rather than retrying the old one. Do not expose tokens in screenshots, commits, or final responses.

Expand Down Expand Up @@ -183,6 +183,8 @@ Keep local verification focused. Do not turn this workflow into a full repositor
- **Old UI or an old error appears:** verify Metro's worktree, variant, URL, and port before diagnosing the app.
- **The environment remains empty:** verify the platform-specific HTTP origin, use a fresh token, and confirm project seeding used the identical base directory.
- **A second client cannot pair:** pairing tokens are single-use; issue another token.
- **The pairing form opens but does not connect:** confirm the deep link uses the existing `connections/new` route, includes `autoConnect=1`, and carries a freshly minted encoded `pairingUrl`.
- **Pairing text changes case or punctuation:** do not retry semantic typing. Use `scripts/pair-client.sh`; the simulator keyboard layout and HID input path are not reliable for credentials.
- **iOS semantic actions fail:** set explicit XcodeBuildMCP defaults and refresh with `snapshot_ui`.
- **Android cannot reach Metro:** verify `adb reverse` for the exact Metro port and relaunch the development-client URL.
- **Android cannot reach the backend:** use `10.0.2.2`, not `127.0.0.1`, for the Android Emulator.
72 changes: 72 additions & 0 deletions .agents/skills/test-t3-mobile/scripts/pair-client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/usr/bin/env bash

set -euo pipefail

usage() {
echo "Usage: $0 <ios|android> <device-id> <server-port> <base-dir> [url-scheme]" >&2
exit 2
}

[[ $# -ge 4 && $# -le 5 ]] || usage

platform="$1"
device_id="$2"
server_port="$3"
base_dir="$4"
url_scheme="${5:-marcode-dev}"

case "$platform" in
ios)
mobile_origin="http://127.0.0.1:${server_port}"
;;
android)
mobile_origin="http://10.0.2.2:${server_port}"
;;
*)
usage
;;
esac

repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"

if ! pairing_output="$({
MARCODE_PORT="$server_port" node apps/server/src/bin.ts auth pairing create \
--base-dir "$base_dir" \
--base-url "$mobile_origin" \
--ttl 15m \
--label "agent-mobile-${device_id:0:8}"
} 2>&1)"; then
echo "Could not mint a mobile pairing credential." >&2
exit 1
fi

pairing_url="$(printf '%s\n' "$pairing_output" | sed -n 's/^Pair URL: //p' | tail -n 1)"
if [[ -z "$pairing_url" ]]; then
echo "Could not parse the mobile pairing URL." >&2
exit 1
fi

deep_link="$(PAIRING_URL="$pairing_url" URL_SCHEME="$url_scheme" node - <<'NODE'
const query = new URLSearchParams({
pairingUrl: process.env.PAIRING_URL,
autoConnect: "1",
});
process.stdout.write(`${process.env.URL_SCHEME}://connections/new?${query}`);
NODE
)"

case "$platform" in
ios)
xcrun simctl openurl "$device_id" "$deep_link"
;;
android)
# adb shell re-joins its arguments and evaluates them through the device
# shell, so the deep link's `?`/`&` must be quoted once more for that shell.
adb -s "$device_id" shell \
"am start -W -a android.intent.action.VIEW -d '$deep_link' com.t3tools.marcode.dev" \
>/dev/null
;;
esac

echo "Opened the existing Add Environment route with a fresh pairing credential."
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Upstream routes feature requests to pingdotgg/t3code Discussions. Marcode
# tracks everything in this repository's Issues (see CONTRIBUTING.md), so blank
# issues stay enabled and there is no cross-repo contact link.
blank_issues_enabled: true
102 changes: 0 additions & 102 deletions .github/ISSUE_TEMPLATE/feature_request.yml

This file was deleted.

1 change: 1 addition & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ github:jappyjan
github:justsomelegs
github:UtkarshUsername
github:SunkenInTime
github:bil0000
1 change: 1 addition & 0 deletions .github/pr-assets/6424-after.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .github/pr-assets/6424-before.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .github/pr-assets/6503-after.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 23 additions & 6 deletions .github/workflows/mobile-showcase-screenshots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ on:
- both
- dark
- light
theme:
description: Palette to capture (all multiplies the run by six)
required: true
default: t3-code
type: choice
options:
- t3-code
- t3-chat
- grove
- ocean
- ember
- iris
- all

permissions:
contents: read
Expand All @@ -33,7 +46,9 @@ jobs:
name: iPhone 6.9, iPhone 6.5, and iPad 13
if: inputs.platform == 'all' || inputs.platform == 'ios'
runs-on: blacksmith-12vcpu-macos-26
timeout-minutes: 60
# Capturing every palette multiplies the device matrix by six, and only the
# one native build is shared between them.
timeout-minutes: ${{ inputs.theme == 'all' && 300 || 60 }}
steps:
- name: Checkout
uses: actions/checkout@v6
Expand Down Expand Up @@ -62,10 +77,10 @@ jobs:
"$vp_pnpm_bin/pnpm" --version

- name: Capture iOS showcase
run: pnpm screenshots:mobile --platform ios --appearance "${{ inputs.appearance }}"
run: pnpm screenshots:mobile --platform ios --appearance "${{ inputs.appearance }}" --theme "${{ inputs.theme }}"

- name: Validate App Store Connect assets
run: pnpm screenshots:mobile --platform ios --appearance "${{ inputs.appearance }}" --validate-only
run: pnpm screenshots:mobile --platform ios --appearance "${{ inputs.appearance }}" --theme "${{ inputs.theme }}" --validate-only

- name: Upload iOS screenshots
if: always()
Expand All @@ -80,7 +95,9 @@ jobs:
name: Android phone, 7-inch tablet, and 10-inch tablet
if: inputs.platform == 'all' || inputs.platform == 'android'
runs-on: blacksmith-16vcpu-ubuntu-2404
timeout-minutes: 60
# Capturing every palette multiplies the device matrix by six, and only the
# one native build is shared between them.
timeout-minutes: ${{ inputs.theme == 'all' && 300 || 60 }}
env:
T3_SHOWCASE_ANDROID_ABI: x86_64
steps:
Expand Down Expand Up @@ -137,10 +154,10 @@ jobs:
cores: 8
ram-size: 4096M
disable-animations: false
script: pnpm screenshots:mobile --platform android --appearance "${{ inputs.appearance }}"
script: pnpm screenshots:mobile --platform android --appearance "${{ inputs.appearance }}" --theme "${{ inputs.theme }}"

- name: Validate Google Play assets
run: pnpm screenshots:mobile --platform android --appearance "${{ inputs.appearance }}" --validate-only
run: pnpm screenshots:mobile --platform android --appearance "${{ inputs.appearance }}" --theme "${{ inputs.theme }}" --validate-only

- name: Upload Android screenshots
if: always()
Expand Down
Loading
Loading