fix(mobile): parse EAS fingerprint JSON - #5991
Conversation
Co-authored-by: codex <codex@users.noreply.github.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
## What's Changed * fix(mobile): reconnects no longer shift the thread list by @t3dotgg in pingdotgg/t3code#5372 * feat(web): drag pinned threads into your own order by @t3dotgg in pingdotgg/t3code#5581 * chore(ci): vouch StiensWout by @t3-code[bot] in pingdotgg/t3code#5637 * feat(desktop): remember recently used sites in the Browser panel by @chrisdeeming in pingdotgg/t3code#5270 * chore: vouch chrisdeeming by @t3-code[bot] in pingdotgg/t3code#5641 * feat(web): make sidebar artwork theme-aware by @maria-rcks in pingdotgg/t3code#5636 * fix(web): reconnect the composer seam for remote non-Git projects by @caezium in pingdotgg/t3code#5633 * fix(web): show Stop button while input is pending by @ipanasenko in pingdotgg/t3code#5554 * feat(web): fold plan mode and token-by-token output into Legacy features by @t3dotgg in pingdotgg/t3code#5664 * feat: sidebar v2 is now the default sidebar by @t3dotgg in pingdotgg/t3code#5672 * fix(server): stop PR status lookups amplifying GitHub rate limits by @t3dotgg in pingdotgg/t3code#5673 * fix(web): delay transient reconnect warnings by @t3-code[bot] in pingdotgg/t3code#5670 * fix(web): inherit terminal size in simple typography by @chrisdeeming in pingdotgg/t3code#5628 * fix(server): stop the reaper from silently killing live background subagents by @t3dotgg in pingdotgg/t3code#5677 * fix(desktop): zoom shortcuts no longer die when the preview browser has focus by @t3dotgg in pingdotgg/t3code#5691 * feat(mobile): one sheet for model and thread settings by @t3dotgg in pingdotgg/t3code#5625 * feat(usage): usage page reading provider transcripts across environments by @t3dotgg in pingdotgg/t3code#5684 * fix(web): usage chart no longer makes Claude look like the bigger spender by @t3dotgg in pingdotgg/t3code#5697 * fix(web): persist diff view mode by @leorivastech in pingdotgg/t3code#5731 * feat(web): show how many subagents are running at a glance by @t3dotgg in pingdotgg/t3code#5745 * fix(web): add missing cursor-pointer styling to dropdowns and interactive buttons by @naMqe-h in pingdotgg/t3code#5716 * fix(server): stop Claude resume handshakes from completing turns that never ran by @gfsaaser24 in pingdotgg/t3code#5710 * chore: vouch gfsaaser24 by @t3dotgg in pingdotgg/t3code#5761 * chore: vouch saphid by @t3dotgg in pingdotgg/t3code#5763 * fix(server): stop Codex threads with queued follow-ups by @t3dotgg in pingdotgg/t3code#5762 * fix(web): usage page loses the cost quality panel, gains a back button by @t3dotgg in pingdotgg/t3code#5756 * feat(server): agents can now open the images you paste into chat by @t3dotgg in pingdotgg/t3code#5757 * fix(web): pinned reorder no longer reshuffles while writes land by @t3dotgg in pingdotgg/t3code#5767 * feat(web): overhaul project settings into a real settings page by @t3dotgg in pingdotgg/t3code#5768 * fix(web): usage totals no longer jump while devices report in by @t3dotgg in pingdotgg/t3code#5772 * fix(server): settle no longer leaves monitors and dev servers running by @t3dotgg in pingdotgg/t3code#5774 * feat: pick worktree or current checkout per project by @t3dotgg in pingdotgg/t3code#5766 * fix(web): sidebar rows show the branch again, not a truncated plan step by @t3dotgg in pingdotgg/t3code#5776 * feat(server): vp run migrate-dev-db seeds worktree dev dbs with real data by @t3dotgg in pingdotgg/t3code#5773 * feat(web): keep unsent drafts one click away in the sidebar by @t3dotgg in pingdotgg/t3code#5777 * feat(web): project icons can be chosen manually by @t3dotgg in pingdotgg/t3code#5775 * fix(server): one greedy agent process no longer takes down the whole server by @t3dotgg in pingdotgg/t3code#5788 * ci: label-gated hosted-web preview deploys by @t3dotgg in pingdotgg/t3code#5465 * Add cross-platform mobile usage dashboard by @juliusmarminge in pingdotgg/t3code#5743 * fix(web): preserve desktop route during Clerk auth by @wobsoriano in pingdotgg/t3code#5770 * fix(web): match create theme and import theme buttons to the standard outline style by @UtkarshUsername in pingdotgg/t3code#5860 * fix(server): favicon resolution no longer pins the event loop by @murenovich in pingdotgg/t3code#5538 * fix(shared): bound the file-link label so bracket runs stop rescanning by @tsouth89 in pingdotgg/t3code#5782 * fix(web): thread title button no longer eats the drag area by @nathangerday in pingdotgg/t3code#5857 * fix(web): unify usage page chrome by @t3-code[bot] in pingdotgg/t3code#5823 * fix(shell): add ~/.local/bin to the Windows CLI resolver so native-installed providers are found by @arhxam in pingdotgg/t3code#5074 * fix(web): match settings search shortcut styling to command palette's by @UtkarshUsername in pingdotgg/t3code#5841 * fix(mobile): long-pressing a thread row no longer navigates into the thread by @juliusmarminge in pingdotgg/t3code#5901 * fix(server): usage no longer double-counts forked Codex sessions by @t3dotgg in pingdotgg/t3code#5887 * fix(server): sandbox user-provided SVGs by @t3dotgg in pingdotgg/t3code#5916 * fix(web): match usage titlebar text styling by @t3-code[bot] in pingdotgg/t3code#5897 * Move project settings to contextual project routes by @juliusmarminge in pingdotgg/t3code#5923 * Retain thread sidebar data when navigating to /settings so back navigation is instant by @juliusmarminge in pingdotgg/t3code#5930 * Automate production mobile EAS releases by @juliusmarminge in pingdotgg/t3code#5609 * Add settings and usage breadcrumbs by @juliusmarminge in pingdotgg/t3code#5929 * fix(web): correct model picker trigger padding by @Chrono-byte in pingdotgg/t3code#5935 * fix(web): show worktree icon in sidebar v2 by @tris203 in pingdotgg/t3code#5909 * fix(web): enable restore defaults after theme mix changes by @Lucenx9 in pingdotgg/t3code#5928 * fix(web): trait menu closes after you pick a level by @t3dotgg in pingdotgg/t3code#5879 * fix(web): align project name with headline by @carterwsmith in pingdotgg/t3code#5864 * fix(web): update pills use readable theme foregrounds by @chrisdeeming in pingdotgg/t3code#5938 * fix(web): use themed confirmation dialogs by @StiensWout in pingdotgg/t3code#5624 * fix(web): use import/export-appropriate icons for theme buttons by @UtkarshUsername in pingdotgg/t3code#5964 * fix(mobile): detect PowerShell cmdlet errors in work log rows by @myacoub91 in pingdotgg/t3code#5726 * fix(mobile): stop Android user bubbles with code blocks from overlapping by @Brechard in pingdotgg/t3code#5659 * fix(mobile): parse EAS fingerprint JSON by @juliusmarminge in pingdotgg/t3code#5991 ## New Contributors * @chrisdeeming made their first contribution in pingdotgg/t3code#5270 * @wobsoriano made their first contribution in pingdotgg/t3code#5770 * @murenovich made their first contribution in pingdotgg/t3code#5538 * @tsouth89 made their first contribution in pingdotgg/t3code#5782 * @nathangerday made their first contribution in pingdotgg/t3code#5857 * @carterwsmith made their first contribution in pingdotgg/t3code#5864 * @myacoub91 made their first contribution in pingdotgg/t3code#5726 **Full Changelog**: pingdotgg/t3code@v0.0.32...v0.0.33 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.33
## What's Changed * fix(web): use import/export-appropriate icons for theme buttons by @UtkarshUsername in pingdotgg/t3code#5964 * fix(mobile): detect PowerShell cmdlet errors in work log rows by @myacoub91 in pingdotgg/t3code#5726 * fix(mobile): stop Android user bubbles with code blocks from overlapping by @Brechard in pingdotgg/t3code#5659 * fix(mobile): parse EAS fingerprint JSON by @juliusmarminge in pingdotgg/t3code#5991 ## New Contributors * @myacoub91 made their first contribution in pingdotgg/t3code#5726 **Full Changelog**: pingdotgg/t3code@v0.0.33-nightly.20260810.1056...v0.0.34-nightly.20260810.1059 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260810.1059
Problem
The production OTA workflow pipes
eas fingerprint:generate --jsondirectly intojq. EAS still writes a human-readable environment notice to stdout before the JSON document, so the workflow fails with a parse error before publishing an OTA.Fix
Discard the stdout prefix before the JSON document, then require a non-empty string fingerprint hash before querying compatible production builds.
Impact
Production OTA runs can compute their environment-aware fingerprint and continue to compatibility checking and publication.
Validation
jqpipeline locallyvp fmt --check .github/workflows/mobile-eas-production.ymlvp lint --report-unused-disable-directivesgit diff --checkImplemented with Codex (GPT-5) in T3 Code.
Note
Fix EAS fingerprint JSON parsing in mobile EAS production workflow
The
eas fingerprint:generatecommand sometimes emits non-JSON lines before the JSON object. The workflow now strips any leading non-JSON output viasedbefore piping tojq, and thejqfilter is tightened to-er ".hash | select(type == \"string\" and length > 0)"so the step fails explicitly if no valid hash is extracted.Macroscope summarized 0907fdf.
Note
Low Risk
GitHub Actions-only change to shell parsing in the mobile EAS production workflow; no app runtime, auth, or data paths.
Overview
Fixes production fingerprint-gated OTA when
eas fingerprint:generate --jsonprints a leading environment notice on stdout, which broke directjqparsing and stopped OTAs from publishing.The workflow now keeps only output from the first
{(sed -n '/^{/,$p') beforejq, and uses-erwith a filter that requires a non-empty string.hashso the step fails clearly instead of continuing with a bad fingerprint.Reviewed by Cursor Bugbot for commit 0907fdf. Bugbot is set up for automated code reviews on this repo. Configure here.