Repository navigation
fix(mobile): stop the work-row shimmer from updating every frame - #28530
Conversation
The active work-row shimmer ran a native-driver timing loop that advanced every frame, including through its pause, so the compositor redrew at full rate for as long as a turn streamed (pingdotgg#28113). The sweep now moves in 12 timed steps over the same 1350 ms on a native Animated value, with no timer during the 1450 ms pause. Each step is one native node update without a React render. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The matching Android client is now available, so the draft blocker in my previous validation comment is resolved. No code changed. Head remains
The backend and Metro ran from this head on corex, with disposable test state. With the free Replay provider, I sent a turn through the composer and watched the work row stream to completion. A separate turn passed background/resume: Stop agent was present both before Home and after returning, then disappeared when the turn completed. I inspected the recordings. The PR body now embeds these current-fingerprint Android recordings instead of the older-client compatibility clip. The iOS before/after recordings remain valid for this unchanged head. They used the same Simlock iPad mini A17 Pro, iOS 27.0, and native T3 Code Dev 2.2.0 client, fingerprint Fetched main is Unproven: physical iPhone power consumption, compositor frame counts and Release-build performance. The recordings establish visible behavior; the code and focused scheduler test establish 12 progress updates per sweep and none during the pause. The PR continues to use Refs rather than claiming measured power savings. GitHub has marked the PR ready for review. All eight required checks pass. Macroscope correctness, approvability, Effect conventions, and test signal checks now pass too; its approvability review approved this head. No review findings remain open. The current live PR base snapshot is |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — The mobile work-row shimmer now advances in 12 timed steps instead of updating every frame. The change is limited to presentation and preserves reduced-motion and lifecycle safeguards. Notes:
You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
The ready-report audit found three evidence gaps. I am reopening verification and keeping this PR in draft until they are resolved.
The existing development-client recordings still show visible behavior; they do not establish these performance measurements. Earlier SDK discovery used package |
R5 is resolved for native cadence in the instrumented iOS Debug simulator. The independent evidence review recounted all 16 complete cycles from native logs and verified graph attribution and source provenance. R6, the POCO F4 Release comparison, remains open. This PR stays in draft. Compared main
Each complete main cycle had 81–82 progress writes during the sweep and 83–88 during the plateau. Each complete head cycle had exactly 12 positive writes and zero during its quiet gap. Matched interior 1449 ms pause windows contain 82–86 writes on main and zero on head. The nodes remain mounted throughout those intervals. Lifetime totals include setup zeros and partial final sweeps. The observer hooks native setters and Main windows use an observed zero reset, plateau boundary and next reset. Head windows use first through last positive step, then the open interval until the next 1/12. Head quiet gaps measured 1564–1567 ms, including the next first-step delay. Observed head periods were 2849–2917 ms. These traces do not establish an exact 2800 ms runtime period. Self-timed observer bookkeeping averaged about 16–17 microseconds per logged call, with incomplete overhead accounting. Recording and the shared simulator host add overhead. Zero RN NativeAnimated display steps does not prove app-wide compositor or GPU idleness. The fixture project lacked a Git root, so checkpoint capture failed, while all four Replay turns and active rows completed normally. Unproven: physical iPhone power, battery savings, compositor redraw counts, Release or uninstrumented timing. This evidence does not establish the issue's ~65 mW estimate or Android Release performance. Before, first measured main turn: After, first measured head turn: All observed cycle windowsrevision,turn,node,cycle,start_t,plateau_t,next_start_t,sweep_span_ms,pause_span_ms,cycle_ms,sweep_writes,pause_writes,sweep_interval_median_ms,pause_interval_median_ms,window_definition
main,1,27,1,494723.534179125,494724.900595917,494726.350587417,1366.4167920360342,1449.991500005126,2816.40829204116,82,87,16.664333001244813,16.66581249446608,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,1,27,2,494726.350587417,494727.700604792,494729.16720475,1350.0173749634996,1466.5999580174685,2816.617332980968,81,84,16.662417008774355,16.66575000854209,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,1,27,3,494729.16720475,494730.533945917,494731.983883042,1366.7411669739522,1449.9371250276454,2816.6782920015976,82,87,16.6663330164738,16.663854010403156,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,1,27,4,494731.983883042,494733.350507083,494734.800558083,1366.6240409947932,1450.050999992527,2816.6750409873202,82,87,16.66274998569861,16.66404149727896,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,2,45,1,494777.467395542,494778.833972917,494780.283881083,1366.5773749817163,1449.908166017849,2816.4855409995653,82,87,16.667332965880632,16.665145492879674,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,2,45,2,494780.283881083,494781.650607,494783.100575042,1366.7259169742465,1449.9680420267396,2816.693959000986,82,87,16.663708025589585,16.663312999298796,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,2,45,3,494783.100575042,494784.450641667,494785.917211,1350.0666249892674,1466.5693329880014,2816.635957977269,81,88,16.661708505125716,16.66645798832178,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
main,2,45,4,494785.917211,494787.267181625,494788.717199875,1349.9706250149757,1450.018249975983,2799.9888749909587,81,83,16.669104486936703,16.666334006004035,"sweep [native zero reset, first progress reaching plateau); pause [plateau, next zero reset)"
head,1,19,1,494931.684259792,494932.98432975,494934.55118175,1300.0699580297805,1566.852000018116,2866.9219580478966,12,0,116.71337502775714,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,1,19,2,494934.55118175,494935.850977667,494937.417635833,1299.7959170024842,1566.6581659461372,2866.4540829486214,12,0,116.60991702228785,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,1,19,3,494937.417635833,494938.700975792,494940.267376417,1283.3399590454064,1566.4006249862723,2849.7405840316787,12,0,116.65545904543251,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,1,19,4,494940.267376417,494941.620234625,494943.184349833,1352.858208003454,1564.1152079915628,2916.9734159950167,12,0,116.77200003759935,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,2,38,1,494977.991940417,494979.2842515,494980.85089275,1292.3110830015503,1566.6412500431761,2858.9523330447264,12,0,116.69449997134507,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,2,38,2,494980.85089275,494982.134424917,494983.701012,1283.5321669699624,1566.5870829834603,2850.1192499534227,12,0,116.64104100782424,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,2,38,3,494983.701012,494984.984312042,494986.551182542,1283.3000420359895,1566.8704999843612,2850.1705420203507,12,0,116.64908396778628,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
head,2,38,4,494986.551182542,494987.884233333,494989.451018292,1333.0507909995504,1566.784958995413,2899.8357499949634,12,0,116.6862910031341,,"write span [native step 1/12, native step 12/12]; quiet open interval (12/12, next 1/12); no cycle-start reset is emitted"
Matched interior pausesrevision,turn,node,cycle,start_t,end_t,duration_ms,native_progress_writes,targeted_display_steps
main,1,27,1,494724.90109591704,494726.35009591706,1449,86,86
main,1,27,2,494727.701104792,494729.15010479203,1449,82,82
main,1,27,3,494730.534445917,494731.983445917,1449,86,86
main,1,27,4,494733.351007083,494734.80000708305,1449,86,86
main,2,45,1,494778.834472917,494780.28347291704,1449,86,86
main,2,45,2,494781.651107,494783.10010700003,1449,86,86
main,2,45,3,494784.451141667,494785.90014166705,1449,86,86
main,2,45,4,494787.26768162503,494788.71668162505,1449,82,82
head,1,19,1,494932.98482975,494934.43382975005,1449,0,0
head,1,19,2,494935.85147766705,494937.3004776671,1449,0,0
head,1,19,3,494938.70147579204,494940.15047579206,1449,0,0
head,1,19,4,494941.62073462503,494943.06973462505,1449,0,0
head,2,38,1,494979.2847515,494980.7337515,1449,0,0
head,2,38,2,494982.134924917,494983.58392491704,1449,0,0
head,2,38,3,494984.98481204204,494986.43381204206,1449,0,0
head,2,38,4,494987.884733333,494989.33373333304,1449,0,0
Selected raw native boundary records{"t":494724.900595917,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.488095238086}
{"t":494724.900616458,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494724.917216333,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.494047619037}
{"t":494724.917231708,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494724.933890125,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.500000000008}
{"t":494724.933905667,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494724.950549583,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.505952380959}
{"t":494724.950565292,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494726.267212458,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.976190476192}
{"t":494726.267227667,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494726.283863458,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.982142857143}
{"t":494726.283877083,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494726.300544833,"event":"value","tag":27,"class":"RCTValueAnimatedNode","v":0.988095238094}
{"t":494726.300559583,"event":"value","tag":31,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494932.9842817918,"event":"set_command","data":{"tag":19,"v":1}}
{"t":494932.98432975,"event":"value","tag":19,"class":"RCTValueAnimatedNode","v":1}
{"t":494932.984368417,"event":"value","tag":20,"class":"RCTInterpolationAnimatedNode","v":-129}
{"t":494932.984926125,"event":"value","tag":24,"class":"RCTInterpolationAnimatedNode","v":129}
{"t":494934.5511291251,"event":"set_command","data":{"tag":19,"v":0.08333333333333333}}
{"t":494934.55118175,"event":"value","tag":19,"class":"RCTValueAnimatedNode","v":0.0833333358169}
{"t":494934.551228375,"event":"value","tag":20,"class":"RCTInterpolationAnimatedNode","v":55.2499995008}
Native observer source#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
#import <objc/runtime.h>
#import <objc/message.h>
#include <stdio.h>
static FILE *cadenceFile; static double cost=0; static unsigned long calls=0;
static id get(id o, NSString *key){ return [o valueForKey:key]; }
static double now(void){return CACurrentMediaTime();}
static void event(NSString *kind, id data){double t=now(); @autoreleasepool {NSData *j=[NSJSONSerialization dataWithJSONObject:@{@"t":@(t),@"event":kind,@"data":data?:@{}} options:NSJSONWritingFragmentsAllowed error:nil]; fwrite(j.bytes,1,j.length,cadenceFile); fputc('\n',cadenceFile);} cost+=now()-t;calls++;}
static void (*oldCreate)(id,SEL,id,id);static void create(id o,SEL s,id tag,id cfg){oldCreate(o,s,tag,cfg);event(@"create",@{@"tag":tag,@"config":cfg});}
static void (*oldConnect)(id,SEL,id,id);static void connectN(id o,SEL s,id p,id c){oldConnect(o,s,p,c);event(@"connect",@{@"parent":p,@"child":c});}
static void (*oldView)(id,SEL,id,id,id);static void view(id o,SEL s,id n,id v,id name){oldView(o,s,n,v,name);event(@"view",@{@"node":n,@"view":v,@"name":name?:@""});}
static void (*oldDrop)(id,SEL,id);static void drop(id o,SEL s,id tag){event(@"drop",@{@"tag":tag});oldDrop(o,s,tag);}
static void (*oldSet)(id,SEL,double);static void set(id o,SEL s,double v){double t=now(); NSNumber *tag=get(o,@"nodeTag"); const char *cl=class_getName(object_getClass(o));fprintf(cadenceFile,"{\"t\":%.9f,\"event\":\"value\",\"tag\":%lld,\"class\":\"%s\",\"v\":%.12g}\n",t,tag.longLongValue,cl,v);cost+=now()-t;calls++;oldSet(o,s,v);}
static void (*oldCommand)(id,SEL,id,id);static void command(id o,SEL s,id tag,id value){event(@"set_command",@{@"tag":tag,@"v":value});oldCommand(o,s,tag,value);}
static void (*oldStart)(id,SEL,id,id,id,id);static void start(id o,SEL s,id aid,id tag,id cfg,id cb){event(@"start",@{@"id":aid,@"tag":tag,@"config":cfg});oldStart(o,s,aid,tag,cfg,cb);}
static void (*oldStep)(id,SEL,id);static void step(id o,SEL s,id link){double t=now(); NSSet *active=get(o,@"activeAnimations"); NSMutableArray *tags=[NSMutableArray new];for(id driver in active){id n=get(driver,@"valueNode"); if(n)[tags addObject:get(n,@"nodeTag")];}event(@"display_step",@{@"nodes":tags,@"display_t":get(link,@"timestamp")});cost+=now()-t;oldStep(o,s,link);}
static void hook(const char *cn,const char *sn,IMP imp,IMP *old){Class c=objc_getClass(cn);Method m=class_getInstanceMethod(c,sel_registerName(sn));if(m){*old=method_setImplementation(m,imp);event(@"hook",@{@"class":@(cn),@"selector":@(sn)});}else event(@"missing",@{@"class":@(cn),@"selector":@(sn)});}
__attribute__((visibility("default"))) void cadence_flush(void){event(@"overhead",@{@"calls":@(calls),@"seconds":@(cost)});fflush(cadenceFile);}
__attribute__((visibility("default"))) void cadence_mark(const char *s){event(@"mark",@(s));fflush(cadenceFile);}
__attribute__((constructor)) static void load(void){@autoreleasepool {NSString *p=[NSTemporaryDirectory() stringByAppendingPathComponent:@"cadence-native.ndjson"];cadenceFile=fopen(p.UTF8String,"a");setvbuf(cadenceFile,NULL,_IOFBF,262144);event(@"observer_loaded",@{@"path":p,@"pid":@([[NSProcessInfo processInfo] processIdentifier]),@"wall":@([[NSDate date] timeIntervalSince1970])});
hook("RCTNativeAnimatedNodesManager","createAnimatedNode:config:",(IMP)create,(IMP*)&oldCreate);
hook("RCTNativeAnimatedNodesManager","connectAnimatedNodes:childTag:",(IMP)connectN,(IMP*)&oldConnect);
hook("RCTNativeAnimatedNodesManager","connectAnimatedNodeToView:viewTag:viewName:",(IMP)view,(IMP*)&oldView);
hook("RCTNativeAnimatedNodesManager","dropAnimatedNode:",(IMP)drop,(IMP*)&oldDrop);
hook("RCTValueAnimatedNode","setValue:",(IMP)set,(IMP*)&oldSet);
hook("RCTNativeAnimatedNodesManager","setAnimatedNodeValue:value:",(IMP)command,(IMP*)&oldCommand);
hook("RCTNativeAnimatedNodesManager","startAnimatingNode:nodeTag:config:endCallback:",(IMP)start,(IMP*)&oldStart);
hook("RCTNativeAnimatedNodesManager","stepAnimations:",(IMP)step,(IMP*)&oldStep);fflush(cadenceFile);}}
Independent evidence auditR5 evidence auditR5: resolved. Severity was blocker for missing native cadence evidence. The new trace establishes the work-row's native sweep and pause cadence in the instrumented iOS Debug simulator. No R5 blocker remains within that scope. R6, the Android Release comparison, remains open with the parent. This is not a PR readiness assessment. Reviewed PR #28530 at head Evidence directory: Independent recountI wrote and ran
Cycles were discovered from observed native zero resets on main and observed returns to 1/12 on head. Each complete head group contains the ordered native values 1/12 through 12/12 within float precision. Every head root write pairs with a native set command within 1 ms. Both native interpolation outputs follow every positive root write, including all 55 and 56 positive head writes. Each head lifetime also contains four initial zeros and a final partial sweep. Counts were not inferred from configured timer durations. Attribution and windowsI segmented logs by observer-loaded PID before reconstructing graphs. Main's earlier PID 53628 contains only observer setup, so it cannot contaminate measured PID 56410. Head PID is 60098. All eight hooks succeeded in both measured processes. Each sustained root has two paths through interpolation, translateX transform, style and props to connected view tags. Main paths end at views 1780/1808 and 2104/2132; head paths end at 1362/1390 and 1720/1748. Their paired ranges are ±72 to ∓129, with main's flat third endpoint. This matches the exact Main counts use [observed zero reset, first plateau write) and [plateau write, next reset). Head counts include first through last positive step, then the open interval until the next 1/12. These are different boundaries and must be named. The head quiet gaps are 1564.115–1566.870 ms, including the next sweep's first-step delay. In every matched 1449 ms interior pause window, main has 82–86 root writes and target display steps; head has zero. Root and interpolation nodes remain mounted throughout. Head repeat periods are 2849.741–2916.973 ms, so an exact 2800 ms runtime period is unproven. Observer and provenance limits
The observer loads before the measured lifetimes. Flush markers are after the respective drops: main 494745.998/494806.827, head 494968.730/495181.630. The four flush transcripts attach, flush and detach with no breakpoint commands. The delayed final head flush is about 191 seconds after its row dropped. The command sequence and logs support the reported absence of measurement-time debugger stops, although the archive is not a continuous debugger audit. Self-timed bookkeeping is 97.256 ms/6179 calls on main and 10.868 ms/625 on head. These omit some dispatch/OS overhead and double-count nested display-event bookkeeping. They are not an uninstrumented performance control. I byte-compared both archived work-log sources and the head helper with the specified git objects. They match. The replay player matches both revisions after normalizing only SCENARIOS. The fixture hash is All 55 artifact-manifest entries and all four MP4 hashes verify. Contact sheets visibly cover trigger, Running Replay and completion. They supplement the native trace and do not establish its cadence. The trace's periods do not use video frame rate. The measurement JSON preserves selected invocations and complete outputs for those invocations; it does not preserve every setup/Metro/compiler command's raw output. This limits command-level provenance, without undermining the counted native events. Safe claim and remaining workSafe: on these exact JS revisions using the matching instrumented Debug native client, eight complete observed cycles per revision change from 81–82 native progress writes during each sweep and 83–88 during its plateau to 12 positive writes and zero quiet-gap writes. Head also has zero observed RN NativeAnimated manager display callbacks in the captured process. Unproven: physical iPhone behavior, Release or uninstrumented timing, power/battery savings, GPU/compositor redraw counts or app-wide idleness. This subtask also does not prove focus/background/Reduce Motion regressions, Android Release behavior, or a full PR-ready result. A pending timeout spans the pause; say "no progress updates during the pause," not "no timer exists." Parent should publish/link the new R5 evidence and retain these limits. R6 is still open. No device UI, build, app test, server, source edit, post or push was performed by this reviewer. All observed target root writesNative timestamps are relative to root creation, rounded to 0.001 ms. Native values are printed to nine significant digits. These are observations, including setup zeros and final partial sweeps. case,ms_since_create,progress
main1,20.559,0
main1,37.224,0.00595238095
main1,53.799,0.0119047619
main1,70.440,0.0178571429
main1,87.105,0.0238095238
main1,103.791,0.0297619048
main1,120.473,0.0357142857
main1,137.125,0.0416666667
main1,153.775,0.0476190476
main1,170.487,0.0535714286
main1,186.891,0.0595238095
main1,203.571,0.0654761905
main1,220.363,0.0714285714
main1,237.013,0.0773809524
main1,253.644,0.0833333333
main1,270.297,0.0892857143
main1,286.994,0.0952380952
main1,303.680,0.101190476
main1,320.322,0.107142857
main1,336.993,0.113095238
main1,353.665,0.119047619
main1,370.365,0.125
main1,386.995,0.130952381
main1,403.658,0.136904762
main1,420.363,0.142857143
main1,436.982,0.148809524
main1,453.705,0.154761905
main1,470.412,0.160714286
main1,487.017,0.166666667
main1,503.628,0.172619048
main1,520.287,0.178571429
main1,536.945,0.18452381
main1,553.622,0.19047619
main1,570.281,0.196428571
main1,586.957,0.202380952
main1,603.680,0.208333333
main1,620.426,0.214285714
main1,637.035,0.220238095
main1,653.677,0.226190476
main1,670.364,0.232142857
main1,687.020,0.238095238
main1,703.659,0.244047619
main1,720.321,0.25
main1,736.979,0.255952381
main1,753.670,0.261904762
main1,770.318,0.267857143
main1,786.969,0.273809524
main1,803.718,0.279761905
main1,820.392,0.285714286
main1,837.000,0.291666667
main1,853.658,0.297619048
main1,870.271,0.303571429
main1,886.963,0.30952381
main1,903.639,0.31547619
main1,920.298,0.321428571
main1,937.003,0.327380952
main1,953.665,0.333333333
main1,970.299,0.339285714
main1,986.952,0.345238095
main1,1003.627,0.351190476
main1,1020.286,0.357142857
main1,1036.908,0.363095238
main1,1053.589,0.369047619
main1,1070.261,0.375
main1,1086.942,0.380952381
main1,1103.620,0.386904762
main1,1120.332,0.392857143
main1,1137.001,0.398809524
main1,1153.667,0.404761905
main1,1170.332,0.410714286
main1,1186.967,0.416666667
main1,1203.681,0.422619048
main1,1220.336,0.428571429
main1,1236.962,0.43452381
main1,1253.635,0.44047619
main1,1270.314,0.446428571
main1,1287.010,0.452380952
main1,1303.630,0.458333333
main1,1320.332,0.464285714
main1,1336.984,0.470238095
main1,1353.659,0.476190476
main1,1370.317,0.482142857
main1,1386.976,0.488095238
main1,1403.597,0.494047619
main1,1420.270,0.5
main1,1436.930,0.505952381
main1,1453.663,0.511904762
main1,1470.281,0.517857143
main1,1486.970,0.523809524
main1,1503.617,0.529761905
main1,1520.265,0.535714286
main1,1536.923,0.541666667
main1,1553.645,0.547619048
main1,1570.264,0.553571429
main1,1586.926,0.55952381
main1,1603.587,0.56547619
main1,1620.305,0.571428571
main1,1636.925,0.577380952
main1,1653.594,0.583333333
main1,1670.258,0.589285714
main1,1686.936,0.595238095
main1,1703.593,0.601190476
main1,1720.264,0.607142857
main1,1736.994,0.613095238
main1,1753.631,0.619047619
main1,1770.270,0.625
main1,1786.940,0.630952381
main1,1803.601,0.636904762
main1,1820.261,0.642857143
main1,1836.927,0.648809524
main1,1853.619,0.654761905
main1,1870.248,0.660714286
main1,1886.928,0.666666667
main1,1903.617,0.672619048
main1,1920.269,0.678571429
main1,1936.965,0.68452381
main1,1953.634,0.69047619
main1,1970.272,0.696428571
main1,1986.939,0.702380952
main1,2003.617,0.708333333
main1,2020.271,0.714285714
main1,2036.984,0.720238095
main1,2053.593,0.726190476
main1,2070.258,0.732142857
main1,2086.985,0.738095238
main1,2103.659,0.744047619
main1,2120.284,0.75
main1,2136.921,0.755952381
main1,2153.605,0.761904762
main1,2170.252,0.767857143
main1,2186.940,0.773809524
main1,2203.589,0.779761905
main1,2220.262,0.785714286
main1,2236.920,0.791666667
main1,2253.587,0.797619048
main1,2270.291,0.803571429
main1,2286.919,0.80952381
main1,2303.578,0.81547619
main1,2320.252,0.821428571
main1,2336.918,0.827380952
main1,2353.583,0.833333333
main1,2370.248,0.839285714
main1,2386.934,0.845238095
main1,2403.584,0.851190476
main1,2420.256,0.857142857
main1,2436.913,0.863095238
main1,2453.580,0.869047619
main1,2470.246,0.875
main1,2486.924,0.880952381
main1,2503.585,0.886904762
main1,2520.261,0.892857143
main1,2536.956,0.898809524
main1,2553.583,0.904761905
main1,2570.265,0.910714286
main1,2586.921,0.916666667
main1,2603.598,0.922619048
main1,2620.254,0.928571429
main1,2636.916,0.93452381
main1,2653.577,0.94047619
main1,2670.245,0.946428571
main1,2686.916,0.952380952
main1,2703.599,0.958333333
main1,2720.265,0.964285714
main1,2736.915,0.970238095
main1,2753.593,0.976190476
main1,2770.244,0.982142857
main1,2786.925,0.988095238
main1,2803.662,0.994047619
main1,2820.302,1
main1,2836.968,0
main1,2853.627,0.00595238095
main1,2871.431,0.0119047619
main1,2886.959,0.0178571429
main1,2903.621,0.0238095238
main1,2920.331,0.0297619048
main1,2936.980,0.0357142857
main1,2953.648,0.0416666667
main1,2970.332,0.0476190476
main1,2986.986,0.0535714286
main1,3003.690,0.0595238095
main1,3020.317,0.0654761905
main1,3037.069,0.0714285714
main1,3053.681,0.0773809524
main1,3070.369,0.0833333333
main1,3086.944,0.0892857143
main1,3103.692,0.0952380952
main1,3120.388,0.101190476
main1,3137.043,0.107142857
main1,3153.647,0.113095238
main1,3170.458,0.119047619
main1,3187.034,0.125
main1,3203.668,0.130952381
main1,3220.339,0.136904762
main1,3236.990,0.142857143
main1,3253.652,0.148809524
main1,3270.343,0.154761905
main1,3286.995,0.160714286
main1,3303.646,0.166666667
main1,3320.324,0.172619048
main1,3336.987,0.178571429
main1,3353.649,0.18452381
main1,3370.313,0.19047619
main1,3386.988,0.196428571
main1,3403.653,0.202380952
main1,3420.317,0.208333333
main1,3436.967,0.214285714
main1,3453.862,0.220238095
main1,3470.361,0.226190476
main1,3487.072,0.232142857
main1,3503.697,0.238095238
main1,3520.303,0.244047619
main1,3536.952,0.25
main1,3553.628,0.255952381
main1,3570.330,0.261904762
main1,3586.998,0.267857143
main1,3603.659,0.273809524
main1,3620.341,0.279761905
main1,3636.976,0.285714286
main1,3653.613,0.291666667
main1,3670.250,0.297619048
main1,3686.986,0.303571429
main1,3703.645,0.30952381
main1,3720.317,0.31547619
main1,3736.980,0.321428571
main1,3753.636,0.327380952
main1,3770.338,0.333333333
main1,3786.992,0.339285714
main1,3803.627,0.345238095
main1,3820.285,0.351190476
main1,3837.017,0.357142857
main1,3853.678,0.363095238
main1,3871.091,0.369047619
main1,3887.020,0.375
main1,3903.596,0.380952381
main1,3920.294,0.386904762
main1,3936.950,0.392857143
main1,3953.664,0.398809524
main1,3970.285,0.404761905
main1,3986.946,0.410714286
main1,4003.616,0.416666667
main1,4020.342,0.422619048
main1,4037.012,0.428571429
main1,4053.696,0.43452381
main1,4070.324,0.44047619
main1,4086.992,0.446428571
main1,4103.649,0.452380952
main1,4120.336,0.458333333
main1,4137.096,0.464285714
main1,4153.687,0.470238095
main1,4170.357,0.476190476
main1,4186.985,0.482142857
main1,4203.675,0.488095238
main1,4220.293,0.494047619
main1,4236.925,0.5
main1,4253.657,0.505952381
main1,4270.263,0.511904762
main1,4286.924,0.517857143
main1,4303.595,0.523809524
main1,4320.253,0.529761905
main1,4336.918,0.535714286
main1,4353.587,0.541666667
main1,4370.245,0.547619048
main1,4386.925,0.553571429
main1,4403.622,0.55952381
main1,4420.255,0.56547619
main1,4436.922,0.571428571
main1,4453.589,0.577380952
main1,4470.257,0.583333333
main1,4486.918,0.589285714
main1,4503.581,0.595238095
main1,4520.244,0.601190476
main1,4536.916,0.607142857
main1,4553.595,0.613095238
main1,4570.251,0.619047619
main1,4586.925,0.625
main1,4603.580,0.630952381
main1,4620.258,0.636904762
main1,4636.919,0.642857143
main1,4653.593,0.648809524
main1,4670.315,0.654761905
main1,4686.921,0.660714286
main1,4703.582,0.666666667
main1,4720.265,0.672619048
main1,4736.924,0.678571429
main1,4753.605,0.68452381
main1,4770.266,0.69047619
main1,4786.918,0.696428571
main1,4803.652,0.702380952
main1,4820.325,0.708333333
main1,4836.932,0.714285714
main1,4853.596,0.720238095
main1,4871.129,0.726190476
main1,4886.932,0.732142857
main1,4903.575,0.738095238
main1,4920.258,0.744047619
main1,4936.951,0.75
main1,4953.589,0.755952381
main1,4970.253,0.761904762
main1,4986.913,0.767857143
main1,5003.584,0.773809524
main1,5020.264,0.779761905
main1,5036.917,0.785714286
main1,5053.599,0.791666667
main1,5070.257,0.797619048
main1,5086.920,0.803571429
main1,5103.603,0.80952381
main1,5120.299,0.81547619
main1,5136.959,0.821428571
main1,5153.594,0.827380952
main1,5170.320,0.833333333
main1,5186.939,0.839285714
main1,5203.604,0.845238095
main1,5220.250,0.851190476
main1,5236.951,0.857142857
main1,5253.623,0.863095238
main1,5270.349,0.869047619
main1,5287.050,0.875
main1,5303.598,0.880952381
main1,5320.259,0.886904762
main1,5336.918,0.892857143
main1,5353.592,0.898809524
main1,5370.261,0.904761905
main1,5386.965,0.910714286
main1,5403.704,0.916666667
main1,5420.303,0.922619048
main1,5436.957,0.928571429
main1,5453.645,0.93452381
main1,5470.347,0.94047619
main1,5487.005,0.946428571
main1,5503.671,0.952380952
main1,5520.286,0.958333333
main1,5537.025,0.964285714
main1,5553.707,0.970238095
main1,5640.304,0.976190476
main1,5653.585,0
main1,5670.229,0.00448822917
main1,5686.897,0.0104406101
main1,5703.548,0.0163929911
main1,5720.217,0.022345372
main1,5736.877,0.028297753
main1,5753.544,0.0342501339
main1,5770.213,0.0402025149
main1,5786.877,0.0461548958
main1,5803.583,0.0521072768
main1,5820.377,0.0580596577
main1,5837.010,0.0640120387
main1,5853.699,0.0699644196
main1,5870.216,0.0759168006
main1,5887.014,0.0818691815
main1,5903.661,0.0878215625
main1,5920.343,0.0937739435
main1,5936.981,0.0997263244
main1,5953.711,0.105678705
main1,5970.342,0.111631086
main1,5986.985,0.117583467
main1,6003.649,0.123535848
main1,6020.316,0.129488229
main1,6036.989,0.13544061
main1,6053.655,0.141392991
main1,6070.310,0.147345372
main1,6086.990,0.153297753
main1,6103.656,0.159250134
main1,6120.314,0.165202515
main1,6136.966,0.171154896
main1,6153.721,0.177107277
main1,6170.329,0.183059658
main1,6187.031,0.189012039
main1,6203.658,0.19496442
main1,6220.317,0.200916801
main1,6237.026,0.206869182
main1,6253.673,0.212821562
main1,6270.313,0.218773943
main1,6286.976,0.224726324
main1,6303.654,0.230678705
main1,6320.324,0.236631086
main1,6336.996,0.242583467
main1,6353.664,0.248535848
main1,6370.320,0.254488229
main1,6387.026,0.26044061
main1,6403.654,0.266392991
main1,6420.328,0.272345372
main1,6436.983,0.278297753
main1,6453.680,0.284250134
main1,6470.384,0.290202515
main1,6487.012,0.296154896
main1,6503.653,0.302107277
main1,6520.321,0.308059658
main1,6536.973,0.314012039
main1,6553.645,0.31996442
main1,6570.311,0.325916801
main1,6586.971,0.331869182
main1,6603.642,0.337821562
main1,6620.329,0.343773943
main1,6636.985,0.349726324
main1,6653.641,0.355678705
main1,6670.300,0.361631086
main1,6686.991,0.367583467
main1,6703.697,0.373535848
main1,6720.383,0.379488229
main1,6737.082,0.38544061
main1,6753.774,0.391392991
main1,6770.468,0.397345372
main1,6786.966,0.403297753
main1,6803.659,0.409250134
main1,6820.557,0.415202515
main1,6837.035,0.421154896
main1,6853.672,0.427107277
main1,6871.115,0.433059658
main1,6886.993,0.439012039
main1,6903.637,0.44496442
main1,6920.340,0.450916801
main1,6936.978,0.456869182
main1,6953.655,0.462821563
main1,6970.313,0.468773943
main1,6986.976,0.474726324
main1,7003.649,0.480678705
main1,7020.326,0.486631086
main1,7036.996,0.492583467
main1,7053.620,0.498535848
main1,7070.271,0.504488229
main1,7086.974,0.51044061
main1,7103.603,0.516392991
main1,7120.316,0.522345372
main1,7136.949,0.528297753
main1,7153.583,0.534250134
main1,7170.247,0.540202515
main1,7186.911,0.546154896
main1,7203.610,0.552107277
main1,7220.263,0.558059658
main1,7236.929,0.564012039
main1,7253.598,0.56996442
main1,7270.261,0.575916801
main1,7286.920,0.581869182
main1,7303.588,0.587821562
main1,7320.289,0.593773943
main1,7336.974,0.599726324
main1,7353.616,0.605678705
main1,7370.303,0.611631086
main1,7386.940,0.617583467
main1,7403.592,0.623535848
main1,7420.272,0.629488229
main1,7436.927,0.63544061
main1,7453.587,0.641392991
main1,7470.256,0.647345372
main1,7486.923,0.653297753
main1,7503.586,0.659250134
main1,7520.252,0.665202515
main1,7536.923,0.671154896
main1,7553.581,0.677107277
main1,7570.255,0.683059658
main1,7586.919,0.689012039
main1,7603.610,0.69496442
main1,7620.252,0.700916801
main1,7636.928,0.706869182
main1,7653.582,0.712821562
main1,7670.246,0.718773943
main1,7686.920,0.724726324
main1,7703.577,0.730678705
main1,7720.261,0.736631086
main1,7736.919,0.742583467
main1,7753.588,0.748535848
main1,7770.262,0.754488229
main1,7786.918,0.76044061
main1,7803.578,0.766392991
main1,7820.260,0.772345372
main1,7836.922,0.778297753
main1,7853.591,0.784250134
main1,7871.212,0.790202515
main1,7886.923,0.796154896
main1,7903.577,0.802107277
main1,7920.248,0.808059658
main1,7936.925,0.814012039
main1,7953.602,0.81996442
main1,7970.261,0.825916801
main1,7986.913,0.831869182
main1,8003.554,0.837821562
main1,8020.266,0.843773943
main1,8036.863,0.849726324
main1,8053.514,0.855678705
main1,8070.175,0.861631086
main1,8086.840,0.867583467
main1,8103.505,0.873535848
main1,8120.174,0.879488229
main1,8136.854,0.88544061
main1,8153.509,0.891392991
main1,8170.264,0.897345372
main1,8186.892,0.903297753
main1,8203.551,0.909250134
main1,8220.220,0.915202515
main1,8236.878,0.921154896
main1,8253.542,0.927107277
main1,8270.206,0.933059658
main1,8286.873,0.939012039
main1,8303.537,0.94496442
main1,8320.371,0.950916801
main1,8336.990,0.956869182
main1,8353.627,0.962821562
main1,8370.283,0.968773943
main1,8386.947,0.974726324
main1,8403.606,0.980678705
main1,8420.292,0.986631086
main1,8436.945,0.992583467
main1,8453.599,0.998535848
main1,8470.263,0
main1,8486.960,0.00595238095
main1,8503.634,0.0119047619
main1,8520.322,0.0178571429
main1,8537.013,0.0238095238
main1,8553.535,0.0297619048
main1,8570.194,0.0357142857
main1,8586.851,0.0416666667
main1,8603.507,0.0476190476
main1,8620.174,0.0535714286
main1,8636.853,0.0595238095
main1,8653.511,0.0654761905
main1,8670.277,0.0714285714
main1,8686.912,0.0773809524
main1,8703.556,0.0833333333
main1,8720.216,0.0892857143
main1,8736.880,0.0952380952
main1,8753.549,0.101190476
main1,8770.228,0.107142857
main1,8786.889,0.113095238
main1,8803.543,0.119047619
main1,8820.223,0.125
main1,8836.883,0.130952381
main1,8853.673,0.136904762
main1,8870.218,0.142857143
main1,8886.870,0.148809524
main1,8903.586,0.154761905
main1,8920.230,0.160714286
main1,8936.891,0.166666667
main1,8953.557,0.172619048
main1,8970.219,0.178571429
main1,8986.882,0.18452381
main1,9003.572,0.19047619
main1,9020.398,0.196428571
main1,9037.014,0.202380952
main1,9053.636,0.208333333
main1,9070.291,0.214285714
main1,9086.992,0.220238095
main1,9103.696,0.226190476
main1,9120.364,0.232142857
main1,9137.004,0.238095238
main1,9153.663,0.244047619
main1,9170.342,0.25
main1,9186.988,0.255952381
main1,9203.649,0.261904762
main1,9220.340,0.267857143
main1,9236.995,0.273809524
main1,9253.651,0.279761905
main1,9270.312,0.285714286
main1,9286.984,0.291666667
main1,9303.649,0.297619048
main1,9320.311,0.303571429
main1,9336.985,0.30952381
main1,9353.648,0.31547619
main1,9370.318,0.321428571
main1,9386.976,0.327380952
main1,9403.650,0.333333333
main1,9420.317,0.339285714
main1,9436.980,0.345238095
main1,9453.654,0.351190476
main1,9470.307,0.357142857
main1,9486.976,0.363095238
main1,9503.653,0.369047619
main1,9520.316,0.375
main1,9536.966,0.380952381
main1,9553.648,0.386904762
main1,9570.347,0.392857143
main1,9586.980,0.398809524
main1,9603.641,0.404761905
main1,9620.314,0.410714286
main1,9636.975,0.416666667
main1,9653.642,0.422619048
main1,9670.304,0.428571429
main1,9686.997,0.43452381
main1,9703.645,0.44047619
main1,9720.343,0.446428571
main1,9737.005,0.452380952
main1,9753.539,0.458333333
main1,9770.400,0.464285714
main1,9786.876,0.470238095
main1,9803.540,0.476190476
main1,9820.334,0.482142857
main1,9836.887,0.488095238
main1,9853.552,0.494047619
main1,9871.829,0.5
main1,9888.414,0.505952381
main1,9905.123,0.511904762
main1,9922.008,0.517857143
main1,9938.628,0.523809524
main1,9956.918,0.529761905
main1,9974.114,0.535714286
main1,9989.813,0.541666667
main1,10006.249,0.547619048
main1,10023.909,0.553571429
main1,10039.297,0.55952381
main1,10056.448,0.56547619
main1,10073.140,0.571428571
main1,10090.183,0.577380952
main1,10107.643,0.583333333
main1,10120.265,0.589285714
main1,10136.971,0.595238095
main1,10153.616,0.601190476
main1,10170.276,0.607142857
main1,10186.932,0.613095238
main1,10203.596,0.619047619
main1,10220.262,0.625
main1,10236.929,0.630952381
main1,10253.592,0.636904762
main1,10270.257,0.642857143
main1,10286.925,0.648809524
main1,10303.620,0.654761905
main1,10320.275,0.660714286
main1,10336.902,0.666666667
main1,10353.572,0.672619048
main1,10370.292,0.678571429
main1,10386.935,0.68452381
main1,10403.577,0.69047619
main1,10420.203,0.696428571
main1,10436.861,0.702380952
main1,10453.514,0.708333333
main1,10470.177,0.714285714
main1,10486.842,0.720238095
main1,10503.513,0.726190476
main1,10520.170,0.732142857
main1,10536.845,0.738095238
main1,10553.617,0.744047619
main1,10570.218,0.75
main1,10586.879,0.755952381
main1,10603.558,0.761904762
main1,10620.176,0.767857143
main1,10636.838,0.773809524
main1,10653.510,0.779761905
main1,10670.196,0.785714286
main1,10686.845,0.791666667
main1,10703.505,0.797619048
main1,10720.176,0.803571429
main1,10736.839,0.80952381
main1,10753.551,0.81547619
main1,10770.226,0.821428571
main1,10786.910,0.827380952
main1,10803.560,0.833333333
main1,10820.220,0.839285714
main1,10836.886,0.845238095
main1,10853.541,0.851190476
main1,10870.214,0.857142857
main1,10886.893,0.863095238
main1,10903.550,0.869047619
main1,10920.207,0.875
main1,10937.051,0.880952381
main1,10953.663,0.886904762
main1,10970.313,0.892857143
main1,10986.976,0.898809524
main1,11003.640,0.904761905
main1,11020.312,0.910714286
main1,11036.981,0.916666667
main1,11053.623,0.922619048
main1,11070.295,0.928571429
main1,11086.948,0.93452381
main1,11103.606,0.94047619
main1,11120.289,0.946428571
main1,11136.977,0.952380952
main1,11153.604,0.958333333
main1,11170.290,0.964285714
main1,11186.939,0.970238095
main1,11203.594,0.976190476
main1,11220.263,0.982142857
main1,11236.997,0.988095238
main1,11253.644,0.994047619
main1,11270.266,1
main1,11286.938,0
main1,11303.613,0.00595238095
main1,11320.307,0.0119047619
main1,11336.997,0.0178571429
main1,11353.657,0.0238095238
main1,11370.305,0.0297619048
main1,11386.980,0.0357142857
main1,11403.662,0.0416666667
main1,11420.319,0.0476190476
main1,11436.985,0.0535714286
main1,11453.651,0.0595238095
main1,11470.316,0.0654761905
main1,11487.003,0.0714285714
main1,11503.697,0.0773809524
main1,11520.325,0.0833333333
main1,11536.981,0.0892857143
main1,11553.653,0.0952380952
main1,11570.308,0.101190476
main1,11586.977,0.107142857
main1,11603.657,0.113095238
main1,11620.319,0.119047619
main1,11636.984,0.125
main1,11653.647,0.130952381
main1,11670.312,0.136904762
main1,11686.987,0.142857143
main1,11703.679,0.148809524
main1,11720.330,0.154761905
main1,11736.982,0.160714286
main1,11753.664,0.166666667
main1,11770.321,0.172619048
main1,11786.983,0.178571429
main1,11803.641,0.18452381
main1,11820.355,0.19047619
main1,11836.982,0.196428571
main1,11853.647,0.202380952
main1,11871.803,0.208333333
main1,11886.988,0.214285714
main1,11903.626,0.220238095
main1,11920.303,0.226190476
main1,11937.014,0.232142857
main1,11953.732,0.238095238
main1,11970.461,0.244047619
main1,11987.034,0.25
main1,12003.825,0.255952381
main1,12020.574,0.261904762
main1,12036.988,0.267857143
main1,12053.640,0.273809524
main1,12070.362,0.279761905
main1,12087.051,0.285714286
main1,12103.663,0.291666667
main1,12120.375,0.297619048
main1,12137.119,0.303571429
main1,12153.726,0.30952381
main1,12170.379,0.31547619
main1,12187.012,0.321428571
main1,12203.672,0.327380952
main1,12220.334,0.333333333
main1,12237.031,0.339285714
main1,12253.663,0.345238095
main1,12270.357,0.351190476
main1,12287.004,0.357142857
main1,12303.682,0.363095238
main1,12320.330,0.369047619
main1,12337.005,0.375
main1,12353.664,0.380952381
main1,12370.356,0.386904762
main1,12387.012,0.392857143
main1,12403.725,0.398809524
main1,12420.382,0.404761905
main1,12436.950,0.410714286
main1,12453.570,0.416666667
main1,12470.334,0.422619048
main1,12486.900,0.428571429
main2,4.499,0
main2,21.167,0.00595238095
main2,37.836,0.0119047619
main2,54.527,0.0178571429
main2,71.204,0.0238095238
main2,87.820,0.0297619048
main2,104.488,0.0357142857
main2,121.147,0.0416666667
main2,137.822,0.0476190476
main2,154.472,0.0535714286
main2,171.179,0.0595238095
main2,187.580,0.0654761905
main2,204.330,0.0714285714
main2,221.031,0.0773809524
main2,237.680,0.0833333333
main2,254.385,0.0892857143
main2,271.067,0.0952380952
main2,287.715,0.101190476
main2,304.411,0.107142857
main2,321.073,0.113095238
main2,337.715,0.119047619
main2,354.358,0.125
main2,371.023,0.130952381
main2,387.714,0.136904762
main2,404.411,0.142857143
main2,421.041,0.148809524
main2,437.733,0.154761905
main2,454.382,0.160714286
main2,471.084,0.166666667
main2,487.699,0.172619048
main2,504.381,0.178571429
main2,521.075,0.18452381
main2,537.756,0.19047619
main2,554.403,0.196428571
main2,571.059,0.202380952
main2,587.759,0.208333333
main2,604.378,0.214285714
main2,620.993,0.220238095
main2,637.733,0.226190476
main2,654.368,0.232142857
main2,671.023,0.238095238
main2,687.691,0.244047619
main2,704.344,0.25
main2,721.028,0.255952381
main2,737.684,0.261904762
main2,754.345,0.267857143
main2,771.059,0.273809524
main2,787.720,0.279761905
main2,804.377,0.285714286
main2,821.038,0.291666667
main2,837.748,0.297619048
main2,854.434,0.303571429
main2,871.062,0.30952381
main2,887.711,0.31547619
main2,904.420,0.321428571
main2,920.993,0.327380952
main2,937.692,0.333333333
main2,954.366,0.339285714
main2,971.045,0.345238095
main2,987.703,0.351190476
main2,1004.380,0.357142857
main2,1021.044,0.363095238
main2,1037.695,0.369047619
main2,1054.373,0.375
main2,1071.042,0.380952381
main2,1087.719,0.386904762
main2,1104.368,0.392857143
main2,1120.978,0.398809524
main2,1137.669,0.404761905
main2,1154.368,0.410714286
main2,1171.108,0.416666667
main2,1187.840,0.422619048
main2,1204.460,0.428571429
main2,1221.079,0.43452381
main2,1237.731,0.44047619
main2,1254.399,0.446428571
main2,1271.096,0.452380952
main2,1287.734,0.458333333
main2,1304.397,0.464285714
main2,1321.079,0.470238095
main2,1337.738,0.476190476
main2,1354.400,0.482142857
main2,1371.077,0.488095238
main2,1387.750,0.494047619
main2,1404.358,0.5
main2,1421.055,0.505952381
main2,1437.668,0.511904762
main2,1454.332,0.517857143
main2,1470.981,0.523809524
main2,1487.666,0.529761905
main2,1504.340,0.535714286
main2,1521.001,0.541666667
main2,1537.667,0.547619048
main2,1554.313,0.553571429
main2,1570.974,0.55952381
main2,1587.661,0.56547619
main2,1604.315,0.571428571
main2,1620.972,0.577380952
main2,1637.644,0.583333333
main2,1654.306,0.589285714
main2,1670.983,0.595238095
main2,1687.650,0.601190476
main2,1704.315,0.607142857
main2,1720.975,0.613095238
main2,1737.638,0.619047619
main2,1754.305,0.625
main2,1770.974,0.630952381
main2,1787.645,0.636904762
main2,1804.317,0.642857143
main2,1820.980,0.648809524
main2,1837.664,0.654761905
main2,1854.308,0.660714286
main2,1870.983,0.666666667
main2,1887.672,0.672619048
main2,1904.314,0.678571429
main2,1923.587,0.68452381
main2,1937.649,0.69047619
main2,1954.301,0.696428571
main2,1970.976,0.702380952
main2,1987.649,0.708333333
main2,2004.340,0.714285714
main2,2020.986,0.720238095
main2,2037.649,0.726190476
main2,2054.310,0.732142857
main2,2070.976,0.738095238
main2,2087.639,0.744047619
main2,2104.312,0.75
main2,2120.972,0.755952381
main2,2137.704,0.761904762
main2,2154.328,0.767857143
main2,2170.981,0.773809524
main2,2187.641,0.779761905
main2,2204.335,0.785714286
main2,2221.028,0.791666667
main2,2237.725,0.797619048
main2,2254.380,0.803571429
main2,2271.026,0.80952381
main2,2287.644,0.81547619
main2,2304.316,0.821428571
main2,2321.052,0.827380952
main2,2337.700,0.833333333
main2,2354.352,0.839285714
main2,2370.953,0.845238095
main2,2387.688,0.851190476
main2,2404.374,0.857142857
main2,2421.086,0.863095238
main2,2437.706,0.869047619
main2,2454.350,0.875
main2,2471.012,0.880952381
main2,2487.678,0.886904762
main2,2504.408,0.892857143
main2,2521.056,0.898809524
main2,2537.657,0.904761905
main2,2554.319,0.910714286
main2,2570.992,0.916666667
main2,2587.671,0.922619048
main2,2604.318,0.928571429
main2,2620.997,0.93452381
main2,2637.654,0.94047619
main2,2654.305,0.946428571
main2,2670.970,0.952380952
main2,2687.646,0.958333333
main2,2704.303,0.964285714
main2,2720.979,0.970238095
main2,2737.664,0.976190476
main2,2754.350,0.982142857
main2,2770.980,0.988095238
main2,2787.660,0.994047619
main2,2804.383,1
main2,2820.985,0
main2,2837.689,0.00595238095
main2,2854.349,0.0119047619
main2,2871.025,0.0178571429
main2,2887.690,0.0238095238
main2,2904.471,0.0297619048
main2,2921.075,0.0357142857
main2,2937.707,0.0416666667
main2,2954.361,0.0476190476
main2,2971.047,0.0535714286
main2,2987.739,0.0595238095
main2,3004.388,0.0654761905
main2,3021.058,0.0714285714
main2,3037.730,0.0773809524
main2,3054.378,0.0833333333
main2,3071.042,0.0892857143
main2,3087.706,0.0952380952
main2,3104.386,0.101190476
main2,3121.064,0.107142857
main2,3137.750,0.113095238
main2,3154.378,0.119047619
main2,3171.039,0.125
main2,3187.709,0.130952381
main2,3204.372,0.136904762
main2,3221.030,0.142857143
main2,3237.741,0.148809524
main2,3254.386,0.154761905
main2,3271.042,0.160714286
main2,3287.697,0.166666667
main2,3304.366,0.172619048
main2,3321.039,0.178571429
main2,3337.708,0.18452381
main2,3354.393,0.19047619
main2,3371.040,0.196428571
main2,3387.707,0.202380952
main2,3404.369,0.208333333
main2,3421.030,0.214285714
main2,3437.718,0.220238095
main2,3454.451,0.226190476
main2,3471.066,0.232142857
main2,3487.703,0.238095238
main2,3504.418,0.244047619
main2,3521.108,0.25
main2,3537.727,0.255952381
main2,3554.380,0.261904762
main2,3571.056,0.267857143
main2,3587.719,0.273809524
main2,3604.371,0.279761905
main2,3621.031,0.285714286
main2,3637.716,0.291666667
main2,3654.372,0.297619048
main2,3671.034,0.303571429
main2,3687.715,0.30952381
main2,3704.373,0.31547619
main2,3721.033,0.321428571
main2,3737.709,0.327380952
main2,3754.357,0.333333333
main2,3771.045,0.339285714
main2,3787.740,0.345238095
main2,3804.384,0.351190476
main2,3821.030,0.357142857
main2,3837.702,0.363095238
main2,3854.376,0.369047619
main2,3871.022,0.375
main2,3887.751,0.380952381
main2,3904.445,0.386904762
main2,3920.968,0.392857143
main2,3937.657,0.398809524
main2,3954.335,0.404761905
main2,3971.019,0.410714286
main2,3987.667,0.416666667
main2,4004.406,0.422619048
main2,4021.100,0.428571429
main2,4037.721,0.43452381
main2,4054.423,0.44047619
main2,4071.039,0.446428571
main2,4087.749,0.452380952
main2,4104.405,0.458333333
main2,4121.068,0.464285714
main2,4137.724,0.470238095
main2,4154.375,0.476190476
main2,4171.026,0.482142857
main2,4187.711,0.488095238
main2,4204.347,0.494047619
main2,4221.035,0.5
main2,4237.682,0.505952381
main2,4254.365,0.511904762
main2,4271.070,0.517857143
main2,4287.686,0.523809524
main2,4304.343,0.529761905
main2,4321.011,0.535714286
main2,4337.666,0.541666667
main2,4354.325,0.547619048
main2,4370.987,0.553571429
main2,4387.654,0.55952381
main2,4404.355,0.56547619
main2,4420.993,0.571428571
main2,4437.674,0.577380952
main2,4454.368,0.583333333
main2,4471.014,0.589285714
main2,4487.699,0.595238095
main2,4504.347,0.601190476
main2,4520.981,0.607142857
main2,4537.684,0.613095238
main2,4554.363,0.619047619
main2,4571.033,0.625
main2,4587.721,0.630952381
main2,4604.388,0.636904762
main2,4621.000,0.642857143
main2,4637.689,0.648809524
main2,4654.293,0.654761905
main2,4671.023,0.660714286
main2,4687.616,0.666666667
main2,4704.266,0.672619048
main2,4720.964,0.678571429
main2,4737.744,0.68452381
main2,4754.444,0.69047619
main2,4771.032,0.696428571
main2,4787.682,0.702380952
main2,4804.312,0.708333333
main2,4821.079,0.714285714
main2,4837.710,0.720238095
main2,4854.290,0.726190476
main2,4871.060,0.732142857
main2,4887.682,0.738095238
main2,4904.312,0.744047619
main2,4920.996,0.75
main2,4937.657,0.755952381
main2,4954.368,0.761904762
main2,4971.010,0.767857143
main2,4987.788,0.773809524
main2,5004.290,0.779761905
main2,5020.933,0.785714286
main2,5037.587,0.791666667
main2,5054.264,0.797619048
main2,5070.917,0.803571429
main2,5087.577,0.80952381
main2,5104.238,0.81547619
main2,5120.929,0.821428571
main2,5137.612,0.827380952
main2,5154.280,0.833333333
main2,5170.922,0.839285714
main2,5187.607,0.845238095
main2,5204.259,0.851190476
main2,5220.917,0.857142857
main2,5237.602,0.863095238
main2,5254.250,0.869047619
main2,5270.953,0.875
main2,5287.574,0.880952381
main2,5304.402,0.886904762
main2,5320.930,0.892857143
main2,5337.575,0.898809524
main2,5354.256,0.904761905
main2,5370.917,0.910714286
main2,5387.611,0.916666667
main2,5404.286,0.922619048
main2,5420.974,0.928571429
main2,5437.614,0.93452381
main2,5454.262,0.94047619
main2,5470.915,0.946428571
main2,5487.567,0.952380952
main2,5504.234,0.958333333
main2,5520.910,0.964285714
main2,5537.568,0.970238095
main2,5554.239,0.976190476
main2,5570.904,0.982142857
main2,5587.569,0.988095238
main2,5604.316,0.994047619
main2,5621.013,1
main2,5637.679,0
main2,5654.361,0.00595238095
main2,5671.089,0.0119047619
main2,5687.789,0.0178571429
main2,5704.421,0.0238095238
main2,5721.069,0.0297619048
main2,5737.771,0.0357142857
main2,5754.343,0.0416666667
main2,5770.999,0.0476190476
main2,5787.651,0.0535714286
main2,5804.427,0.0595238095
main2,5821.008,0.0654761905
main2,5837.747,0.0714285714
main2,5854.398,0.0773809524
main2,5871.057,0.0833333333
main2,5887.741,0.0892857143
main2,5904.387,0.0952380952
main2,5921.005,0.101190476
main2,5937.717,0.107142857
main2,5954.340,0.113095238
main2,5971.068,0.119047619
main2,5987.741,0.125
main2,6004.398,0.130952381
main2,6021.059,0.136904762
main2,6037.727,0.142857143
main2,6054.388,0.148809524
main2,6071.075,0.154761905
main2,6087.718,0.160714286
main2,6104.388,0.166666667
main2,6121.038,0.172619048
main2,6137.704,0.178571429
main2,6154.384,0.18452381
main2,6171.108,0.19047619
main2,6187.814,0.196428571
main2,6204.468,0.202380952
main2,6221.127,0.208333333
main2,6237.741,0.214285714
main2,6254.379,0.220238095
main2,6271.066,0.226190476
main2,6287.716,0.232142857
main2,6304.411,0.238095238
main2,6321.142,0.244047619
main2,6337.790,0.25
main2,6354.428,0.255952381
main2,6371.125,0.261904762
main2,6387.793,0.267857143
main2,6404.480,0.273809524
main2,6421.095,0.279761905
main2,6437.783,0.285714286
main2,6454.443,0.291666667
main2,6471.115,0.297619048
main2,6487.739,0.303571429
main2,6504.406,0.30952381
main2,6521.075,0.31547619
main2,6537.730,0.321428571
main2,6554.382,0.327380952
main2,6571.045,0.333333333
main2,6587.703,0.339285714
main2,6604.438,0.345238095
main2,6621.069,0.351190476
main2,6637.716,0.357142857
main2,6654.365,0.363095238
main2,6671.048,0.369047619
main2,6687.736,0.375
main2,6704.387,0.380952381
main2,6721.048,0.386904762
main2,6737.720,0.392857143
main2,6754.366,0.398809524
main2,6771.039,0.404761905
main2,6787.701,0.410714286
main2,6804.374,0.416666667
main2,6821.065,0.422619048
main2,6837.727,0.428571429
main2,6854.372,0.43452381
main2,6871.043,0.44047619
main2,6887.695,0.446428571
main2,6904.445,0.452380952
main2,6921.067,0.458333333
main2,6937.727,0.464285714
main2,6954.378,0.470238095
main2,6971.061,0.476190476
main2,6987.745,0.482142857
main2,7004.377,0.488095238
main2,7021.016,0.494047619
main2,7037.714,0.5
main2,7054.326,0.505952381
main2,7070.987,0.511904762
main2,7087.664,0.517857143
main2,7104.314,0.523809524
main2,7120.982,0.529761905
main2,7137.661,0.535714286
main2,7154.331,0.541666667
main2,7171.020,0.547619048
main2,7187.665,0.553571429
main2,7204.312,0.55952381
main2,7220.964,0.56547619
main2,7237.653,0.571428571
main2,7254.255,0.577380952
main2,7270.947,0.583333333
main2,7287.602,0.589285714
main2,7304.263,0.595238095
main2,7321.106,0.601190476
main2,7337.699,0.607142857
main2,7354.341,0.613095238
main2,7371.021,0.619047619
main2,7387.666,0.625
main2,7404.384,0.630952381
main2,7420.992,0.636904762
main2,7437.667,0.642857143
main2,7454.369,0.648809524
main2,7470.988,0.654761905
main2,7487.650,0.660714286
main2,7504.320,0.666666667
main2,7521.007,0.672619048
main2,7537.710,0.678571429
main2,7554.317,0.68452381
main2,7571.001,0.69047619
main2,7587.631,0.696428571
main2,7604.341,0.702380952
main2,7620.980,0.708333333
main2,7637.664,0.714285714
main2,7654.311,0.720238095
main2,7670.989,0.726190476
main2,7687.640,0.732142857
main2,7704.312,0.738095238
main2,7720.964,0.744047619
main2,7737.636,0.75
main2,7754.353,0.755952381
main2,7771.005,0.761904762
main2,7787.658,0.767857143
main2,7804.408,0.773809524
main2,7821.004,0.779761905
main2,7837.661,0.785714286
main2,7854.400,0.791666667
main2,7871.035,0.797619048
main2,7887.733,0.803571429
main2,7904.367,0.80952381
main2,7921.029,0.81547619
main2,7937.742,0.821428571
main2,7954.325,0.827380952
main2,7970.985,0.833333333
main2,7987.625,0.839285714
main2,8004.330,0.845238095
main2,8021.005,0.851190476
main2,8037.684,0.857142857
main2,8054.312,0.863095238
main2,8070.980,0.869047619
main2,8087.690,0.875
main2,8104.318,0.880952381
main2,8120.985,0.886904762
main2,8137.655,0.892857143
main2,8154.357,0.898809524
main2,8170.980,0.904761905
main2,8187.692,0.910714286
main2,8204.319,0.916666667
main2,8220.975,0.922619048
main2,8237.650,0.928571429
main2,8254.353,0.93452381
main2,8270.980,0.94047619
main2,8287.696,0.946428571
main2,8304.341,0.952380952
main2,8320.977,0.958333333
main2,8337.650,0.964285714
main2,8354.354,0.970238095
main2,8370.979,0.976190476
main2,8387.648,0.982142857
main2,8404.319,0.988095238
main2,8420.974,0.994047619
main2,8437.669,1
main2,8454.315,0
main2,8471.031,0.00595238097
main2,8487.679,0.0119047619
main2,8504.363,0.0178571429
main2,8521.038,0.0238095238
main2,8537.696,0.0297619048
main2,8554.364,0.0357142857
main2,8571.049,0.0416666667
main2,8587.693,0.0476190476
main2,8604.411,0.0535714286
main2,8621.097,0.0595238095
main2,8637.818,0.0654761905
main2,8654.407,0.0714285714
main2,8671.086,0.0773809524
main2,8687.812,0.0833333333
main2,8704.368,0.0892857143
main2,8721.053,0.0952380953
main2,8737.709,0.101190476
main2,8754.369,0.107142857
main2,8771.043,0.113095238
main2,8787.718,0.119047619
main2,8804.400,0.125
main2,8821.041,0.130952381
main2,8837.716,0.136904762
main2,8854.373,0.142857143
main2,8871.034,0.148809524
main2,8887.698,0.154761905
main2,8904.468,0.160714286
main2,8921.450,0.166666667
main2,8937.721,0.172619048
main2,8954.359,0.178571429
main2,8971.041,0.18452381
main2,8987.712,0.19047619
main2,9004.396,0.196428571
main2,9021.153,0.202380952
main2,9037.778,0.208333333
main2,9054.425,0.214285714
main2,9071.059,0.220238095
main2,9087.810,0.226190476
main2,9104.397,0.232142857
main2,9121.090,0.238095238
main2,9137.669,0.244047619
main2,9154.422,0.25
main2,9171.100,0.255952381
main2,9187.735,0.261904762
main2,9204.371,0.267857143
main2,9221.134,0.273809524
main2,9237.757,0.279761905
main2,9254.436,0.285714286
main2,9271.079,0.291666667
main2,9287.737,0.297619048
main2,9304.409,0.303571429
main2,9321.059,0.30952381
main2,9337.738,0.31547619
main2,9354.385,0.321428571
main2,9371.053,0.327380952
main2,9387.731,0.333333333
main2,9404.426,0.339285714
main2,9421.064,0.345238095
main2,9437.793,0.351190476
main2,9454.391,0.357142857
main2,9471.061,0.363095238
main2,9487.722,0.369047619
main2,9504.438,0.375
main2,9521.098,0.380952381
main2,9537.705,0.386904762
main2,9554.357,0.392857143
main2,9571.061,0.398809524
main2,9587.722,0.404761905
main2,9604.381,0.410714286
main2,9621.086,0.416666667
main2,9637.773,0.422619048
main2,9654.424,0.428571429
main2,9671.104,0.43452381
main2,9687.747,0.44047619
main2,9704.371,0.446428571
main2,9720.971,0.452380952
main2,9737.740,0.458333333
main2,9754.296,0.464285714
main2,9770.984,0.470238095
main2,9787.762,0.476190476
main2,9804.285,0.482142857
main2,9820.928,0.488095238
main2,9837.699,0.494047619
main2,9854.370,0.5
main2,9871.014,0.505952381
main2,9887.664,0.511904762
main2,9904.367,0.517857143
main2,9920.962,0.523809524
main2,9941.637,0.529761905
main2,9958.775,0.535714286
main2,9974.686,0.541666667
main2,9990.949,0.547619048
main2,10008.020,0.553571429
main2,10023.986,0.55952381
main2,10041.254,0.56547619
main2,10057.043,0.571428571
main2,10075.020,0.577380952
main2,10091.196,0.583333333
main2,10108.408,0.589285714
main2,10125.511,0.595238095
main2,10142.523,0.601190476
main2,10158.572,0.607142857
main2,10176.650,0.613095238
main2,10188.031,0.619047619
main2,10204.330,0.625
main2,10221.012,0.630952381
main2,10237.663,0.636904762
main2,10254.389,0.642857143
main2,10271.119,0.648809524
main2,10287.713,0.654761905
main2,10304.381,0.660714286
main2,10321.049,0.666666667
main2,10337.727,0.672619048
main2,10354.353,0.678571429
main2,10370.997,0.68452381
main2,10387.657,0.69047619
main2,10404.293,0.696428571
main2,10420.976,0.702380952
main2,10437.648,0.708333333
main2,10454.310,0.714285714
main2,10470.976,0.720238095
main2,10487.692,0.726190476
main2,10504.354,0.732142857
main2,10521.064,0.738095238
main2,10537.723,0.744047619
main2,10554.425,0.75
main2,10571.090,0.755952381
main2,10587.779,0.761904762
main2,10604.474,0.767857143
main2,10621.033,0.773809524
main2,10703.719,0.779761905
main2,10704.255,0.80957247
main2,10721.032,0.81547619
main2,10737.699,0.821428571
main2,10754.346,0.827380952
main2,10771.027,0.833333333
main2,10787.654,0.839285714
main2,10804.313,0.845238095
main2,10820.969,0.851190476
main2,10838.215,0.857142857
main2,10854.309,0.863095238
main2,10871.053,0.869047619
main2,10887.720,0.875
main2,10921.027,0.880952381
main2,10937.709,0.886904762
main2,10954.352,0.892857143
main2,10971.013,0.898809524
main2,10987.675,0.904761905
main2,11004.388,0.910714286
main2,11021.012,0.916666667
main2,11037.666,0.922619048
main2,11054.337,0.928571429
main2,11070.998,0.93452381
main2,11087.666,0.94047619
main2,11104.323,0.946428571
main2,11120.979,0.952380952
main2,11137.657,0.958333333
main2,11154.319,0.964285714
main2,11171.014,0.970238095
main2,11187.648,0.976190476
main2,11204.317,0.982142857
main2,11220.973,0.988095238
main2,11237.640,0.994047619
main2,11254.303,0
main2,11271.037,0.00595238095
main2,11287.698,0.0119047619
main2,11304.384,0.0178571429
main2,11321.045,0.0238095238
main2,11337.698,0.0297619048
main2,11354.413,0.0357142857
main2,11371.049,0.0416666667
main2,11387.709,0.0476190476
main2,11404.399,0.0535714286
main2,11421.107,0.0595238095
main2,11437.758,0.0654761905
main2,11454.403,0.0714285714
main2,11471.104,0.0773809524
main2,11487.730,0.0833333333
main2,11504.415,0.0892857143
main2,11521.110,0.0952380952
main2,11537.758,0.101190476
main2,11554.398,0.107142857
main2,11571.100,0.113095238
main2,11587.751,0.119047619
main2,11604.415,0.125
main2,11621.056,0.130952381
main2,11637.757,0.136904762
main2,11654.420,0.142857143
main2,11671.103,0.148809524
main2,11687.731,0.154761905
main2,11704.393,0.160714286
main2,11721.063,0.166666667
main2,11737.732,0.172619048
main2,11754.444,0.178571429
main2,11771.087,0.18452381
main2,11787.734,0.19047619
main2,11804.499,0.196428571
main2,11821.109,0.202380952
main2,11837.764,0.208333333
main2,11854.427,0.214285714
main2,11871.108,0.220238095
main2,11887.745,0.226190476
main2,11904.523,0.232142857
main2,11921.024,0.238095238
main2,11937.761,0.244047619
main2,11954.404,0.25
main2,11971.181,0.255952381
main2,11987.783,0.261904762
main2,12004.472,0.267857143
main2,12021.113,0.273809524
main2,12037.747,0.279761905
main2,12054.413,0.285714286
main2,12071.072,0.291666667
main2,12087.778,0.297619048
main2,12104.471,0.303571429
main2,12121.099,0.30952381
main2,12137.732,0.31547619
main2,12154.386,0.321428571
main2,12171.069,0.327380952
main2,12187.740,0.333333333
main2,12204.438,0.339285714
main2,12221.055,0.345238095
main2,12237.716,0.351190476
main2,12254.369,0.357142857
main2,12271.046,0.363095238
main2,12287.702,0.369047619
main2,12304.397,0.375
main2,12321.048,0.380952381
main2,12337.699,0.386904762
main2,12354.393,0.392857143
main2,12371.045,0.398809524
main2,12387.713,0.404761905
main2,12404.456,0.410714286
main2,12421.018,0.416666667
main2,12437.788,0.422619048
main2,12454.339,0.428571429
main2,12471.059,0.43452381
main2,12487.639,0.44047619
head1,0.011,0
head1,0.017,0
head1,31.989,0
head1,39.768,0
head1,152.722,0.0833333358
head1,269.435,0.166666672
head1,386.126,0.25
head1,502.801,0.333333343
head1,619.452,0.416666657
head1,736.169,0.5
head1,860.282,0.583333313
head1,984.319,0.666666687
head1,1102.822,0.75
head1,1219.450,0.833333313
head1,1336.189,0.916666687
head1,1452.792,1
head1,3019.644,0.0833333358
head1,3136.115,0.166666672
head1,3252.826,0.25
head1,3369.286,0.333333343
head1,3485.768,0.416666657
head1,3602.458,0.5
head1,3719.090,0.583333313
head1,3855.381,0.666666687
head1,3969.469,0.75
head1,4086.078,0.833333313
head1,4202.830,0.916666687
head1,4319.440,1
head1,5886.098,0.0833333358
head1,6002.829,0.166666672
head1,6119.410,0.25
head1,6236.129,0.333333343
head1,6352.588,0.416666657
head1,6469.365,0.5
head1,6586.020,0.583333313
head1,6702.595,0.666666687
head1,6819.195,0.75
head1,6936.029,0.833333313
head1,7052.923,0.916666687
head1,7169.438,1
head1,8735.839,0.0833333358
head1,8856.802,0.166666672
head1,8969.514,0.25
head1,9086.168,0.333333343
head1,9202.940,0.416666657
head1,9319.348,0.5
head1,9437.963,0.583333313
head1,9552.845,0.666666687
head1,9669.571,0.75
head1,9847.522,0.833333313
head1,9969.873,0.916666687
head1,10088.697,1
head1,11652.812,0.0833333358
head1,11769.484,0.166666672
head1,11886.066,0.25
head1,12002.791,0.333333343
head1,12119.433,0.416666657
head1,12236.128,0.5
head1,12352.779,0.583333313
head2,0.010,0
head2,0.018,0
head2,33.717,0
head2,40.733,0
head2,161.790,0.0833333358
head2,287.316,0.166666672
head2,404.080,0.25
head2,520.840,0.333333343
head2,637.514,0.416666657
head2,754.099,0.5
head2,870.606,0.583333313
head2,991.543,0.666666687
head2,1104.046,0.75
head2,1220.698,0.833333313
head2,1337.406,0.916666687
head2,1454.101,1
head2,3020.742,0.0833333358
head2,3137.417,0.166666672
head2,3254.055,0.25
head2,3370.738,0.333333343
head2,3487.374,0.416666657
head2,3605.341,0.5
head2,3720.774,0.583333313
head2,3837.415,0.666666687
head2,3954.047,0.75
head2,4071.015,0.833333313
head2,4187.553,0.916666687
head2,4304.274,1
head2,5870.861,0.0833333358
head2,5987.402,0.166666672
head2,6104.208,0.25
head2,6220.794,0.333333343
head2,6337.523,0.416666657
head2,6454.172,0.5
head2,6571.664,0.583333313
head2,6687.486,0.666666687
head2,6804.071,0.75
head2,6920.873,0.833333313
head2,7037.389,0.916666687
head2,7154.161,1
head2,8721.032,0.0833333358
head2,8837.592,0.166666672
head2,8954.180,0.25
head2,9070.866,0.333333343
head2,9187.500,0.416666657
head2,9304.147,0.5
head2,9420.835,0.583333313
head2,9555.151,0.666666687
head2,9670.861,0.75
head2,9814.696,0.833333313
head2,9937.148,0.916666687
head2,10054.083,1
head2,11620.868,0.0833333358
head2,11737.519,0.166666672
head2,11854.117,0.25
head2,11970.864,0.333333343
head2,12089.226,0.416666657
head2,12204.170,0.5
head2,12320.994,0.583333313
head2,12437.513,0.666666687 |
Dismissing prior approval to re-evaluate 2f51314
**v0.1.8-nightly.20261107.4314** · 16 changes from 10 contributors - **Cloud dictation.** Dictate using OpenAI, Grok, or OpenRouter without installing a transcription model. - **Service data restored.** Reinstalling a service now keeps its custom data directory, so projects and threads remain visible. ### Plus 11 more bug fixes and performance improvements. <details> <summary>Full changelog</summary> ## What's Changed * fix(mobile): preserve line breaks in Markdown table cells by @shivamhwp in pingdotgg/t3code#29355 * fix(mobile): stop the work-row shimmer from updating every frame by @shivamhwp in pingdotgg/t3code#28530 * fix(server): t3 service install no longer moves a --base-dir service onto an empty ~/.t3 by @shivamhwp in pingdotgg/t3code#23878 * feat(voice): opt into cloud dictation with OpenAI, Grok, or OpenRouter by @juliusmarminge in pingdotgg/t3code#31769 * fix(web): make first-run dictation setup discoverable by @juliusmarminge in pingdotgg/t3code#32197 * fix(web): first-run voice setup offers a model for the user's language by @juliusmarminge in pingdotgg/t3code#32035 * feat: auto-settle inactive threads after 7 days by default by @t3dotgg in pingdotgg/t3code#32325 * docs(updates): say when Update all leaves a provider out by @Djordje-Stojanovic in pingdotgg/t3code#32269 * test(server): three more tests stop assuming a POSIX host by @MikaMcFlurry in pingdotgg/t3code#32263 * fix(server): git failures are read in English when macOS git follows the system language by @jason5545 in pingdotgg/t3code#32252 * fix(marketing): balance fork and download heading text by @extoci in pingdotgg/t3code#32194 * perf(shared): scan usage-limit support once per provider catalog by @luke2x in pingdotgg/t3code#32179 * fix(pi): the T3 MCP extension file is written atomically by @rishabhx29 in pingdotgg/t3code#32231 * fix(web): the main sidebar stays collapsed after relaunch by @shivamhwp in pingdotgg/t3code#24202 * fix(codex): explain speed limits on managed connections by @shivamhwp in pingdotgg/t3code#30322 * fix(web): isolate scrollbar styles from iframe owners by @Yash-Singh1 in pingdotgg/t3code#32398 ## New Contributors * @Djordje-Stojanovic made their first contribution in pingdotgg/t3code#32269 * @MikaMcFlurry made their first contribution in pingdotgg/t3code#32263 **Full Changelog**: pingdotgg/t3code@v0.1.8-nightly.20261107.4301...v0.1.8-nightly.20261107.4314 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.8-nightly.20261107.4314
* docs(user): explain secret providers and secret requests (pingdotgg#31654) * feat(server): transcribe audio on a chosen environment (pingdotgg#30625) Co-authored-by: UtkarshUsername <putkarsh184@gmail.com> * feat(web): opt into environment dictation on this device (pingdotgg#30623) Co-authored-by: UtkarshUsername <putkarsh184@gmail.com> * feat(desktop): dictate into browser annotations with the same consent (pingdotgg#30624) * feat(mobile): opt in to dictation on a paired environment (pingdotgg#31059) * fix(web): keep the folder path caret in place while editing (pingdotgg#31642) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * perf(mobile): call the highlights lexer through Nitro, up to 10x faster calls on Android (pingdotgg#31188) * fix(claude): turns use the downloaded model catalog (pingdotgg#31717) * fix(gitlab): bot authors are flagged as bots (pingdotgg#30383) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(gitlab): merge requests can edit their labels (pingdotgg#30483) Co-authored-by: maria-rcks <maria@kuuro.net> * perf(mobile): faster thread sync, connects, and reconnects on bad wifi (pingdotgg#28487) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(mobile): iPad composer drops when the keyboard floats or minimizes (pingdotgg#31251) * perf(mobile): stop iOS syntax highlighting from looking up a thread-local on every lexer call (pingdotgg#31187) * fix(gitlab): edited comments wake PR watchers (pingdotgg#30403) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(gitlab): merge requests can delete their source branch (pingdotgg#30453) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(gitlab): comments link to their note on GitLab (pingdotgg#30411) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(mobile): iOS terminal accepts Chinese, Japanese and Korean input (pingdotgg#30546) * fix(mobile): Android app no longer stays offline after reopening (pingdotgg#28625) * fix(mobile): show one Android notification per thread completion (pingdotgg#27699) Co-authored-by: PR Batch Tester <agent@local.test> * fix(mobile): stop Android composer flicker at the wrap boundary (pingdotgg#27682) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): Android dictation works with regional preferences set (pingdotgg#31030) * fix(mobile): iOS compose button no longer grows while a tab is pressed (pingdotgg#28955) * fix(mobile): Android terminal Backspace deletes on the first press (pingdotgg#24983) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): Android secret requests no longer offer password manager logins (pingdotgg#29825) * fix(mobile): iOS composer text no longer turns invisible mid-draft (pingdotgg#30135) * fix(mobile): iOS 26 scroll edge effect no longer hides composer text (pingdotgg#30138) * fix(mobile): typing after in-app dictation reaches the draft again on iOS (pingdotgg#30139) Co-authored-by: maria-rcks <maria@kuuro.net> * perf(mobile): skip obsolete queued iOS diff row decodes (pingdotgg#25287) Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(gitlab): the checks and review list filters work (pingdotgg#30433) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(mobile): keep Android tablet cold launches in landscape (pingdotgg#28825) * fix(pr): GitCafe attachments render in pull request bodies (pingdotgg#31741) * fix(gitlab): unresolved overview threads count as review findings (pingdotgg#30397) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(mobile): Android alerts and the live card show the same status bar icon (pingdotgg#29738) * fix(mobile): keyboard state follows Android's nonanimated IME show (pingdotgg#25847) Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com> * fix(mobile): Android composer no longer accepts autofill (pingdotgg#27489) * perf(mobile): skip obsolete queued full token decodes (pingdotgg#25320) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(gitlab): threads on changed code show as outdated (pingdotgg#30423) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(gitlab): the checks panel lists each pipeline job (pingdotgg#28728) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * perf(mobile): avoid code row scans while dragging file paths (pingdotgg#25484) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(chat): show one usage-limit recovery notice (pingdotgg#29292) * fix(web): adding to the composer no longer drops earlier findings and selections (pingdotgg#24990) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * feat(pull-requests): PR composers complete @user mentions (pingdotgg#30747) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * feat(web): add pull request comments to the chat (pingdotgg#30579) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * feat(gitlab): link issue, merge request, commit and user references (pingdotgg#30524) * fix(mobile): sending on iOS no longer leaves an autocorrected draft behind (pingdotgg#26452) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * feat(gitlab): reviews can request changes (pingdotgg#30549) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * feat(pull-requests): PR composers complete pingdotgg#123 and GitLab !123 references (pingdotgg#30857) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * feat(gitlab): merge requests from forks can toggle maintainer edits (pingdotgg#30518) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(prs): reviewer menu searches past the first page and keeps GitLab's requested reviewers (pingdotgg#22489) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(ui): snooze menu times match the menu's typography (pingdotgg#30596) * feat(web): a Labs setting hides tool calls so threads read like a chat (pingdotgg#30000) Co-authored-by: maria-rcks <maria@kuuro.net> * feat(scheduled-tasks): tasks link to their thread (pingdotgg#31764) * fix(shared): recognize numeric bare-repository config (pingdotgg#27500) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): a command id reused for two threads at once no longer succeeds for both (pingdotgg#18385) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): coalesce tool output before it fills the live buffer (pingdotgg#16317) Co-authored-by: maria-rcks <maria@kuuro.net> * perf(server): Windows git reads no longer start a console host (pingdotgg#19288) * fix(server): a publish whose first push fails still shows the new remote (pingdotgg#29688) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(server): reverting files removes what a new .gitignore from the turn was hiding (pingdotgg#29795) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): Codex titles no longer fail on ChatGPT accounts without gpt-6-luna (pingdotgg#30078) * fix(desktop): quit no longer orphans a backend that is slow to stop (pingdotgg#22572) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> * perf(server): GitHub activity reads skip PR-wide fields on later review-thread pages (8.9 s → 6.8 s median) (pingdotgg#30294) Co-authored-by: maria-rcks <maria@kuuro.net> * perf(server): the headless browser closes after five idle minutes (517 MiB → 1.6 MiB median) (pingdotgg#30306) * fix(provider-acp-registry): surface agent error message on sign-in failure (pingdotgg#30295) * perf(server): a slow host no longer delays other watched PRs' wakes (935 ms → 65 ms median) (pingdotgg#30291) * perf(server): PR cache invalidation no longer waits on other projects' reads (1,163 ms → 0.12 ms median) (pingdotgg#30293) * fix(opencode): tools stopped mid-run show as interrupted, not failed (pingdotgg#29762) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(client-runtime): pull request bodies with CRLF line endings keep their code blocks whole (pingdotgg#30352) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(shared): long assistant quote chips no longer end in a broken character (pingdotgg#30367) * fix(cli): t3 connect unlink no longer warns about a server that is gone (pingdotgg#30324) * fix(server): ACP agents get T3CODE_THREAD_ID like Claude and Codex sessions (pingdotgg#30361) * fix(server): accept a case-insensitive DPoP authorization scheme (pingdotgg#30337) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(server): usage-limit auto-resume no longer arms subagents of archived or deleted parents (pingdotgg#30363) * fix(provider-core): background work notices no longer end in a broken character (pingdotgg#30369) * fix(client-runtime): subagent previews no longer end in a broken character (pingdotgg#30391) * fix(server): explain fake-IP DNS failures in HTML previews (pingdotgg#30318) * perf(resource-monitor): Linux terminal process checks use a third of the CPU (pingdotgg#30381) * fix(server): failed Claude text generation shows Claude's error instead of raw JSON (pingdotgg#30331) * fix(server): pull request tools point a bare thread uuid at its mcp: thread (pingdotgg#30375) * fix(server): message search keeps results when a short non-Latin word differs in case (pingdotgg#30332) * fix(web): preview annotation chip labels no longer end in a broken character (pingdotgg#30345) * fix(server): thread titles no longer fail when the text generation provider can't run (pingdotgg#29607) Co-authored-by: medric-z <180440015+medric-z@users.noreply.github.com> * fix(web): refresh resource timeline while diagnostics is open (pingdotgg#30528) * fix(usage): a CLIProxy hub saved as its management.html panel URL shows accounts again (pingdotgg#25579) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(shared): command output keeps text after an unterminated OSC (pingdotgg#30479) * fix(cli): t3 up's retry and restart hints keep --base-dir (pingdotgg#30480) * fix(server): a branch tracking another local branch no longer shows that branch's PR (pingdotgg#30563) * fix(web): terminal links keep route and pnpm paths in one piece (pingdotgg#30603) * fix(shared): CSV and TSV attachments keep their table under generic file types (pingdotgg#30601) * fix(server): report Claude settings compaction threshold (pingdotgg#29220) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(cli): t3 project remove finds a deleted project by a relative or trailing-slash path (pingdotgg#30562) * fix(server): an invalid regex in project search still finds its text when Match case is off (pingdotgg#30569) * fix(server): agents see why a project update was refused instead of a generic failure (pingdotgg#30564) * perf(client-runtime): stop tracing streamed thread batches (pingdotgg#30679) * fix(server): rewound Codex threads import their history from before the rewind (pingdotgg#30652) * fix(server): keep writes moving with a larger WAL limit (pingdotgg#31804) * fix(opencode): edits that delete text keep their empty replacement (pingdotgg#30643) Co-authored-by: johan vaz <johanvaz@Nathalines-MacBook-Pro.local> * fix(forgejo): read author assignees once (pingdotgg#30686) * fix(cli): t3 pair's no-running-server hint keeps --base-dir (pingdotgg#30689) * perf(server): stop tracing routine port polling helpers (pingdotgg#30678) * fix(server): ACP MCP bridge no longer splits messages on U+2028/U+2029 (pingdotgg#30719) Co-authored-by: Geezy <igor.licko@gloryck.com> * fix(cli): expand home-relative thread project paths (pingdotgg#30721) * perf(ci): boot the built web client in Build and Typecheck, not Test Web (about 22 s off the longest job) (pingdotgg#30752) * fix(shared): ignore unfinished quoted Git config continuations (pingdotgg#30743) * fix(review-guide): preserve excerpt line terminators (pingdotgg#30717) * feat(pi): show extension status in existing controls (pingdotgg#23901) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(fx): preserve literal unicode escape text in clipped replies (pingdotgg#30701) * perf(dev): knip:check runs its two passes side by side (34 s → 26 s median on 4 CPUs) (pingdotgg#30737) * fix(shared): command output no longer prints the final byte of escape sequences with intermediates (pingdotgg#30724) Co-authored-by: Geezy <igor.licko@gloryck.com> * fix(web): restore folder breadcrumb trails when reopening tabs (pingdotgg#30706) * fix(client-runtime): sanitized error stacks keep line and column for URLs with a query (pingdotgg#30726) Co-authored-by: Geezy <igor.licko@gloryck.com> * fix(shared): shortened agent paths like /tmp/... no longer become broken file chips (pingdotgg#30762) * fix(server): MCP auth spans no longer include the tool call (pingdotgg#30834) * fix(server): preview browser picks up Chrome 157 security fixes (pingdotgg#30820) * fix(server): agents read RTF paragraphs that end with a backslash (pingdotgg#30848) Co-authored-by: Geezy <igor.licko@gloryck.com> * fix(server): a late checkpoint keeps the stopped run's baselines (pingdotgg#30830) * fix(shared): preserve IPv6 hosts when switching clone protocols (pingdotgg#30798) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * docs: explain Linux desktop installation (pingdotgg#30819) * perf(server): each live event is projected once for all subscribers (pingdotgg#30860) * fix(server): request_secret asks for one value per card (pingdotgg#30805) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(ssh): host discovery skips hidden Include matches (pingdotgg#30910) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * docs: clarify diagnostic exports and their separate controls (pingdotgg#30942) * docs: fix worktree cleanup path in FAQ (pingdotgg#31000) * fix(server): a policy that manages observability endpoints is refused instead of ignored (pingdotgg#30973) * fix(client-runtime): untitled subagent titles no longer end in a broken character (pingdotgg#30390) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(shared): underline styles and colours no longer scramble command output colours (pingdotgg#21542) * perf(server): batch queued provider writes without waiting (pingdotgg#31656) * fix(server): prepare restart continuations faster on shutdown (pingdotgg#31807) * fix(web): keep change totals aligned beside the label (pingdotgg#31814) * fix(web): rank usage provider summaries by the selected metric (pingdotgg#15632) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(server): wait for automatic follow-ups before settling threads (pingdotgg#31815) Keep deferred settlement requests through automatic follow-up turns and retry from persisted run events, including replayed rejected commands. Preserve failed follow-ups and new user input, and guard settlement against newer runs. Validated with 173 focused tests through check:changed, all CI checks on e1a41f6, and resolved agentic reviews. Model: GPT 6.1 Sol. Harness: Codex in T3 Code. * fix(web): settings descriptions use the full row and stay two lines (pingdotgg#31826) * fix(voice): insert Unicode word boundaries for dictation (pingdotgg#31799) * fix(mobile): use preferred languages for on-device iPhone dictation (pingdotgg#31800) * fix(mobile): keep the opening words of local iPhone dictation (pingdotgg#31801) * fix(server): keep PR generation focused on the change (pingdotgg#31819) * chore(desktop): trace shutdown phases (pingdotgg#31850) * perf(server): batch shutdown recovery commits (pingdotgg#31854) * perf(server): batch projection recovery reads into one query (pingdotgg#31842) Combine the ten runtime recovery collections into one SQLite statement, leaving the initial thread lookup separate. Preserve collection filters, ordering, decoding and ordered reconciliation after prior commits. Extend startup/shutdown idempotency coverage and guard against full message and run history scans. Synthetic stress measurements show fewer database requests; overall desktop quit latency remains unmeasured. Implemented with GPT 6.1 Sol through the Codex harness in T3 Code. * fix(desktop): let the window shrink to 400x360 so it fits half-screen tiles (pingdotgg#28223) Co-authored-by: Priyansh4444 <105874877+Priyansh4444@users.noreply.github.com> Co-authored-by: Tanner Polley <42780259+tannerpolley@users.noreply.github.com> Co-authored-by: Maria <maria-rcks@users.noreply.github.com> * fix(web): improve Changes row text and spacing (pingdotgg#31858) * feat(server): stop opted-in project actions when threads settle (pingdotgg#31857) * fix(build): skip Koffi source builds during cross-packaging (pingdotgg#31864) * fix(server): Antigravity installs on Intel Macs (pingdotgg#30189) Co-authored-by: Alessio Fano <alessio.fano@swisscom.com> * fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary (pingdotgg#31285) * fix(web): keep task updates static in the timeline (pingdotgg#31888) * fix(devices): keep devices listed when simulator discovery fails (pingdotgg#25971) Co-authored-by: PR Batch Tester <agent@local.test> * fix(web): dragging a sidebar thread no longer scrolls the list to the bottom (pingdotgg#27691) * fix(web): tagging a thread by drag no longer scrolls the sidebar (pingdotgg#31924) * ci: stacked PRs stop evicting the shared pnpm cache (pingdotgg#31937) A PR based on a branch other than the default saved a ~1 GB pnpm store that only its own reruns can read, which evicted shared entries. These PRs still restore and install; pushes, releases, and default-base PRs save as before. * fix(web): remote subagents no longer split from the lineage list (pingdotgg#29285) * perf(ci): release uploads stop recompressing installers and CLI archives (pingdotgg#31942) * feat(antigravity): identify as T3 Code to agy acp 1.5.1+ (pingdotgg#31158) Co-authored-by: Theo Browne <me@theo.li> * ci(release): JS bundle jobs stop building an unused Linux helper (pingdotgg#31941) Release and macOS preview bundle jobs can check out a ref from before build:desktop:bundle existed. Those refs now install libsecret and run build:desktop as before. * feat(marketing): help search engines tell t3.codes apart from copycat sites (pingdotgg#31142) Give crawlers a consistent download URL, a sitemap, and links to the official repository and app listings. Publish the monitored security contact in the site and repository policies. Takeover by Claude Opus 5.5 in Claude Code. Follow-up by GPT-6.1 Terra [1m] in Codex. Co-authored-by: Victor Valentine Romo <213858052+b2bvic@users.noreply.github.com> * perf(server): background service launcher uses 75% less memory (pingdotgg#29284) * fix(azure-devops): a fork's same-named branch no longer hides the branch's own pull request (pingdotgg#29817) * perf(server): provider-thread reads start from owned rows, not every node of the thread (pingdotgg#31012) * perf(server): stop tracing the per-event background-work probe (pingdotgg#31584) * perf(server): stop tracing each transcript file in usage scans (pingdotgg#31586) * perf(cursor): stop tracing the per-event account usage hash (pingdotgg#31017) * fix(muse): recover from unavailable session views (pingdotgg#32154) * feat(web): sort and filter transcription models (pingdotgg#32045) * fix(azure-devops): existing pull requests are found for branches containing # (pingdotgg#31928) Co-authored-by: Adam Otradovec <du239@creditas.cz> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * perf(server): background PR discovery no longer delays git status after a restart (pingdotgg#32162) * fix(web): the citation comment box opens at the quote instead of sliding in from the corner (pingdotgg#32141) * fix(clients): dictating a citation comment or preview annotation uses the full width (pingdotgg#32142) * fix(web): PR bodies keep before/after video tables intact (pingdotgg#25988) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * perf(release): fetch the nightly Android APK in a background step (pingdotgg#31949) * perf(release): macOS CLI notarization no longer blocks the desktop build (pingdotgg#31945) * ci(release): npm publish no longer checks out and installs the workspace (pingdotgg#31936) * ci(release): macOS arm64 stops compressing a pnpm store it cannot save (pingdotgg#31955) * fix(web): relay-connected microphone destinations authorize speech requests (pingdotgg#31778) * fix(server): a usage-limit auto-resume survives a server restart (pingdotgg#31292) * fix(mobile): review diff no longer goes blank after switching sections (pingdotgg#27960) * fix(mobile): iOS filter menus close back into their pill without clipping or garbling (pingdotgg#31168) * fix(mobile): Android composer renders DM Sans (pingdotgg#30230) * fix(desktop): open Teams web in the preview browser (pingdotgg#31489) * fix(web): popovers over the desktop header respond to the pointer (pingdotgg#31794) * fix(web): add installable icons for Firefox on Android (pingdotgg#30420) * fix: show latest reply age in active thread rows (pingdotgg#31825) * fix(mobile): keep settled status pills readable (pingdotgg#31635) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): preserve line breaks in Markdown table cells (pingdotgg#29355) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): stop the work-row shimmer from updating every frame (pingdotgg#28530) Co-authored-by: PR Batch Tester <agent@local.test> * fix(server): t3 service install no longer moves a --base-dir service onto an empty ~/.t3 (pingdotgg#23878) * feat(voice): opt into cloud dictation with OpenAI, Grok, or OpenRouter (pingdotgg#31769) Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com> * fix(web): make first-run dictation setup discoverable (pingdotgg#32197) Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> * fix(web): first-run voice setup offers a model for the user's language (pingdotgg#32035) * feat: auto-settle inactive threads after 7 days by default (pingdotgg#32325) * docs(updates): say when Update all leaves a provider out (pingdotgg#32269) * test(server): three more tests stop assuming a POSIX host (pingdotgg#32263) * fix(server): git failures are read in English when macOS git follows the system language (pingdotgg#32252) * fix(marketing): balance fork and download heading text (pingdotgg#32194) * perf(shared): scan usage-limit support once per provider catalog (pingdotgg#32179) * fix(pi): the T3 MCP extension file is written atomically (pingdotgg#32231) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): the main sidebar stays collapsed after relaunch (pingdotgg#24202) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(codex): explain speed limits on managed connections (pingdotgg#30322) * fix(web): isolate scrollbar styles from iframe owners (pingdotgg#32398) * fix(azure-devops): default-branch lookup no longer fails for missing --repository (pingdotgg#29586) * perf(server): avoid lsof polling when Linux proc is usable (pingdotgg#30011) * fix(providers): remove incomplete ChatGPT connections (pingdotgg#29280) * fix(acp): retain streamed child tool output (pingdotgg#32411) * fix(web): recover ACP settings when projects change (pingdotgg#32409) * fix(shared): inline code like `allocator.cc:217` becomes a file chip (pingdotgg#32403) * fix(server): theme files saved with a UTF-8 BOM are published instead of rejected (pingdotgg#32405) * fix(grok): long command titles no longer end in a broken character (pingdotgg#32408) * fix(github): keep review-required until required reviewers approve (pingdotgg#32395) * feat(web): delete archived threads from the archive page (pingdotgg#22160) * fix(provider-acp): preserve UTF-8 across interleaved terminal streams (pingdotgg#32391) * fix(pi): preserve explicit thinking when switching models (pingdotgg#32389) * fix(acp): bound unread raw notification retention (pingdotgg#19585) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): keep Pi thinking controls visible before selection (pingdotgg#27397) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): published themes reach the app when it uses this machine's service (pingdotgg#26324) Co-authored-by: notcompromised <peyton.lamb111@gmail.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(antigravity): check account access after installation (pingdotgg#32446) * fix(acp): preserve native form questions and typed answers (pingdotgg#19659) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Honey Paptan <hpaptan@gmail.com> * fix(antigravity): explain missing SOCKS dependency during refresh (pingdotgg#19660) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(cursor): use the SDK account for usage data (pingdotgg#32448) Remove Cursor CLI credential and macOS Keychain fallbacks for account usage and limits, including their settings and web/mobile prompts. Preserve usage through the Cursor SDK sign-in, CURSOR_API_KEY exchange, and explicit auth tokens for limits. Verified focused Cursor tests and full CI on the final head. The scope and intended loss of usage for CLI-only environments were explicitly approved by the maintainer. Model: GPT 6.1 Sol. Harness: Codex through T3 Code. * fix(web): agent sign-in defaults to Auto access (pingdotgg#32186) * fix(gitlab): `glab mr accept` counts as a shell merge (pingdotgg#32400) * fix(forgejo): tea's `pull` and `m` aliases count as shell merges (pingdotgg#32401) * fix: side chats start with the parent's permission mode and reasoning level (pingdotgg#32315) * fix(mobile): center the Choose project empty-state buttons (pingdotgg#27450) * fix(mobile): Android terminal sends hardware-keyboard arrows, Tab, and Escape to the PTY (pingdotgg#32666) * fix(mobile): group settled PR threads in the continue menu (pingdotgg#27941) Co-authored-by: Orin <orin@orin.ws> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): shorten the model picker save action (pingdotgg#32551) * fix(mobile): center Android header confirmation buttons (pingdotgg#32239) * fix(muse): a declined /compact reports its reason and no longer wedges the thread (pingdotgg#28454) * fix(web): restore bold weight in rendered Markdown (pingdotgg#25694) * fix(web): device tool update buttons fit their popovers (pingdotgg#27030) * fix(web): mobile sidebar keeps its width when shelves expand (pingdotgg#27541) * fix(web): lineage phase headers truncate instead of overflowing the details card (pingdotgg#27582) * fix(server): storage report lists project worktrees nested inside plain folders (pingdotgg#25883) * fix(scripts): report:renders starts on Windows without a vp shim (pingdotgg#32777) * perf(server): skip oversized history during handoff selection (pingdotgg#23821) * feat(antigravity): support agy CLI as custom binaryPath (pingdotgg#32503) * fix(mobile): share PDFs from the Android attachment viewer (pingdotgg#32266) * fix(server): saved preview screenshots keep full resolution (pingdotgg#28255) * fix(server): refresh linking tools in existing agent sessions (pingdotgg#26737) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: maria-rcks <maria@kuuro.net> * feat(server): html tools take a file path, so agents stop retyping pages (pingdotgg#32833) Agents can pass `path` to an absolute .html file instead of retyping the page as inline `html`. The server reads the file only for full-access threads, with the existing disk-read guards, and snapshots it at publish. ACP render recovery matches path calls by path. The mcp-tool-use eval grades pages passed by path. Takes over pingdotgg#32817. Co-authored-by: Stoli Geyer <stoli@tractorbeam.ai> * fix(search): keep whole-word title matches above busy prefixes (pingdotgg#32242) * fix(connect): show why relay unlink failed (pingdotgg#25198) Co-authored-by: PR Batch Tester <agent@local.test> * fix(mobile): keep scheduled task prompts clear of microphone (pingdotgg#32498) * feat(web,mobile): move a scheduled task to another thread (pingdotgg#31379) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * perf(server): Codex tool calls no longer wait on reasoning summaries (pingdotgg#31149) * fix(web): fill combobox search fields (pingdotgg#32926) Co-authored-by: Bryan Tobing <bryantobing0@gmail.com> * fix(server): mise-installed providers update through mise instead of their own updater (pingdotgg#21524) Mise-owned providers requested as latest now update with mise upgrade <tool>; pinned tools, version paths and mise x scripts stay manual. Co-authored-by: Ryan Hughes <ryan@heyoodle.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): 保留 ZIP 动态中文提示并规范预览格式 * fix(sync): 修复状态处理和多端回归问题 恢复 PR 合并确认与运行时清理门禁,补齐配置导出和 Claude 只读工具许可。 修正手机基础分支过滤,并更新多端测试夹具以保留 fork 默认行为。 * fix(mobile): 修复原生高亮模块的冻结安装失败 显式声明锁文件已包含的可选类型 peer,使本地原生模块清单与冻结安装校验保持一致。 * fix(settings): 补齐多端中文与配置导入导出兼容 补齐 Web 和手机端新增语音、定时任务、主题、连接诊断及线程状态的简体中文。 支持公共偏好和项目 Issue 来源配置迁移,排除设备麦克风标识。修复手机从系统文件选择器返回后重连丢失导入状态,以及项目配置导入覆盖其他项目并发更新的问题。 验证:增量检查全部通过,37 个包类型检查、48 个测试文件共 347 项用例,以及关联检查通过;Web 与 Android 完成双向配置导入导出及逐字段回读验收。 --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: UtkarshUsername <putkarsh184@gmail.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Cameron Chisholm <cam@camchis.com> Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Kalle Ahlström <71292737+kahlstrm@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Md Ehsanul Haque <133691757+EhsanulHaqueSiam@users.noreply.github.com> Co-authored-by: Jeremy Meidinger <57645278+Jerematix@users.noreply.github.com> Co-authored-by: Victor <satsdev@only21mil.xyz> Co-authored-by: voida6 <kainth.ravdeep@gmail.com> Co-authored-by: wojas <github@m.wojas.nl> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Valerii Kuznietsov <Dwite@users.noreply.github.com> Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: maco <gosarmarcel7@gmail.com> Co-authored-by: Alyx Buckmann <57874862+snarkyalyx@users.noreply.github.com> Co-authored-by: Kayzel <me@kayzel.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Muzammil Hussain <58479501+Muzammil-Bit@users.noreply.github.com> Co-authored-by: Andrei <108398860+Yuruzuu@users.noreply.github.com> Co-authored-by: Nico <nico@buehrig.org> Co-authored-by: MarcoDotIO <Marcus.Arnett10@gmail.com> Co-authored-by: spoukyii <61633921+spoukyii@users.noreply.github.com> Co-authored-by: Frank Hommers <frank-github@hommers.nl> Co-authored-by: Jai Khurana <64320051+jaikhuranna@users.noreply.github.com> Co-authored-by: medric <z3fmi3@gmail.com> Co-authored-by: medric-z <180440015+medric-z@users.noreply.github.com> Co-authored-by: Shaun Hawk <shawk08033@gmail.com> Co-authored-by: Jolymmiles <75259437+Jolymmiles@users.noreply.github.com> Co-authored-by: tiliakoos <73005126+tiliakoos@users.noreply.github.com> Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> Co-authored-by: Elliot Drel <156480527+ElliotDrel@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Johan Vaz <v.johan2234@gmail.com> Co-authored-by: johan vaz <johanvaz@Nathalines-MacBook-Pro.local> Co-authored-by: TheGuyWithHAT <igorlickn@gmail.com> Co-authored-by: Geezy <igor.licko@gloryck.com> Co-authored-by: Pyseph <45090858+Pyseph@users.noreply.github.com> Co-authored-by: Harjot Singh <42799925+imharjot@users.noreply.github.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Navid Nadali <navidnadali@gmail.com> Co-authored-by: Solomon Botchway <62394255+snnbotchway@users.noreply.github.com> Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Roger V <12006627+rgrvlsk@users.noreply.github.com> Co-authored-by: hari <harikp2002@gmail.com> Co-authored-by: jacobcorbett <dev@jacobcorbett.com> Co-authored-by: Dharmesh <dharmeshgurnani2000@gmail.com> Co-authored-by: Priyansh4444 <105874877+Priyansh4444@users.noreply.github.com> Co-authored-by: Tanner Polley <42780259+tannerpolley@users.noreply.github.com> Co-authored-by: Maria <maria-rcks@users.noreply.github.com> Co-authored-by: Ale 🐶 <141751722+aledog007@users.noreply.github.com> Co-authored-by: Alessio Fano <alessio.fano@swisscom.com> Co-authored-by: Josh Rossi <maximojoshuarossi@gmail.com> Co-authored-by: Patrick C. Toulme <135739773+patrick-toulme@users.noreply.github.com> Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: Victor Valentine Romo <213858052+b2bvic@users.noreply.github.com> Co-authored-by: Sudharsan <126713117+Sidreyas@users.noreply.github.com> Co-authored-by: Adam Otradovec <37932502+aotradovec@users.noreply.github.com> Co-authored-by: Adam Otradovec <du239@creditas.cz> Co-authored-by: Bartłomiej Błoniarz <bartlomiej.bloniarz@gmail.com> Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com> Co-authored-by: Djordje Stojanovic <djordjestojanovic1992@gmail.com> Co-authored-by: Mika Hertler <77012401+MikaMcFlurry@users.noreply.github.com> Co-authored-by: Jui-Chen Chien <jason5545@gmail.com> Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com> Co-authored-by: luke <97411838+luke2x@users.noreply.github.com> Co-authored-by: Rishabh_t106 <rishabh.j.tripathi2903@gmail.com> Co-authored-by: Felix Laga <felix.laga@yahoo.com> Co-authored-by: William Sedlacek <william.sedlacek@icloud.com> Co-authored-by: Peyton Lamb <94505409+not-compromised@users.noreply.github.com> Co-authored-by: notcompromised <peyton.lamb111@gmail.com> Co-authored-by: Honey Paptan <hpaptan@gmail.com> Co-authored-by: Abdullah Al Zawad <sert@bugreels.com> Co-authored-by: Arif Ali <51419655+arifali123@users.noreply.github.com> Co-authored-by: Orin <orin@orin.ws> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Akshar Patel <123344143+AksharP5@users.noreply.github.com> Co-authored-by: Georgi Todorov <68182763+jorotodorovv@users.noreply.github.com> Co-authored-by: Stoli Geyer <stoli@tractorbeam.ai> Co-authored-by: ABDUL RAHMAN JAMSHID NASSER AL RASHDI <143622128+Ajraba04@users.noreply.github.com> Co-authored-by: Bryan Tobing <bryantobing0@gmail.com> Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
## What's Changed * refactor(android): every header goes through AppBar, so the filter stays put by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/26741 * refactor(mobile): one inspector column, declared with <Inspector> by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27085 * refactor(mobile): a pane's bar draws its own sidebar toggle by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27086 * refactor(mobile): Android's sidebar is the Home route in the sidebar column by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27087 * feat(mobile): medium windows float the sidebar over the page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27088 * feat(mobile): without an inspector column, the inspector is a sheet by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27090 * docs(mobile): the five layers of the mobile layout, with x-ray diagrams by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27107 * refactor(mobile): the inspector's bar is its pane's AppBar by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27205 * fix(mobile): the iPad inspector hides the sidebar where the page would get too narrow by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27218 * fix(mobile): iPad workspace tabs live in the sidebar and leave with it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27229 * fix(mobile): the drawer surface is only for a sidebar beside a page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27289 * feat(server): list Claude models reported by Claude Code by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30511 * fix(relay): production deploys no longer hang while computing the plan by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30513 * fix(web): give dialog titles a readable line height by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30527 * fix(tools): show images from MCP and OpenCode outputs by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30389 * fix(mobile): smoother Settings and composer transitions on wide Android by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/26297 * fix(mobile): the Android split slides as one strip, so sidebar and detail pane always fill the width by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/26328 * fix(server): retry unstarted runs after recovery by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30560 * perf(server): narrow agent awareness startup reads by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30561 * fix(web): validate terminal links against filesystem metadata by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30526 * fix(server): avoid message ordering scans during recovery and settlement by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30582 * fix(client-runtime): expire missing file metadata per thread by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30606 * fix(web): align usage table padding and thread status rows by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30621 * fix(mobile): every Android content pane gets its rounded card from ScreenContent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30500 * fix(web): load selected diff metadata before file patches by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/30567 * test(evals): measure how agents get secrets only the user has by @gabrielelpidio in https://github.com/pingdotgg/t3code/pull/30256 * feat(server): agents ask for secrets through request_secret instead of chat by @gabrielelpidio in https://github.com/pingdotgg/t3code/pull/30257 * fix(relay): use released drizzle rc.5 and fail installs on unmet peers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31016 * build: typecheck with tsrs and Effect's rules through @effect/tsgo by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31028 * refactor: replace jose with effect/jose by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30474 * refactor: move HMAC, key, and random work to effect/crypto by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30501 * refactor(server): sign server tokens through PayloadSigner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30523 * refactor: hold relay signing keys in EnvironmentSigningKey and CloudMintSigner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30529 * refactor(client-runtime): share DPoP proof creation across web and mobile by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30540 * fix(client-runtime): a thread keeps syncing after a stream defect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31071 * test(server): AgentSessionScanner blocked-repo test no longer races the git-read timeout by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30554 * test(web): PDF preview tests wait on pdf.js loads and stop timing out by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31104 * docs: scope managed-policy LAN note to old background services by @b2bvic in https://github.com/pingdotgg/t3code/pull/30900 * feat(server): render MCP Apps from Claude tool calls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/29803 * build: run Effect rules on mobile and lock in clean suggestion rules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31111 * fix(mobile): keep iOS composer empty after sending an autocorrected word by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30308 * fix(server): idle agent tabs free a slot when the server's 32-tab browser limit is full by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24186 * fix(web): keep message navigation visible on touch when there is room by @shivamhwp in https://github.com/pingdotgg/t3code/pull/26806 * fix(mobile): pinch wide images from anywhere in the Android viewer by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30929 * fix(mobile): preserve autocorrect in custom question answers by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30744 * fix(web): show Setting up during worktree setup by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28832 * fix(mobile): keep iOS thread menus short enough for drag selection by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30944 * fix(web): show the comparison base beside Changes totals by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30085 * fix(mobile): use H.264 for iOS previews and keep Close reachable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28622 * fix(mobile): iOS image previews open without waiting for the gallery by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29044 * feat: optionally clone repos into ghq-style <host>/<owner>/<repo> folders by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24904 * fix(devices): explain Windows SSH host failures by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30941 * fix(web): make styled composer Markdown markers editable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30421 * fix(mobile): configure another Claude account from Providers by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28928 * fix(web,mobile): save pull request description checkbox changes by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30704 * fix(client): a big server config on a slow link no longer drops the connection in a loop by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23758 * fix(server): restart T3 Connect's tunnel client when Cloudflare drops it by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24946 * fix(mobile): compact stale Claude threads before sending by @shivamhwp in https://github.com/pingdotgg/t3code/pull/27935 * fix(web): show saved service access with Local environment off by @shivamhwp in https://github.com/pingdotgg/t3code/pull/26464 * fix: keep older pending questions answerable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/26435 * fix(web): deleted forks no longer remain in Lineage by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29000 * fix(server): preserve sibling wakeups when interrupting a completion wake by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28204 * fix(server): attribute usage-limit auto-resume to T3 Code by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29838 * fix(acp): time out silent Antigravity prompts by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30377 * fix(codex): sharing usage limits offer the existing recovery options by @shivamhwp in https://github.com/pingdotgg/t3code/pull/25341 * revert(web): working threads stay in the Working shelf when their environment disconnects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31269 * refactor: Effect code reads env through HostProcess.Environment by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31218 * refactor: Effect.try calls map failures to typed errors by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31217 * fix(web): sidebar project filter rows line up and stay still on hover by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29639 * refactor: errors are Schema.TaggedError, not Data.TaggedError or native Error by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31216 * fix(server): a stopped run no longer shrinks thread history to one row by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31266 * fix(server): refresh divergence after a merged branch ref changes by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31342 * fix(mobile): one aligned notice for ChatGPT sharing limits by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31277 * fix(mobile): composer keeps the keyboard when a queued edit ends by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31317 * fix(mobile): delivered messages no longer reappear at the bottom of reopened long threads by @saphid in https://github.com/pingdotgg/t3code/pull/31182 * fix(threads): side chats inherit parent permissions by default by @extoci in https://github.com/pingdotgg/t3code/pull/31114 * fix(server): threads follow their worktree's branch changes by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31599 * fix(pi): usage reports include sessions stored in a --session-dir launch argument by @saphid in https://github.com/pingdotgg/t3code/pull/30690 * perf(mobile): skip unchanged terminal toolbar fade updates by @saphid in https://github.com/pingdotgg/t3code/pull/25312 * perf(mobile): assemble HTML replacements in one pass by @saphid in https://github.com/pingdotgg/t3code/pull/25278 * perf(mobile): skip canceled SVG parsing by @saphid in https://github.com/pingdotgg/t3code/pull/25314 * test(server): strengthen v1 cutover proof with event-stream waits and content snapshots by @saphid in https://github.com/pingdotgg/t3code/pull/11869 * fix(contracts): a stored secret reference is always sensitive by @yordis in https://github.com/pingdotgg/t3code/pull/31403 * fix(server): a settings save no longer reads an unreadable secret again by @yordis in https://github.com/pingdotgg/t3code/pull/31226 * fix(threads): allow snoozing pending input requests by @saphid in https://github.com/pingdotgg/t3code/pull/20058 * fix(server): repair cutover test crypto import breaking main CI by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31630 * feat(server): sends can start a fresh provider session by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30323 * feat: /clear starts a fresh session in the same thread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30325 * feat: scheduled tasks can run in one thread with a fresh session each run by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30326 * fix(web): dragging a sidebar thread no longer scrolls the list out from under the pointer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30346 * fix(assets): preserve the PR repository for GitHub media by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/21631 * fix(server): load PR uploads from SSO organizations by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/21632 * fix(mobile): the Duo inspector stops at its widest instead of vanishing by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31665 * test(server): launcher PATH lookup test no longer drops the Windows drive letter by @tris203 in https://github.com/pingdotgg/t3code/pull/22534 * test(server): replay tests delete their temp directories by @only21mil in https://github.com/pingdotgg/t3code/pull/23445 * fix(mobile): transcribe Android audio during recording by @PixPMusic in https://github.com/pingdotgg/t3code/pull/31300 * test(web): linked-environment subagents keep opening in their own thread by @RealDoc06 in https://github.com/pingdotgg/t3code/pull/26492 * test(server): pin post-commit outbox settle boundary by @Narayan201120 in https://github.com/pingdotgg/t3code/pull/27560 * test: remove unreachable github cli decoding test by @t3-code-bot[bot] in https://github.com/pingdotgg/t3code/pull/28115 * test(server): retain delegated child events when detaching a parent by @benjamin-di in https://github.com/pingdotgg/t3code/pull/29622 * test(lint): pin which ResizeObserver constructions no-raw-resize-observer reports by @only21mil in https://github.com/pingdotgg/t3code/pull/28781 * test(mobile): drop two deleted tests from the React test list by @only21mil in https://github.com/pingdotgg/t3code/pull/28800 * test(web): worked-for expand test waits for the timeline to finish loading by @saphid in https://github.com/pingdotgg/t3code/pull/29661 * test(web): avoid PDF worker startup timeouts in attachment tests by @voltcrash in https://github.com/pingdotgg/t3code/pull/29933 * test(web): source control writing settings test waits for the reset button by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30372 * test(web): keep the work heading test inside the viewport by @voltcrash in https://github.com/pingdotgg/t3code/pull/30613 * test: use an empty config file instead of the null device for git fixtures on Windows by @Pyseph in https://github.com/pingdotgg/t3code/pull/30772 * test: remove stale tests for unused thread and onboarding helpers by @t3-code-bot[bot] in https://github.com/pingdotgg/t3code/pull/30817 * test(server): correct Windows path and settings assertions by @ElliotDrel in https://github.com/pingdotgg/t3code/pull/30983 * feat(claude): Ultracode works with any effort, like Claude Desktop by @Bil0000 in https://github.com/pingdotgg/t3code/pull/27034 * perf(pr): pull requests paint from data already held, on web, desktop and mobile by @Bil0000 in https://github.com/pingdotgg/t3code/pull/27798 * fix(mobile): approval card buttons line up by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31415 * fix(gitlab): author names link to GitLab profiles by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30418 * fix(gitlab): merge messages drop agent credits by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30441 * fix(gitlab): file and image comments appear as review threads by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30425 * fix(web): screen readers no longer read out a secret typed into the request card by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31653 * perf(pr): actions update every client from the host's reply instead of re-reads by @Bil0000 in https://github.com/pingdotgg/t3code/pull/25761 * feat(mobile): start side chats with /side by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31709 * feat(claude): expose Ultracode on Claude Sonnet 5.5 and Haiku 5.5 by @DrSeedon in https://github.com/pingdotgg/t3code/pull/30781 * feat(settings): Simlock, Antigravity and OpenCode credentials can come from a secret provider by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31652 * refactor(mobile): screens declare what they are; layout and AppBar own every platform bar decision by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31310 * fix(server): a saved source control token that can't be read no longer falls back to another account by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31646 * feat(secrets): answer a secret request with a secret provider reference by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31670 * fix(settings): removing a secret provider clears the fields that used it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31651 * docs(user): explain secret providers and secret requests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31654 * feat(server): transcribe audio on a chosen environment by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30625 * feat(web): opt into environment dictation on this device by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30623 * feat(desktop): dictate into browser annotations with the same consent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30624 * feat(mobile): opt in to dictation on a paired environment by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31059 * fix(web): keep the folder path caret in place while editing by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31642 * perf(mobile): call the highlights lexer through Nitro, up to 10x faster calls on Android by @camchis in https://github.com/pingdotgg/t3code/pull/31188 * fix(claude): turns use the downloaded model catalog by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31717 * fix(gitlab): bot authors are flagged as bots by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30383 * fix(gitlab): merge requests can edit their labels by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30483 * perf(mobile): faster thread sync, connects, and reconnects on bad wifi by @Bil0000 in https://github.com/pingdotgg/t3code/pull/28487 * fix(mobile): iPad composer drops when the keyboard floats or minimizes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31251 * perf(mobile): stop iOS syntax highlighting from looking up a thread-local on every lexer call by @camchis in https://github.com/pingdotgg/t3code/pull/31187 * fix(gitlab): edited comments wake PR watchers by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30403 * fix(gitlab): merge requests can delete their source branch by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30453 * fix(gitlab): comments link to their note on GitLab by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30411 * fix(mobile): iOS terminal accepts Chinese, Japanese and Korean input by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30546 * fix(mobile): Android app no longer stays offline after reopening by @kahlstrm in https://github.com/pingdotgg/t3code/pull/28625 * fix(mobile): show one Android notification per thread completion by @shivamhwp in https://github.com/pingdotgg/t3code/pull/27699 * fix(mobile): stop Android composer flicker at the wrap boundary by @shivamhwp in https://github.com/pingdotgg/t3code/pull/27682 * fix(mobile): Android dictation works with regional preferences set by @EhsanulHaqueSiam in https://github.com/pingdotgg/t3code/pull/31030 * fix(mobile): iOS compose button no longer grows while a tab is pressed by @Jerematix in https://github.com/pingdotgg/t3code/pull/28955 * fix(mobile): Android terminal Backspace deletes on the first press by @only21mil in https://github.com/pingdotgg/t3code/pull/24983 * fix(mobile): Android secret requests no longer offer password manager logins by @voida6 in https://github.com/pingdotgg/t3code/pull/29825 * fix(mobile): iOS composer text no longer turns invisible mid-draft by @wojas in https://github.com/pingdotgg/t3code/pull/30135 * fix(mobile): iOS 26 scroll edge effect no longer hides composer text by @wojas in https://github.com/pingdotgg/t3code/pull/30138 * fix(mobile): typing after in-app dictation reaches the draft again on iOS by @wojas in https://github.com/pingdotgg/t3code/pull/30139 * perf(mobile): skip obsolete queued iOS diff row decodes by @saphid in https://github.com/pingdotgg/t3code/pull/25287 * fix(gitlab): the checks and review list filters work by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30433 * fix(mobile): keep Android tablet cold launches in landscape by @Dwite in https://github.com/pingdotgg/t3code/pull/28825 * fix(pr): GitCafe attachments render in pull request bodies by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31741 * fix(gitlab): unresolved overview threads count as review findings by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30397 * fix(mobile): Android alerts and the live card show the same status bar icon by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/29738 * fix(mobile): keyboard state follows Android's nonanimated IME show by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25847 * fix(mobile): Android composer no longer accepts autofill by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27489 * perf(mobile): skip obsolete queued full token decodes by @saphid in https://github.com/pingdotgg/t3code/pull/25320 * fix(gitlab): threads on changed code show as outdated by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30423 * fix(gitlab): the checks panel lists each pipeline job by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/28728 * perf(mobile): avoid code row scans while dragging file paths by @saphid in https://github.com/pingdotgg/t3code/pull/25484 * fix(chat): show one usage-limit recovery notice by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29292 * fix(web): adding to the composer no longer drops earlier findings and selections by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/24990 * feat(pull-requests): PR composers complete @user mentions by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30747 * feat(web): add pull request comments to the chat by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30579 * feat(gitlab): link issue, merge request, commit and user references by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30524 * fix(mobile): sending on iOS no longer leaves an autocorrected draft behind by @saphid in https://github.com/pingdotgg/t3code/pull/26452 * feat(gitlab): reviews can request changes by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30549 * feat(pull-requests): PR composers complete #123 and GitLab !123 references by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30857 * feat(gitlab): merge requests from forks can toggle maintainer edits by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/30518 * fix(prs): reviewer menu searches past the first page and keeps GitLab's requested reviewers by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/22489 * fix(ui): snooze menu times match the menu's typography by @ishaanko in https://github.com/pingdotgg/t3code/pull/30596 * feat(web): a Labs setting hides tool calls so threads read like a chat by @flamboh in https://github.com/pingdotgg/t3code/pull/30000 * feat(scheduled-tasks): tasks link to their thread by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31764 * fix(shared): recognize numeric bare-repository config by @macodev00 in https://github.com/pingdotgg/t3code/pull/27500 * fix(server): a command id reused for two threads at once no longer succeeds for both by @saphid in https://github.com/pingdotgg/t3code/pull/18385 * fix(server): coalesce tool output before it fills the live buffer by @snarkyalyx in https://github.com/pingdotgg/t3code/pull/16317 * perf(server): Windows git reads no longer start a console host by @AkiVonAkira in https://github.com/pingdotgg/t3code/pull/19288 * fix(server): a publish whose first push fails still shows the new remote by @saphid in https://github.com/pingdotgg/t3code/pull/29688 * fix(server): reverting files removes what a new .gitignore from the turn was hiding by @saphid in https://github.com/pingdotgg/t3code/pull/29795 * fix(server): Codex titles no longer fail on ChatGPT accounts without gpt-6-luna by @Muzammil-Bit in https://github.com/pingdotgg/t3code/pull/30078 * fix(desktop): quit no longer orphans a backend that is slow to stop by @saphid in https://github.com/pingdotgg/t3code/pull/22572 * perf(server): GitHub activity reads skip PR-wide fields on later review-thread pages (8.9 s → 6.8 s median) by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/30294 * perf(server): the headless browser closes after five idle minutes (517 MiB → 1.6 MiB median) by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/30306 * fix(provider-acp-registry): surface agent error message on sign-in failure by @iScabrous in https://github.com/pingdotgg/t3code/pull/30295 * perf(server): a slow host no longer delays other watched PRs' wakes (935 ms → 65 ms median) by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/30291 * perf(server): PR cache invalidation no longer waits on other projects' reads (1,163 ms → 0.12 ms median) by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/30293 * fix(opencode): tools stopped mid-run show as interrupted, not failed by @saphid in https://github.com/pingdotgg/t3code/pull/29762 * fix(client-runtime): pull request bodies with CRLF line endings keep their code blocks whole by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30352 * fix(shared): long assistant quote chips no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30367 * fix(cli): t3 connect unlink no longer warns about a server that is gone by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30324 * fix(server): ACP agents get T3CODE_THREAD_ID like Claude and Codex sessions by @frankhommers in https://github.com/pingdotgg/t3code/pull/30361 * fix(server): accept a case-insensitive DPoP authorization scheme by @spoukyii in https://github.com/pingdotgg/t3code/pull/30337 * fix(server): usage-limit auto-resume no longer arms subagents of archived or deleted parents by @spoukyii in https://github.com/pingdotgg/t3code/pull/30363 * fix(provider-core): background work notices no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30369 * fix(client-runtime): subagent previews no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30391 * fix(server): explain fake-IP DNS failures in HTML previews by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30318 * perf(resource-monitor): Linux terminal process checks use a third of the CPU by @jaikhuranna in https://github.com/pingdotgg/t3code/pull/30381 * fix(server): failed Claude text generation shows Claude's error instead of raw JSON by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30331 * fix(server): pull request tools point a bare thread uuid at its mcp: thread by @spoukyii in https://github.com/pingdotgg/t3code/pull/30375 * fix(server): message search keeps results when a short non-Latin word differs in case by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30332 * fix(web): preview annotation chip labels no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30345 * fix(server): thread titles no longer fail when the text generation provider can't run by @medric-z in https://github.com/pingdotgg/t3code/pull/29607 * fix(web): refresh resource timeline while diagnostics is open by @shawk08033 in https://github.com/pingdotgg/t3code/pull/30528 * fix(usage): a CLIProxy hub saved as its management.html panel URL shows accounts again by @Jolymmiles in https://github.com/pingdotgg/t3code/pull/25579 * fix(shared): command output keeps text after an unterminated OSC by @spoukyii in https://github.com/pingdotgg/t3code/pull/30479 * fix(cli): t3 up's retry and restart hints keep --base-dir by @spoukyii in https://github.com/pingdotgg/t3code/pull/30480 * fix(server): a branch tracking another local branch no longer shows that branch's PR by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30563 * fix(web): terminal links keep route and pnpm paths in one piece by @tiliakoos in https://github.com/pingdotgg/t3code/pull/30603 * fix(shared): CSV and TSV attachments keep their table under generic file types by @tiliakoos in https://github.com/pingdotgg/t3code/pull/30601 * fix(server): report Claude settings compaction threshold by @voltcrash in https://github.com/pingdotgg/t3code/pull/29220 * fix(cli): t3 project remove finds a deleted project by a relative or trailing-slash path by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30562 * fix(server): an invalid regex in project search still finds its text when Match case is off by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30569 * fix(server): agents see why a project update was refused instead of a generic failure by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30564 * perf(client-runtime): stop tracing streamed thread batches by @ElliotDrel in https://github.com/pingdotgg/t3code/pull/30679 * fix(server): rewound Codex threads import their history from before the rewind by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30652 * fix(server): keep writes moving with a larger WAL limit by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31804 * fix(opencode): edits that delete text keep their empty replacement by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30643 * fix(forgejo): read author assignees once by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30686 * fix(cli): t3 pair's no-running-server hint keeps --base-dir by @saphid in https://github.com/pingdotgg/t3code/pull/30689 * perf(server): stop tracing routine port polling helpers by @ElliotDrel in https://github.com/pingdotgg/t3code/pull/30678 * fix(server): ACP MCP bridge no longer splits messages on U+2028/U+2029 by @geezoria in https://github.com/pingdotgg/t3code/pull/30719 * fix(cli): expand home-relative thread project paths by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30721 * perf(ci): boot the built web client in Build and Typecheck, not Test Web (about 22 s off the longest job) by @Pyseph in https://github.com/pingdotgg/t3code/pull/30752 * fix(shared): ignore unfinished quoted Git config continuations by @imharjot in https://github.com/pingdotgg/t3code/pull/30743 * fix(review-guide): preserve excerpt line terminators by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30717 * feat(pi): show extension status in existing controls by @StiensWout in https://github.com/pingdotgg/t3code/pull/23901 * fix(fx): preserve literal unicode escape text in clipped replies by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30701 * perf(dev): knip:check runs its two passes side by side (34 s → 26 s median on 4 CPUs) by @Pyseph in https://github.com/pingdotgg/t3code/pull/30737 * fix(shared): command output no longer prints the final byte of escape sequences with intermediates by @geezoria in https://github.com/pingdotgg/t3code/pull/30724 * fix(web): restore folder breadcrumb trails when reopening tabs by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30706 * fix(client-runtime): sanitized error stacks keep line and column for URLs with a query by @geezoria in https://github.com/pingdotgg/t3code/pull/30726 * fix(shared): shortened agent paths like /tmp/... no longer become broken file chips by @saphid in https://github.com/pingdotgg/t3code/pull/30762 * fix(server): MCP auth spans no longer include the tool call by @navidnadali in https://github.com/pingdotgg/t3code/pull/30834 * fix(server): preview browser picks up Chrome 157 security fixes by @snnbotchway in https://github.com/pingdotgg/t3code/pull/30820 * fix(server): agents read RTF paragraphs that end with a backslash by @geezoria in https://github.com/pingdotgg/t3code/pull/30848 * fix(server): a late checkpoint keeps the stopped run's baselines by @navidnadali in https://github.com/pingdotgg/t3code/pull/30830 * fix(shared): preserve IPv6 hosts when switching clone protocols by @Lucenx9 in https://github.com/pingdotgg/t3code/pull/30798 * docs: explain Linux desktop installation by @voltcrash in https://github.com/pingdotgg/t3code/pull/30819 * perf(server): each live event is projected once for all subscribers by @navidnadali in https://github.com/pingdotgg/t3code/pull/30860 * fix(server): request_secret asks for one value per card by @rgrvlsk in https://github.com/pingdotgg/t3code/pull/30805 * fix(ssh): host discovery skips hidden Include matches by @Lucenx9 in https://github.com/pingdotgg/t3code/pull/30910 * docs: clarify diagnostic exports and their separate controls by @Mr-Neutr0n in https://github.com/pingdotgg/t3code/pull/30942 * docs: fix worktree cleanup path in FAQ by @jacobcorbett in https://github.com/pingdotgg/t3code/pull/31000 * fix(server): a policy that manages observability endpoints is refused instead of ignored by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/30973 * fix(client-runtime): untitled subagent titles no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30390 * fix(shared): underline styles and colours no longer scramble command output colours by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/21542 * perf(server): batch queued provider writes without waiting by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31656 * fix(server): prepare restart continuations faster on shutdown by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31807 * fix(web): keep change totals aligned beside the label by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31814 * fix(web): rank usage provider summaries by the selected metric by @dharmeshgurnani in https://github.com/pingdotgg/t3code/pull/15632 * fix(server): wait for automatic follow-ups before settling threads by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31815 * fix(web): settings descriptions use the full row and stay two lines by @flamboh in https://github.com/pingdotgg/t3code/pull/31826 * fix(voice): insert Unicode word boundaries for dictation by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31799 * fix(mobile): use preferred languages for on-device iPhone dictation by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31800 * fix(mobile): keep the opening words of local iPhone dictation by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31801 * fix(server): keep PR generation focused on the change by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31819 * chore(desktop): trace shutdown phases by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31850 * perf(server): batch shutdown recovery commits by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31854 * perf(server): batch projection recovery reads into one query by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31842 * fix(desktop): let the window shrink to 400x360 so it fits half-screen tiles by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28223 * fix(web): improve Changes row text and spacing by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31858 * feat(server): stop opted-in project actions when threads settle by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31857 * fix(build): skip Koffi source builds during cross-packaging by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31864 * fix(server): Antigravity installs on Intel Macs by @aledog007 in https://github.com/pingdotgg/t3code/pull/30189 * fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary by @joshuarossi in https://github.com/pingdotgg/t3code/pull/31285 * fix(web): keep task updates static in the timeline by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/31888 * fix(devices): keep devices listed when simulator discovery fails by @shivamhwp in https://github.com/pingdotgg/t3code/pull/25971 * fix(web): dragging a sidebar thread no longer scrolls the list to the bottom by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27691 * fix(web): tagging a thread by drag no longer scrolls the sidebar by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31924 * ci: stacked PRs stop evicting the shared pnpm cache by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31937 * fix(web): remote subagents no longer split from the lineage list by @t3dotgg in https://github.com/pingdotgg/t3code/pull/29285 * perf(ci): release uploads stop recompressing installers and CLI archives by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31942 * feat(antigravity): identify as T3 Code to agy acp 1.5.1+ by @patrick-toulme in https://github.com/pingdotgg/t3code/pull/31158 * ci(release): JS bundle jobs stop building an unused Linux helper by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31941 * feat(marketing): help search engines tell t3.codes apart from copycat sites by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31142 * perf(server): background service launcher uses 75% less memory by @t3dotgg in https://github.com/pingdotgg/t3code/pull/29284 * fix(azure-devops): a fork's same-named branch no longer hides the branch's own pull request by @saphid in https://github.com/pingdotgg/t3code/pull/29817 * perf(server): provider-thread reads start from owned rows, not every node of the thread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31012 * perf(server): stop tracing the per-event background-work probe by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31584 * perf(server): stop tracing each transcript file in usage scans by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31586 * perf(cursor): stop tracing the per-event account usage hash by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31017 * fix(muse): recover from unavailable session views by @Sidreyas in https://github.com/pingdotgg/t3code/pull/32154 * feat(web): sort and filter transcription models by @voltcrash in https://github.com/pingdotgg/t3code/pull/32045 * fix(azure-devops): existing pull requests are found for branches containing # by @aotradovec in https://github.com/pingdotgg/t3code/pull/31928 * perf(server): background PR discovery no longer delays git status after a restart by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32162 * fix(web): the citation comment box opens at the quote instead of sliding in from the corner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32141 * fix(clients): dictating a citation comment or preview annotation uses the full width by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32142 * fix(web): PR bodies keep before/after video tables intact by @bartlomiejbloniarz in https://github.com/pingdotgg/t3code/pull/25988 * perf(release): fetch the nightly Android APK in a background step by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31949 * perf(release): macOS CLI notarization no longer blocks the desktop build by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31945 * ci(release): npm publish no longer checks out and installs the workspace by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31936 * ci(release): macOS arm64 stops compressing a pnpm store it cannot save by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31955 * fix(web): relay-connected microphone destinations authorize speech requests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31778 * fix(server): a usage-limit auto-resume survives a server restart by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31292 * fix(mobile): review diff no longer goes blank after switching sections by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27960 * fix(mobile): iOS filter menus close back into their pill without clipping or garbling by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31168 * fix(mobile): Android composer renders DM Sans by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/30230 * fix(desktop): open Teams web in the preview browser by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31489 * fix(web): popovers over the desktop header respond to the pointer by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31794 * fix(web): add installable icons for Firefox on Android by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30420 * fix: show latest reply age in active thread rows by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31825 * fix(mobile): keep settled status pills readable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31635 * fix(mobile): preserve line breaks in Markdown table cells by @shivamhwp in https://github.com/pingdotgg/t3code/pull/29355 * fix(mobile): stop the work-row shimmer from updating every frame by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28530 * fix(server): t3 service install no longer moves a --base-dir service onto an empty ~/.t3 by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23878 * feat(voice): opt into cloud dictation with OpenAI, Grok, or OpenRouter by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31769 * fix(web): make first-run dictation setup discoverable by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32197 * fix(web): first-run voice setup offers a model for the user's language by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32035 * feat: auto-settle inactive threads after 7 days by default by @t3dotgg in https://github.com/pingdotgg/t3code/pull/32325 * docs(updates): say when Update all leaves a provider out by @Djordje-Stojanovic in https://github.com/pingdotgg/t3code/pull/32269 * test(server): three more tests stop assuming a POSIX host by @MikaMcFlurry in https://github.com/pingdotgg/t3code/pull/32263 * fix(server): git failures are read in English when macOS git follows the system language by @jason5545 in https://github.com/pingdotgg/t3code/pull/32252 * fix(marketing): balance fork and download heading text by @extoci in https://github.com/pingdotgg/t3code/pull/32194 * perf(shared): scan usage-limit support once per provider catalog by @luke2x in https://github.com/pingdotgg/t3code/pull/32179 * fix(pi): the T3 MCP extension file is written atomically by @rishabhx29 in https://github.com/pingdotgg/t3code/pull/32231 * fix(web): the main sidebar stays collapsed after relaunch by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24202 * fix(codex): explain speed limits on managed connections by @shivamhwp in https://github.com/pingdotgg/t3code/pull/30322 * fix(web): isolate scrollbar styles from iframe owners by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/32398 * fix(azure-devops): default-branch lookup no longer fails for missing --repository by @voltcrash in https://github.com/pingdotgg/t3code/pull/29586 * perf(server): avoid lsof polling when Linux proc is usable by @voltcrash in https://github.com/pingdotgg/t3code/pull/30011 * fix(providers): remove incomplete ChatGPT connections by @voltcrash in https://github.com/pingdotgg/t3code/pull/29280 * fix(acp): retain streamed child tool output by @StiensWout in https://github.com/pingdotgg/t3code/pull/32411 * fix(web): recover ACP settings when projects change by @StiensWout in https://github.com/pingdotgg/t3code/pull/32409 * fix(shared): inline code like `allocator.cc:217` becomes a file chip by @felixlaga in https://github.com/pingdotgg/t3code/pull/32403 * fix(server): theme files saved with a UTF-8 BOM are published instead of rejected by @felixlaga in https://github.com/pingdotgg/t3code/pull/32405 * fix(grok): long command titles no longer end in a broken character by @felixlaga in https://github.com/pingdotgg/t3code/pull/32408 * fix(github): keep review-required until required reviewers approve by @wSedlacek in https://github.com/pingdotgg/t3code/pull/32395 * feat(web): delete archived threads from the archive page by @voltcrash in https://github.com/pingdotgg/t3code/pull/22160 * fix(provider-acp): preserve UTF-8 across interleaved terminal streams by @StiensWout in https://github.com/pingdotgg/t3code/pull/32391 * fix(pi): preserve explicit thinking when switching models by @StiensWout in https://github.com/pingdotgg/t3code/pull/32389 * fix(acp): bound unread raw notification retention by @StiensWout in https://github.com/pingdotgg/t3code/pull/19585 * fix(web): keep Pi thinking controls visible before selection by @voltcrash in https://github.com/pingdotgg/t3code/pull/27397 * fix(desktop): published themes reach the app when it uses this machine's service by @not-compromised in https://github.com/pingdotgg/t3code/pull/26324 * fix(antigravity): check account access after installation by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/32446 * fix(acp): preserve native form questions and typed answers by @StiensWout in https://github.com/pingdotgg/t3code/pull/19659 * fix(antigravity): explain missing SOCKS dependency during refresh by @StiensWout in https://github.com/pingdotgg/t3code/pull/19660 * fix(cursor): use the SDK account for usage data by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/32448 * fix(web): agent sign-in defaults to Auto access by @flamboh in https://github.com/pingdotgg/t3code/pull/32186 * fix(gitlab): `glab mr accept` counts as a shell merge by @felixlaga in https://github.com/pingdotgg/t3code/pull/32400 * fix(forgejo): tea's `pull` and `m` aliases count as shell merges by @felixlaga in https://github.com/pingdotgg/t3code/pull/32401 * fix: side chats start with the parent's permission mode and reasoning level by @Iweisc in https://github.com/pingdotgg/t3code/pull/32315 * fix(mobile): center the Choose project empty-state buttons by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27450 * fix(mobile): Android terminal sends hardware-keyboard arrows, Tab, and Escape to the PTY by @only21mil in https://github.com/pingdotgg/t3code/pull/32666 * fix(mobile): group settled PR threads in the continue menu by @arifali123 in https://github.com/pingdotgg/t3code/pull/27941 * fix(mobile): shorten the model picker save action by @PixPMusic in https://github.com/pingdotgg/t3code/pull/32551 * fix(mobile): center Android header confirmation buttons by @PixPMusic in https://github.com/pingdotgg/t3code/pull/32239 * fix(muse): a declined /compact reports its reason and no longer wedges the thread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/28454 * fix(web): restore bold weight in rendered Markdown by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25694 * fix(web): device tool update buttons fit their popovers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27030 * fix(web): mobile sidebar keeps its width when shelves expand by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27541 * fix(web): lineage phase headers truncate instead of overflowing the details card by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27582 * fix(server): storage report lists project worktrees nested inside plain folders by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25883 * fix(scripts): report:renders starts on Windows without a vp shim by @only21mil in https://github.com/pingdotgg/t3code/pull/32777 * perf(server): skip oversized history during handoff selection by @AksharP5 in https://github.com/pingdotgg/t3code/pull/23821 * feat(antigravity): support agy CLI as custom binaryPath by @jorotodorovv in https://github.com/pingdotgg/t3code/pull/32503 * fix(mobile): share PDFs from the Android attachment viewer by @shivamhwp in https://github.com/pingdotgg/t3code/pull/32266 * fix(server): saved preview screenshots keep full resolution by @TonybynMp4 in https://github.com/pingdotgg/t3code/pull/28255 * fix(server): refresh linking tools in existing agent sessions by @shivamhwp in https://github.com/pingdotgg/t3code/pull/26737 * feat(server): html tools take a file path, so agents stop retyping pages by @t3dotgg in https://github.com/pingdotgg/t3code/pull/32833 * fix(search): keep whole-word title matches above busy prefixes by @shivamhwp in https://github.com/pingdotgg/t3code/pull/32242 * fix(connect): show why relay unlink failed by @shivamhwp in https://github.com/pingdotgg/t3code/pull/25198 * fix(mobile): keep scheduled task prompts clear of microphone by @shivamhwp in https://github.com/pingdotgg/t3code/pull/32498 * feat(web,mobile): move a scheduled task to another thread by @binjamshid in https://github.com/pingdotgg/t3code/pull/31379 * perf(server): Codex tool calls no longer wait on reasoning summaries by @t3dotgg in https://github.com/pingdotgg/t3code/pull/31149 * fix(web): fill combobox search fields by @shivamhwp in https://github.com/pingdotgg/t3code/pull/32926 * fix(server): mise-installed providers update through mise instead of their own updater by @ryanrhughes in https://github.com/pingdotgg/t3code/pull/21524 * perf(sidebar): avoid full git status for branch labels by @StiensWout in https://github.com/pingdotgg/t3code/pull/32947 * perf(desktop): speed up cold Linux x64 backend startup by @StiensWout in https://github.com/pingdotgg/t3code/pull/32987 * fix(clients): unloaded thread links show their title and project icon by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/32830 * fix(clients): parse angle-bracketed thread link destinations by @ScriptedAlchemy in https://github.com/pingdotgg/t3code/pull/30709 * fix(desktop): prepare server bytecode on Linux ARM64 by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/33050 * fix(desktop): open cursor:// and vscode:// file links from chat by @fixfon in https://github.com/pingdotgg/t3code/pull/23486 * perf(server): batch worktree branch allocation and avoid path collisions by @StiensWout in https://github.com/pingdotgg/t3code/pull/32934 * perf(server): skip unnecessary worktree cleanup scans by @StiensWout in https://github.com/pingdotgg/t3code/pull/32933 * fix(server): wake idle parents for late delegated results by @StiensWout in https://github.com/pingdotgg/t3code/pull/32573 * fix(mobile): keep side chats readable over the conversation by @PixPMusic in https://github.com/pingdotgg/t3code/pull/32240 * fix(desktop): declare Calendar access for hosted commands by @Lenoridev in https://github.com/pingdotgg/t3code/pull/21592 * fix(server): macOS Bash terminals now start as login shells by @fixfon in https://github.com/pingdotgg/t3code/pull/22295 * fix(web): keep the wide table scrollbar visible when it overflows by @fixfon in https://github.com/pingdotgg/t3code/pull/24084 * fix(web): file chip tooltips show the whole path by @Princeyadav05 in https://github.com/pingdotgg/t3code/pull/27993 * fix(web): sidebar search results can be dragged onto the composer by @root-daemon in https://github.com/pingdotgg/t3code/pull/28016 * fix(server): allow slow Antigravity browser preflights by @maria-rcks in https://github.com/pingdotgg/t3code/pull/25211 * fix(server): name rejected certificates when linking peers by @maria-rcks in https://github.com/pingdotgg/t3code/pull/28060 * fix(web): terminal types macOS Option-layer characters by @neominik in https://github.com/pingdotgg/t3code/pull/21596 * fix(web): boring sidebar threads drag onto the composer again by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/26724 * fix(web): Copy MCP URL uses the T3 Connect address by @t3dotgg in https://github.com/pingdotgg/t3code/pull/32937 * fix(web): cmd+shift+o picks the current project before pinned ones by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33109 * fix(server): respect gh Unix sockets for GitHub requests by @voltcrash in https://github.com/pingdotgg/t3code/pull/27733 * perf(mobile): thread list resumes from the saved cache, and large gaps reload over gzip HTTP by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32287 * feat(mobile): iOS socket compresses traffic by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32288 * perf(server): macOS worktrees open 2x faster by cloning a cached checkout by @t3dotgg in https://github.com/pingdotgg/t3code/pull/32927 * fix(web): mic button always sits next to send by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33133 * feat: Settings reclaims freed database space in one click by @t3dotgg in https://github.com/pingdotgg/t3code/pull/32941 * fix(github): hidden GitHub comments and reviews no longer show in T3 Code by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33134 * feat(mobile): long-press an image to save it to Photos by @t3dotgg in https://github.com/pingdotgg/t3code/pull/29598 * feat(settings): clean up Labs: promote tool calls, remove plan mode and old toggles by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33131 * feat: Labs option to suggest your next prompt after Claude and Codex turns by @t3dotgg in https://github.com/pingdotgg/t3code/pull/28047 * fix(antigravity): agy CLI threads open in Full access and Auto-accept edits by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33143 * test(web): OpenInPicker announcement test no longer hears the previous test by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33139 * ci(release): retry transient GitHub API errors when resolving the release commit by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33149 * fix(muse): retries show while Muse waits and fold away once it recovers by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33151 * feat(cli): npx t3 offers to install the t3 command by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33150 * fix(web): removing a secret provider lists the Simlock tokens that read from it by @MarcoDotIO in https://github.com/pingdotgg/t3code/pull/31754 * fix(server): a duplicate variable row no longer deletes a stored secret by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/31337 * chore(mobile): sync Enriched Markdown with upstream 1d00a92a by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32180 * feat(mobile): Mermaid and math fences render like they do on web by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32190 * feat(desktop): a fresh install sets up the t3 command by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33153 * fix(release): Windows signing retries transient Azure Trusted Signing errors by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33148 * fix: secret cards show the agent's sign-in link as a button by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33157 * ci(release): scheduled nightly checks read 10 KB instead of 28 MB by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33141 * docs(secrets): sign op in with a service account or Connect on remote servers by @yordis in https://github.com/pingdotgg/t3code/pull/31760 * fix(provider-core): agents ask for a sudo password through the private secret card by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27748 * ci(release): Linux desktop builds reuse cached AppImage, FPM, and 7-Zip downloads by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33142 * ci(release): hosted web alias job checks out 3 files, not the repo by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33145 * ci: startup and sidebar changes open the seeded thread before merge by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33146 * refactor(mobile): components/ui platform primitives are iOS files with .android overrides by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33173 * FEATURE: Fast and Ultrafast service tiers for Pi models by @bmdavis419 in https://github.com/pingdotgg/t3code/pull/33177 * fix(mobile): older chat messages show the date, not just the time by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33189 * feat: text generators let model APIs write titles, commits, and transcript cleanup by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33147 * fix(mobile): feature screens use the components/ui menu, dialog and search primitives by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33193 * fix(web): Markdown tasks no longer stay checked after their source is unchecked by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/27353 * fix(web): return focus to composer after timeline prompts by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/33192 * fix(mobile): SVG markers with orient="auto-start-reverse" no longer crash Android by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32812 * fix(mobile): Android keyboard clipboard pastes fold into attachments by @only21mil in https://github.com/pingdotgg/t3code/pull/24482 * fix(mobile): text no longer clips in Android desktop windows on external displays by @satchlj in https://github.com/pingdotgg/t3code/pull/19064 * fix(mobile): compose button no longer covers the last tab on iPhone by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/32995 * fix(mobile): accept image drops in the iOS message input by @12ya in https://github.com/pingdotgg/t3code/pull/25532 * fix(mobile): Android chip taps open the chip from either half by @maria-rcks in https://github.com/pingdotgg/t3code/pull/33126 * fix(mobile): iOS Agent Activity widget shows your agents instead of a blank tile by @shivamhwp in https://github.com/pingdotgg/t3code/pull/21163 * fix(mobile): Android navigation bar follows the app theme by @vinceglb in https://github.com/pingdotgg/t3code/pull/27576 * fix(android): keep diagonal horizontal swipes inside HTML blocks by @none23 in https://github.com/pingdotgg/t3code/pull/21652 * fix(mobile): keep Android live activity independent of alerts by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24933 * fix(desktop): update xa11y to 0.15.4 so App Shots read window text faster by @MatthewFeroz in https://github.com/pingdotgg/t3code/pull/33135 * feat(source-control): add Cursor Origin provider by @maria-rcks in https://github.com/pingdotgg/t3code/pull/33093 * perf(mobile): sign DPoP proofs natively, up to 355x faster on Android by @camchis in https://github.com/pingdotgg/t3code/pull/31998 * feat(marketing): localize the site in 8 languages by @maria-rcks in https://github.com/pingdotgg/t3code/pull/33155 * fix(mobile): iOS terminal can copy, paste, and stop freezing by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25828 * feat(web,mobile): @-mention a model to name it for the agent by @ScriptedAlchemy in https://github.com/pingdotgg/t3code/pull/31207 * fix(server): delegated Claude tasks report the model that ran by @shivamhwp in https://github.com/pingdotgg/t3code/pull/27753 * fix(mobile): nested code blocks no longer overlap the next message on Android by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/28524 * refactor: upgrade Legend List to 3.7.2 and drop our list workarounds by @jmeistrich in https://github.com/pingdotgg/t3code/pull/28125 * fix(mobile): select file text across lines on Android by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31286 * fix(mobile): restore the sidebar toggle and drop the inspector toggle on iPhone Duo by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33213 * fix(server): phones get the approval push when a subagent waits by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24079 * fix(deps): update vulnerable dependencies and lockfile resolutions by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33226 * fix(mobile): Android sends with Return on a hardware keyboard by @shivamhwp in https://github.com/pingdotgg/t3code/pull/21687 * fix(server): include thread titles in MCP links by @shivamhwp in https://github.com/pingdotgg/t3code/pull/33255 * fix(composer): persist model picks before the next message by @shivamhwp in https://github.com/pingdotgg/t3code/pull/31739 * fix(server): Codex /goal no longer tries to create the goal twice by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33260 * fix(server): steering during a Claude compaction shows it stopped, not failed by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33291 * fix(server): background command results reach a running Codex goal by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33268 * perf(mobile): threads open over the socket without an extra HTTP round trip by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33306 * feat(web,server): use T3 Code in another app (MCP) by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33196 * feat(web): first run is one Welcome page instead of a 3-step wizard by @t3dotgg in https://github.com/pingdotgg/t3code/pull/33209 * fix(desktop): chat videos go fullscreen across the whole screen again by @Luca-Lucidera in https://github.com/pingdotgg/t3code/pull/25835 * fix(desktop): recording cursor stays above modal dialogs and popovers by @mateusjunges in https://github.com/pingdotgg/t3code/pull/27046 * perf(web): changing file counts no longer re-render the chat view by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/28571 * fix(desktop): a window saved 1px past a display edge reopens where it was by @Abhishek-B-R in https://github.com/pingdotgg/t3code/pull/28638 * fix(web): open citation comments with the caret at the end by @kimkhoi2202 in https://github.com/pingdotgg/t3code/pull/28667 * fix(desktop): page redirects during loading no longer show a navigation error by @shivamhwp in https://github.com/pingdotgg/t3code/pull/28814 * fix(web): banner button hover follows the banner's rounded corners by @Byntham in https://github.com/pingdotgg/t3code/pull/29018 * fix(web,mobile): per-thread auto-settle menu says what it does by @iamabhishekt in https://github.com/pingdotgg/t3code/pull/29025 * perf(web): switching threads no longer re-renders every sidebar row by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/29150 * fix(web): deleting an archived thread also clears its draft, staged uploads and terminal state by @saphid in https://github.com/pingdotgg/t3code/pull/29164 * perf(web): Appearance settings no longer re-probe fonts on every open by @chelokot in https://github.com/pingdotgg/t3code/pull/29171 * fix(desktop): discover browser profiles in XDG config home by @voltcrash in https://github.com/pingdotgg/t3code/pull/29243 * fix(desktop): annotating inside a page's dialog no longer closes it by @thatsnoi in https://github.com/pingdotgg/t3code/pull/29287 * fix(desktop): preserve concurrent downloads with the same name by @voltcrash in https://github.com/pingdotgg/t3code/pull/29308 * fix(web): removing a queued message's attachment counts as an edit when its run starts by @saphid in https://github.com/pingdotgg/t3code/pull/29601 * fix(web): keybinding settings recognize the previewOpen condition by @saphid in https://github.com/pingdotgg/t3code/pull/29642 * fix(web): thread navigation shortcuts honor previewFocus and previewOpen conditions by @saphid in https://github.com/pingdotgg/t3code/pull/29678 * fix(web): editing a scheduled task shows its saved time when the hour has one digit by @saphid in https://github.com/pingdotgg/t3code/pull/29851 * perf(web): long reasoning previews format in linear time (600 ms → 1.3 ms median) by @Yuruzuu in https://github.com/pingdotgg/t3code/pull/30038 * fix(web): keep typed unpublished variable rows across settings re-deliveries by @justsrc in https://github.com/pingdotgg/t3code/pull/30115 * fix(web): deleting the open thread no longer opens a side chat or subagent by @spoukyii in https://github.com/pingdotgg/t3code/pull/30370 * fix(web): review findings handed to a thread no longer end in a broken character by @spoukyii in https://github.com/pingdotgg/t3code/pull/30392 * fix(web): project content search no longer opens a result on an IME Enter by @spoukyii in https://github.com/pingdotgg/t3code/pull/30448 * refactor(shared): simplify remote branch filtering by @roxvi in https://github.com/pingdotgg/t3code/pull/30456 * fix(web): an IME Escape no longer sends the file picker or content search back to the palette by @spoukyii in https://github.com/pingdotgg/t3code/pull/30467 * fix(composer): bound long path search requests on web and mobile by @Jo2234 in https://github.com/pingdotgg/t3code/pull/30714 * fix(web): rich text previews keep paragraphs that end with a backslash by @geezoria in https://github.com/pingdotgg/t3code/pull/30812 * fix(web): deleting a thread clears its side chats' drafts by @saphid in https://github.com/pingdotgg/t3code/pull/29832 * fix(mobile): thread row timers no longer reflow the title every second by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33447 * fix(mobile): smooth expand/collapse when the feed is at the bottom by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33449 * fix(mobile): keep project and environment pickers reachable with the keyboard up by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33456 * chore(mobile): update Expo SDK 58 and React Native native modules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33228 * ci: give Release Smoke 15 minutes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/33478 * chore(mobile): update gesture handler and keyboard controller by @juliusmarminge in https://github.com/…

Refs: #28113
What's fixed: The active mobile work-row shimmer runs a native timing loop on every display frame, including its flat pause. Advance the same native mask in 12 steps per sweep, with no progress updates during the pause. Keep the existing focus, background and Reduce Motion guards.
Evidence:
Current-head audit follow-up: complete
check:changedoutput and exit 0, and native iOS sweep/pause cadence, raw observations, recordings and independent audit. Native progress writes fell from 81–82 per sweep and 83–88 per plateau to 12 per sweep and zero in each observed quiet gap. These measurements use an instrumented Debug simulator. The POCO F4 optimized Release comparison remains pending; this PR stays in draft.Before and after on an iPad mini A17 Pro simulator, iOS 27.0, using test data. Main at
ce48e459001817092f45f70f334212bb2b973288and this branch at2f5131494415552c16c8c8e72380d6c9a6051889use the same native development client.Before, active work row:

After, active work row:

Before on iOS, Replay turn through completion:
before-ios.mp4
After on iOS, stepped sweep through completion:
after-ios.mp4
After on iOS, resize during a turn:
ios-resize-check.mp4
After on iOS, background and resume during a turn:
ios-resume-check.mp4
After on iOS, Reduce Motion enabled before a turn:
ios-reduce-motion-check.mp4
Android 14, POCO F4, this branch's JavaScript on the matching cached T3 Code Dev client, native fingerprint
971743703b097b8870b39ff842d130f50b115eeb. Send a Replay turn, show the stepped work row, and complete:android-current-check.mp4
After on Android, background and resume while the turn is active, then completion:
android-current-resume-check.mp4
Not shown: physical iPhone power consumption, compositor frame counts or Release-build performance.
Implemented with Opus 5.5 in Claude Code. Tested and reviewed with gpt-6.1-sol in Codex.