|
1 | 1 | --- |
2 | 2 | remote: t3code-upstream |
3 | 3 | branch: main |
4 | | -reviewed-through: "bad1143b02f7b585d1fe1335b3d9a97983ce8d8b" |
5 | | -reviewed-through-date: "2026-08-13" |
| 4 | +reviewed-through: "5304f3e9d4c912bfa0eb2f5f41fa109b3646236b" |
| 5 | +reviewed-through-date: "2026-08-14" |
6 | 6 | --- |
7 | 7 |
|
8 | 8 | # T3 upstream review log |
@@ -945,12 +945,77 @@ Two tooling notes worth carrying forward: |
945 | 945 | markdown tests ran against pre-cherry-pick source and failed against the |
946 | 946 | updated expectations. **Re-run `vp i` after changing one of these modules.** |
947 | 947 |
|
| 948 | +## 2026-08-14 — `bad1143b02f7b585d1fe1335b3d9a97983ce8d8b..5304f3e9d4c912bfa0eb2f5f41fa109b3646236b` |
| 949 | + |
| 950 | +Six commits, six change sets, **four adopted and two skipped**. Nothing |
| 951 | +deferred, so the register stays empty. `git cherry` reported all six as `+`. |
| 952 | + |
| 953 | +Conflict risk was measured by dry cherry-pick against the merged `pylon` before |
| 954 | +the brief was written: four clean, two conflicting — and both conflicts landed |
| 955 | +exactly on Pylon-owned boundaries, which is the system working. |
| 956 | + |
| 957 | +Adopted across two branches, split by surface rather than by size: |
| 958 | +`upstream/2026-08-14-web` (PR #15) and `upstream/2026-08-14-mobile` (PR #16). |
| 959 | + |
| 960 | +| Change set | Upstream | Decision | Pylon reference | Rationale or revisit condition | |
| 961 | +| ---------- | --------------------- | -------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 962 | +| N1 | `db1507e98` / `#5880` | adopted | `07a3a846c` | A setting to stop threads auto-settling when their pull request merges. Additive `sidebarAutoSettleOnMerge`, **default `true`**, so existing behaviour is unchanged; closed pull requests still always settle. Upstream covered contracts, client-runtime, web, and mobile. | |
| 963 | +| N2 | `96bfa67b3` / `#6215` | adopted | `fb284b0f9` | Snoozed-thread wake icon sits on the row's optical centre. Generic geometry, applies to Pylon's sidebar unchanged. | |
| 964 | +| N3 | `23d45d914` / `#6535` | adopted | `570b54268`, `f7311ad81` | Stage artwork palette rework: explicit night pigments plus glow and sparkle, with the old `color-mix` derivation scoped to `t3-chat`, `ocean`, and `iris` — all of which Pylon still ships. Its "T3 Code artwork palettes" comment was rebranded, following `O11`. | |
| 965 | +| N5 | `85389b988` / `#6224` | adopted | `bbd3db454`, `5990b2440` | Mobile task and thread settings nest in bottom sheets. 41 files, +3,652/−1,836, **including native patches** to `react-native-screens` and `@react-navigation/native-stack`. Verified by a real prebuild, `pod install`, native build, and simulator pass — see below. | |
| 966 | +| N4 | `5ff3a03ad` / `#6086` | skipped | `—` | Adds `-translate-y-px` to the sidebar brand label. A 1px optical correction measured against `<T3Wordmark />`; Pylon renders `<PylonMark />` plus the word "Pylon", a different glyph. **Cherry-picks clean and is still wrong for the fork.** Revisit only as Pylon-owned alignment work against Pylon's own mark. | |
| 967 | +| N6 | `5304f3e9d` | skipped | `—` | Bumps the mobile app version to `1.0.4`. Pylon's `app.config.ts` is independent (`slug: "pylon"`, `pylon-code*` schemes, version `1.0.1`), so the bump conflicts and carries no Pylon meaning. Same class as any T3 release chore. | |
| 968 | + |
| 969 | +**`N5` corrected a stale fact this ledger itself recorded.** The ninth batch's |
| 970 | +mobile notes said the `t3code-dev://` URL scheme "is still compatibility-named |
| 971 | +and works". It does not. A built `PylonDev.app` registers exactly |
| 972 | +`pylon-code-dev` and `com.pylon.code.dev`: |
| 973 | + |
| 974 | +``` |
| 975 | +$ plutil -extract CFBundleURLTypes json -o - .../PylonDev.app/Info.plist |
| 976 | +[{"CFBundleURLSchemes":["pylon-code-dev","com.pylon.code.dev"]},{"CFBundleURLSchemes":["exp+pylon"]}] |
| 977 | +``` |
| 978 | + |
| 979 | +`apps/mobile/src/App.tsx` still lists `t3code-dev://` among React Navigation's |
| 980 | +linking prefixes, which is likely how the belief survived, but iOS never |
| 981 | +delivers an unregistered scheme so the prefix is unreachable. Upstream's new |
| 982 | +`pair-client.sh` defaulted to that scheme and hardcoded `com.t3tools.t3code.dev`, |
| 983 | +so it would have failed silently on Pylon. The helper, the `test-pylon-mobile` |
| 984 | +skill's identity block, and its `T3CodeDev.xcworkspace` references were all |
| 985 | +corrected to what `app.config.ts` produces: `Pylon Dev`, `com.pylon.code.dev`, |
| 986 | +`pylon-code-dev`, `PylonDev.xcworkspace`, scheme `PylonDev`. |
| 987 | + |
| 988 | +Verification: 264 tests over four files and five clean package typechecks on the |
| 989 | +web branch; 40 tests over six files and a clean mobile typecheck on the mobile |
| 990 | +branch; `vp lint` clean on both. `N5` additionally got a full native rebuild and |
| 991 | +an iOS Simulator pass — build succeeded in 176s with the new patches, the app |
| 992 | +launched as `com.pylon.code.dev`, the corrected deep link routed, and both the |
| 993 | +Add Environment route and the new "Choose project" context picker rendered as |
| 994 | +nested bottom sheets. `N3` was captured before and after on one dev server by |
| 995 | +swapping `index.css` over HMR, so the comparison holds data and layout constant. |
| 996 | + |
| 997 | +**Android was not exercised for `N5`**, and the thread-settings sheet was not |
| 998 | +driven on a live thread because the simulator was reconnecting to a |
| 999 | +previously-paired real environment. |
| 1000 | + |
| 1001 | +Two environment notes worth carrying forward: |
| 1002 | + |
| 1003 | +- **CocoaPods 1.17.0 crashes under Ruby 4.0.6** with `Unicode Normalization not |
| 1004 | +appropriate for ASCII-8BIT` when `LANG`/`LC_ALL` are unset, which is how |
| 1005 | + `expo prebuild` leaves the shell. The ninth batch predicted this; setting a |
| 1006 | + UTF-8 locale for `pod install` fixes it. `expo prebuild` **exits 0 even when |
| 1007 | + its CocoaPods step fails**, leaving `ios/` without an `.xcworkspace`. |
| 1008 | +- **`apps/mobile/package.json`'s `dev:client` script still passes |
| 1009 | + `--scheme t3code-dev`**, which no longer matches the registered native scheme. |
| 1010 | + Left alone as out of scope for an adoption batch, but it is a real bug worth |
| 1011 | + its own fix. |
| 1012 | + |
948 | 1013 | ## Deferred register |
949 | 1014 |
|
950 | 1015 | _The register is currently empty. DEF-1 and DEF-2 were adopted on 2026-08-11 |
951 | | -(see the sixth batch above); the 2026-08-12 eighth batch and the 2026-08-13 |
952 | | -ninth batch each deferred nothing new. Entries are removed once adopted or |
953 | | -skipped, so an empty register means nothing is waiting._ |
| 1016 | +(see the sixth batch above); the eighth, ninth, and 2026-08-14 tenth batches |
| 1017 | +each deferred nothing new. Entries are removed once adopted or skipped, so an |
| 1018 | +empty register means nothing is waiting._ |
954 | 1019 |
|
955 | 1020 | Upstream work that has been reviewed and consciously _not_ adopted yet, with |
956 | 1021 | the condition that should trigger a fresh look. Entries stay here until they |
|
0 commit comments