PR #13230 verification, 2026-10-26 base e5ea25d1292e5342db8508bf48ded67b88b82b82 head 37c55e44a0452762555432e89bea47e8487b33ee ACP 1.3.0 Linux x64 archive SHA256 9fb60956af0a9d76220a4db91ca9ac88e2a2372ad68f985ab5fceace6b825b96 Production prepareAntigravityProfile/buildAntigravityAcpSpawnInput; temporary isolated profiles; no credentials. Only isolated children inherit zero realtime limits. Successful probes terminated by captured PID with SIGTERM after initialize. === main-zero === {"label":"main-zero","limits":["Max realtime priority 0 0 ","Max realtime timeout 0 0 us "],"seccomp":["NoNewPrivs:\t0","Seccomp:\t0","Seccomp_filters:\t0"],"command":"/tmp/13230-runtime/agy_acp_server.par","args":["--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} {"pid":30551,"code":null,"signal":"SIGKILL","initialized":false,"stderr":""} === main-unlimited === {"label":"main-unlimited","limits":["Max realtime priority 0 0 ","Max realtime timeout unlimited unlimited us "],"seccomp":["NoNewPrivs:\t0","Seccomp:\t0","Seccomp_filters:\t0"],"command":"/tmp/13230-runtime/agy_acp_server.par","args":["--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} initialize {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":true,"embeddedContext":true},"mcpCapabilities":{"http":true,"sse":true},"sessionCapabilities":{"list":{},"resume":{}},"auth":{"logout":{}}},"authMethods":[{"id":"oauth-personal","name":"Log in with Google","description":"Log in with your Google account"},{"id":"oauth-business","name":"Log in with Gemini Enterprise","description":"Log in with your Gemini Enterprise account"},{"id":"gemini-api-key","name":"Gemini API key","description":"Use an API key with Gemini Developer API"},{"id":"agent-platform","name":"Gemini Enterprise Agent Platform","description":"Use Gemini Enterprise Agent Platform (formerly Vertex AI) with Application Default Credentials or an API key"}],"agentInfo":{"name":"antigravity-acp","title":"Google Antigravity","version":"1.3.0"}}} {"pid":30600,"code":null,"signal":"SIGTERM","initialized":true,"stderr":"https://symbolize.corp.google.com/r/?trace=5b415c186e50,7adb60c4532f,5b415dfc8101,5b415f540081,5b41687208ae,5b415dc7bd08,5b415dfb431b,5b41611cf4f9,5b415f13029a,5b4167e3ce25,7adb60c2a1c9,7adb60c2a28a,5b41602ee399&map=fb3bd0584014780e0386b783d39f840f:5b4156e00000-5b4168939de0 \n*** SIGTERM received by PID 30600 (TID 30600) on cpu 0, si_code=0, from PID 30581; stack trace: ***\nPC: @ 0x5b415c186e50 (unknown) __llvm_libc_google3::epoll_wait()\n @ 0x5b416808f5d7 2272 FailureSignalHandler()\n @ 0x7adb60c45330 151021808 (unknown)\n @ 0x5b415dfc8102 2432 _PyEval_EvalFrameDefault\n @ 0x5b415f540082 224 PyEval_EvalCode\n @ 0x5b41687208af 112 builtin_exec\n @ 0x5b415dc7bd09 256 PyObject_Vectorcall\n @ 0x5b415dfb431c 2432 _PyEval_EvalFrameDefault\n @ 0x5b41611cf4fa 176 _PyEval_Vector\n @ 0x5b415f13029b 576 PyObject_CallMethod\n @ 0x5b4167e3ce26 1664 devtools::python_launcher::Launcher_Main()\n @ 0x7adb60c2a1ca 160 (unknown)\n @ 0x7adb60c2a28b 96 __libc_start_main\n @ 0x5b41602ee39a (unknown) _start\nhttps://symbolize.corp.google.com/r/?trace=5b415c186e50,5b416808f5d6,7adb60c4532f,5b415dfc8101,5b415f540081,5b41687208ae,5b415dc7bd08,5b415dfb431b,5b41611cf4f9,5b415f13029a,5b4167e3ce25,7adb60c2a1c9,7adb60c2a28a,5b41602ee399&map=fb3bd0584014780e0386b783d39f840f:5b4156e00000-5b4168939de0 \nE1026 13:58:08.703120 30600 coredump_hook.cc:250] RAW: Remote crash gathering disabled for SIGTERM.\nFatal Python error from unexpected signum: 15\n\nCurrent thread 0x00007adb60bfe0c0 [agy_acp_server.] (most recent call first):\n File \"//selectors.py\", line 452 in select\n File \"//asyncio/base_events.py\", line 2019 in _run_once\n File \"//asyncio/base_events.py\", line 677 in run_forever\n File \"//asyncio/base_events.py\", line 706 in run_until_complete\n File \"//asyncio/runners.py\", line 127 in run\n File \"//asyncio/runners.py\", line 204 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 185 in main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 529 in _run_main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 609 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 189 in \n File \"\", line 35 in _run_code_in_main\n File \"\", line 174 in run_filename_from_loader_as_main\n\nCurrent thread's C stack trace (most recent call first):\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at _Py_DumpStack+0x62 [0x5b41687bab22]\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at +0x1142c1c8 [0x5b416822c1c8]\n B"} === head-zero === {"label":"head-zero","limits":["Max realtime priority 0 0 ","Max realtime timeout 0 0 us "],"seccomp":["NoNewPrivs:\t0","Seccomp:\t0","Seccomp_filters:\t0"],"command":"/usr/bin/python3","args":["-I","-c","","/tmp/13230-runtime/agy_acp_server.par","--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} child-status [ 'Name:\tagy_acp_server.', 'Pid:\t33507', 'NoNewPrivs:\t1', 'Seccomp:\t2' ] initialize {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":true,"embeddedContext":true},"mcpCapabilities":{"http":true,"sse":true},"sessionCapabilities":{"list":{},"resume":{}},"auth":{"logout":{}}},"authMethods":[{"id":"oauth-personal","name":"Log in with Google","description":"Log in with your Google account"},{"id":"oauth-business","name":"Log in with Gemini Enterprise","description":"Log in with your Gemini Enterprise account"},{"id":"gemini-api-key","name":"Gemini API key","description":"Use an API key with Gemini Developer API"},{"id":"agent-platform","name":"Gemini Enterprise Agent Platform","description":"Use Gemini Enterprise Agent Platform (formerly Vertex AI) with Application Default Credentials or an API key"}],"agentInfo":{"name":"antigravity-acp","title":"Google Antigravity","version":"1.3.0"}}} {"pid":33507,"code":null,"signal":"SIGTERM","initialized":true,"stderr":"https://symbolize.corp.google.com/r/?trace=606c72b86e50,7e7a56c4532f,606c749c8101,606c75f40081,606c7f1208ae,606c7467bd08,606c749b431b,606c77bcf4f9,606c75b3029a,606c7e83ce25,7e7a56c2a1c9,7e7a56c2a28a,606c76cee399&map=fb3bd0584014780e0386b783d39f840f:606c6d800000-606c7f339de0 \n*** SIGTERM received by PID 33507 (TID 33507) on cpu 1, si_code=0, from PID 33488; stack trace: ***\nPC: @ 0x606c72b86e50 (unknown) __llvm_libc_google3::epoll_wait()\n @ 0x606c7ea8f5d7 2272 FailureSignalHandler()\n @ 0x7e7a56c45330 (unknown) (unknown)\n @ 0x606c749c8102 2432 _PyEval_EvalFrameDefault\n @ 0x606c75f40082 224 PyEval_EvalCode\n @ 0x606c7f1208af 112 builtin_exec\n @ 0x606c7467bd09 256 PyObject_Vectorcall\n @ 0x606c749b431c 2432 _PyEval_EvalFrameDefault\n @ 0x606c77bcf4fa 176 _PyEval_Vector\n @ 0x606c75b3029b 576 PyObject_CallMethod\n @ 0x606c7e83ce26 1664 devtools::python_launcher::Launcher_Main()\n @ 0x7e7a56c2a1ca 160 (unknown)\n @ 0x7e7a56c2a28b 96 __libc_start_main\n @ 0x606c76cee39a (unknown) _start\nhttps://symbolize.corp.google.com/r/?trace=606c72b86e50,606c7ea8f5d6,7e7a56c4532f,606c749c8101,606c75f40081,606c7f1208ae,606c7467bd08,606c749b431b,606c77bcf4f9,606c75b3029a,606c7e83ce25,7e7a56c2a1c9,7e7a56c2a28a,606c76cee399&map=fb3bd0584014780e0386b783d39f840f:606c6d800000-606c7f339de0 \nE1026 14:01:09.610693 33507 coredump_hook.cc:250] RAW: Remote crash gathering disabled for SIGTERM.\nFatal Python error from unexpected signum: 15\n\nCurrent thread 0x00007e7a56fe80c0 [agy_acp_server.] (most recent call first):\n File \"//selectors.py\", line 452 in select\n File \"//asyncio/base_events.py\", line 2019 in _run_once\n File \"//asyncio/base_events.py\", line 677 in run_forever\n File \"//asyncio/base_events.py\", line 706 in run_until_complete\n File \"//asyncio/runners.py\", line 127 in run\n File \"//asyncio/runners.py\", line 204 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 185 in main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 529 in _run_main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 609 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 189 in \n File \"\", line 35 in _run_code_in_main\n File \"\", line 174 in run_filename_from_loader_as_main\n\nCurrent thread's C stack trace (most recent call first):\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at _Py_DumpStack+0x62 [0x606c7f1bab22]\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at +0x1142c1c8 [0x606c7ec2c1c8]\n B"} === head-unlimited === {"label":"head-unlimited","limits":["Max realtime priority 0 0 ","Max realtime timeout unlimited unlimited us "],"seccomp":["NoNewPrivs:\t0","Seccomp:\t0","Seccomp_filters:\t0"],"command":"/tmp/13230-runtime/agy_acp_server.par","args":["--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} initialize {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":true,"embeddedContext":true},"mcpCapabilities":{"http":true,"sse":true},"sessionCapabilities":{"list":{},"resume":{}},"auth":{"logout":{}}},"authMethods":[{"id":"oauth-personal","name":"Log in with Google","description":"Log in with your Google account"},{"id":"oauth-business","name":"Log in with Gemini Enterprise","description":"Log in with your Gemini Enterprise account"},{"id":"gemini-api-key","name":"Gemini API key","description":"Use an API key with Gemini Developer API"},{"id":"agent-platform","name":"Gemini Enterprise Agent Platform","description":"Use Gemini Enterprise Agent Platform (formerly Vertex AI) with Application Default Credentials or an API key"}],"agentInfo":{"name":"antigravity-acp","title":"Google Antigravity","version":"1.3.0"}}} {"pid":30662,"code":null,"signal":"SIGTERM","initialized":true,"stderr":"https://symbolize.corp.google.com/r/?trace=5a3240586e50,7e7359a4532f,5a32423c8101,5a3243940081,5a324cb208ae,5a324207bd08,5a32423b431b,5a32455cf4f9,5a324353029a,5a324c23ce25,7e7359a2a1c9,7e7359a2a28a,5a32446ee399&map=fb3bd0584014780e0386b783d39f840f:5a323b200000-5a324cd39de0 \n*** SIGTERM received by PID 30662 (TID 30662) on cpu 2, si_code=0, from PID 30643; stack trace: ***\nPC: @ 0x5a3240586e50 (unknown) __llvm_libc_google3::epoll_wait()\n @ 0x5a324c48f5d7 2272 FailureSignalHandler()\n @ 0x7e7359a45330 190244720 (unknown)\n @ 0x5a32423c8102 2432 _PyEval_EvalFrameDefault\n @ 0x5a3243940082 224 PyEval_EvalCode\n @ 0x5a324cb208af 112 builtin_exec\n @ 0x5a324207bd09 256 PyObject_Vectorcall\n @ 0x5a32423b431c 2432 _PyEval_EvalFrameDefault\n @ 0x5a32455cf4fa 176 _PyEval_Vector\n @ 0x5a324353029b 576 PyObject_CallMethod\n @ 0x5a324c23ce26 1664 devtools::python_launcher::Launcher_Main()\n @ 0x7e7359a2a1ca 160 (unknown)\n @ 0x7e7359a2a28b 96 __libc_start_main\n @ 0x5a32446ee39a (unknown) _start\nhttps://symbolize.corp.google.com/r/?trace=5a3240586e50,5a324c48f5d6,7e7359a4532f,5a32423c8101,5a3243940081,5a324cb208ae,5a324207bd08,5a32423b431b,5a32455cf4f9,5a324353029a,5a324c23ce25,7e7359a2a1c9,7e7359a2a28a,5a32446ee399&map=fb3bd0584014780e0386b783d39f840f:5a323b200000-5a324cd39de0 \nE1026 13:58:10.877117 30662 coredump_hook.cc:250] RAW: Remote crash gathering disabled for SIGTERM.\nFatal Python error from unexpected signum: 15\n\nCurrent thread 0x00007e7359cea0c0 [agy_acp_server.] (most recent call first):\n File \"//selectors.py\", line 452 in select\n File \"//asyncio/base_events.py\", line 2019 in _run_once\n File \"//asyncio/base_events.py\", line 677 in run_forever\n File \"//asyncio/base_events.py\", line 706 in run_until_complete\n File \"//asyncio/runners.py\", line 127 in run\n File \"//asyncio/runners.py\", line 204 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 185 in main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 529 in _run_main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 609 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 189 in \n File \"\", line 35 in _run_code_in_main\n File \"\", line 174 in run_filename_from_loader_as_main\n\nCurrent thread's C stack trace (most recent call first):\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at _Py_DumpStack+0x62 [0x5a324cbbab22]\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at +0x1142c1c8 [0x5a324c62c1c8]\n B"} === head-filter === {"label":"head-existing-filter","limits":["Max realtime priority 0 0 ","Max realtime timeout 0 0 us "],"seccomp":["NoNewPrivs:\t1","Seccomp:\t2","Seccomp_filters:\t1"],"command":"/tmp/13230-runtime/agy_acp_server.par","args":["--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} initialize {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":true,"embeddedContext":true},"mcpCapabilities":{"http":true,"sse":true},"sessionCapabilities":{"list":{},"resume":{}},"auth":{"logout":{}}},"authMethods":[{"id":"oauth-personal","name":"Log in with Google","description":"Log in with your Google account"},{"id":"oauth-business","name":"Log in with Gemini Enterprise","description":"Log in with your Gemini Enterprise account"},{"id":"gemini-api-key","name":"Gemini API key","description":"Use an API key with Gemini Developer API"},{"id":"agent-platform","name":"Gemini Enterprise Agent Platform","description":"Use Gemini Enterprise Agent Platform (formerly Vertex AI) with Application Default Credentials or an API key"}],"agentInfo":{"name":"antigravity-acp","title":"Google Antigravity","version":"1.3.0"}}} {"pid":32848,"code":null,"signal":"SIGTERM","initialized":true,"stderr":"https://symbolize.corp.google.com/r/?trace=637284b86e50,7889b164532f,6372869c8101,637287f40081,6372911208ae,63728667bd08,6372869b431b,637289bcf4f9,637287b3029a,63729083ce25,7889b162a1c9,7889b162a28a,637288cee399&map=fb3bd0584014780e0386b783d39f840f:63727f800000-637291339de0 \n*** SIGTERM received by PID 32848 (TID 32848) on cpu 1, si_code=0, from PID 32829; stack trace: ***\nPC: @ 0x637284b86e50 (unknown) __llvm_libc_google3::epoll_wait()\n @ 0x637290a8f5d7 2272 FailureSignalHandler()\n @ 0x7889b1645330 (unknown) (unknown)\n @ 0x6372869c8102 2432 _PyEval_EvalFrameDefault\n @ 0x637287f40082 224 PyEval_EvalCode\n @ 0x6372911208af 112 builtin_exec\n @ 0x63728667bd09 256 PyObject_Vectorcall\n @ 0x6372869b431c 2432 _PyEval_EvalFrameDefault\n @ 0x637289bcf4fa 176 _PyEval_Vector\n @ 0x637287b3029b 576 PyObject_CallMethod\n @ 0x63729083ce26 1664 devtools::python_launcher::Launcher_Main()\n @ 0x7889b162a1ca 160 (unknown)\n @ 0x7889b162a28b 96 __libc_start_main\n @ 0x637288cee39a (unknown) _start\nhttps://symbolize.corp.google.com/r/?trace=637284b86e50,637290a8f5d6,7889b164532f,6372869c8101,637287f40081,6372911208ae,63728667bd08,6372869b431b,637289bcf4f9,637287b3029a,63729083ce25,7889b162a1c9,7889b162a28a,637288cee399&map=fb3bd0584014780e0386b783d39f840f:63727f800000-637291339de0 \nE1026 14:00:48.869124 32848 coredump_hook.cc:250] RAW: Remote crash gathering disabled for SIGTERM.\nFatal Python error from unexpected signum: 15\n\nCurrent thread 0x00007889b15fe0c0 [agy_acp_server.] (most recent call first):\n File \"//selectors.py\", line 452 in select\n File \"//asyncio/base_events.py\", line 2019 in _run_once\n File \"//asyncio/base_events.py\", line 677 in run_forever\n File \"//asyncio/base_events.py\", line 706 in run_until_complete\n File \"//asyncio/runners.py\", line 127 in run\n File \"//asyncio/runners.py\", line 204 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 185 in main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 529 in _run_main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 609 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 189 in \n File \"\", line 35 in _run_code_in_main\n File \"\", line 174 in run_filename_from_loader_as_main\n\nCurrent thread's C stack trace (most recent call first):\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at _Py_DumpStack+0x62 [0x6372911bab22]\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at +0x1142c1c8 [0x637290c2c1c8]\n B"} probe source (main runs import exact main module): import * as Effect from 'effect/Effect'; import * as NodeServices from '@effect/platform-node/NodeServices'; import {prepareAntigravityProfile, buildAntigravityAcpSpawnInput} from './src/provider/antigravityAuthSupport.ts'; import {mkdtemp, rm, readFile} from 'node:fs/promises'; import {spawn} from 'node:child_process'; const root=await mkdtemp('/tmp/13230-profile-'); try { const profile=await Effect.runPromise(prepareAntigravityProfile({profileDirectory:root+'/profile',userHome:root}).pipe(Effect.provide(NodeServices.layer))); const input=buildAntigravityAcpSpawnInput({installation:{executablePath:'/tmp/13230-runtime/agy_acp_server.par',harnessPath:'/tmp/13230-runtime/localharness_external'},profile,cwd:root}); console.log(JSON.stringify({label:process.env.PROBE_LABEL,limits:(await readFile('/proc/self/limits','utf8')).split('\n').filter(x=>x.includes('realtime')),seccomp:(await readFile('/proc/self/status','utf8')).split('\n').filter(x=>/Seccomp|NoNewPrivs/.test(x)),command:input.command,args: input.args[0]==='-I'?['-I','-c','',...input.args.slice(3)]:input.args,caBundlePath:profile.caBundlePath})); const child=spawn(input.command,input.args,{cwd:input.cwd,env:input.env,stdio:'pipe'}); let stdout='',stderr='',initialized=false; const timer=setTimeout(()=>{console.log('timeout');child.kill('SIGTERM')},30000); child.stderr.on('data',x=>{stderr+=x}); child.stdout.on('data',async x=>{stdout+=x; for(const line of stdout.split('\n')){try{const msg=JSON.parse(line);if(msg.id===1&&msg.result&&!initialized){initialized=true;console.log('child-status', (await readFile('/proc/'+child.pid+'/status','utf8')).split('\n').filter(x=>/^(Name|Pid|NoNewPrivs|Seccomp):/.test(x)));console.log('initialize',JSON.stringify(msg));child.kill('SIGTERM')}}catch{}}}); child.stdin.on('error',()=>{}); child.stdin.write(JSON.stringify({jsonrpc:'2.0',id:1,method:'initialize',params:{protocolVersion:1,clientCapabilities:{fs:{readTextFile:true,writeTextFile:true}},clientInfo:{name:'t3-takeover-probe',version:'1'}}})+'\n'); await new Promise((resolve,reject)=>{child.once('error',reject);child.once('exit',(code,signal)=>{console.log(JSON.stringify({pid:child.pid,code,signal,initialized,stderr:stderr.slice(0,3000)}));resolve()})});clearTimeout(timer); } finally {await rm(root,{recursive:true,force:true})} === red === No changes detected, skipping sync (24ms) No changes detected, skipping sync (6ms) note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source stdout | src/provider/antigravityAuthSupport.test.ts > Antigravity profile preparation > launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter [13:58:47.991] ERROR (#10): Error [AssertionError]: expected '/release/acp' to be '/tmp/SHklry/bin/python3' // Object.is equality at /home/runner/_work/maria-blacksmith/maria-blacksmith-source/apps/server/src/provider/antigravityAuthSupport.test.ts:721:31 { actual: '/release/acp', expected: '/tmp/SHklry/bin/python3', showDiff: true, operator: 'strictEqual', [cause]: undefined } ❯ t3 src/provider/antigravityAuthSupport.test.ts (28 tests | 1 failed | 27 skipped) 79ms ↓ Antigravity process environment (5) ↓ isolates the profile and harness after merging overrides without changing the base environment ↓ passes only the configured method's credential and keeps the GCP pair out of the environment ↓ isolates TEMP and TMP to the profile directory on Windows ↓ keeps accounts separate even when instance IDs differ only by case ↓ keeps the unpacked Windows runtime under MAX_PATH for long user names ↓ Antigravity authorization URL (1) ↓ rejects other origins, ambiguous state, and non-loopback redirects without retaining them ↓ Antigravity sign-in errors (2) ↓ recognizes native auth-required errors and the blocked-login transport error ↓ does not treat other failures or arbitrary text as missing authentication ↓ Antigravity stdout compatibility (5) ↓ handles fragmented login lines between JSON messages without changing protocol bytes ↓ ends normal work with a safe sign-in error instead of waiting for OAuth ↓ preserves typed errors from the flow owner ↓ does not suppress malformed protocol data or similar login messages ↓ bounds unfinished protocol lines ↓ Antigravity stderr compatibility (5) ↓ forwards fragmented native sign-in URLs from runtime 1.1.1 ↓ rejects interactive sign-in during normal work ↓ forwards an accepted browser-helper URL larger than 8 KiB ↓ forwards a fragmented browser-helper URL without exposing other stderr ↓ ignores malformed and similar browser-helper messages ❯ Antigravity profile preparation (10) ↓ launches Linux agents with the first available CA bundle, preferring absolute Nix paths ↓ preserves explicit certificate files and directories in Linux launches ↓ runs the browser helper with installed Node in standalone builds ↓ reports missing Node before creating the standalone sign-in profile ↓ preflights the no-browser helper and creates private directories only ↓ links the user's global skill directories into the profile without touching real content ↓ rewrites the GCP block on every launch and never stores the API key ↓ rejects Python BROWSER delimiter collisions before starting a helper × launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter 71ms ↓ keeps the direct ACP launch outside the zero-limit, unfiltered Linux case ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL t3 src/provider/antigravityAuthSupport.test.ts > Antigravity profile preparation > launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter AssertionError: expected '/release/acp' to be '/tmp/SHklry/bin/python3' // Object.is equality Expected: "/tmp/SHklry/bin/python3" Received: "/release/acp" ❯ src/provider/antigravityAuthSupport.test.ts:721:31 719| 720| const spawn = buildAntigravityAcpSpawnInput({ installation, pr… 721| expect(spawn.command).toBe(python); | ^ 722| expect(spawn.args).toEqual([ 723| "-I", ❯ ~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28 ❯ ~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30 ❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1121:16 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 27 skipped (28) Start at 13:58:35 Duration 12.13s (transform 74%, setup 20%, import 5%, tests 1%) === green === No changes detected, skipping sync (4ms) No changes detected, skipping sync (7ms) note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source ✓ t3 src/provider/AntigravityInstallation.test.ts (27 tests) 287ms ✓ t3 src/provider/antigravityAuthSupport.test.ts (28 tests) 1082ms ✓ Antigravity profile preparation (10) ✓ keeps the direct ACP launch outside the zero-limit, unfiltered Linux case 391ms ✓ t3 src/provider/Drivers/AntigravityDriver.test.ts (4 tests) 3136ms ✓ AntigravityDriver (4) ✓ refreshes through the selected executable and personal Google ACP 1738ms ✓ closes refresh processes and clears account metadata when Google sign-in is required 775ms ✓ keeps the previous catalog when executable resolution fails 580ms Test Files 3 passed (3) Tests 59 passed (59) Start at 13:59:08 Duration 22.50s (transform 53%, tests 22%, import 13%, setup 12%) === check-changed === No changes detected, skipping sync (17ms) No changes detected, skipping sync (4ms) From https://github.com/jwtiyar/t3code * branch b2aaac5cbf6f8c8497c0bdaa2e2fd5a98120da79 -> FETCH_HEAD $ node scripts/check-changed.ts e5ea25d1292e ⊘ cache disabled check:changed: 2 files since e5ea25d1292e > vp format pass 0.8s Checking formatting... All matched files use the correct format. Finished in 572ms on 2 files using 4 threads. > vp lint pass 2.4s Found 0 warnings and 0 errors. Finished in 2.0s on 2 files with 200 rules using 4 threads. > vp graphql (apps/server) pass 2.4s ~/apps/server$ graphqlgen --check ⊘ cache disabled > vp typecheck (2 packages) pass 29.5s ~/scripts$ tsc --noEmit ~/apps/server$ tsc --noEmit --- vp run: 0/2 cache hit (0%), 2/2 successful. @t3tools/scripts#typecheck not cached because it modified its inputs. (Run `vp run --last-details` for full details) > vp knip 1/2 pass 33.1s > vp test (1 files) pass 38.7s RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source ✓ t3 src/provider/antigravityAuthSupport.test.ts (28 tests) 2194ms ✓ Antigravity profile preparation (10) ✓ launches Linux agents with the first available CA bundle, preferring absolute Nix paths 463ms ✓ keeps the direct ACP launch outside the zero-limit, unfiltered Linux case 707ms Test Files 1 passed (1) Tests 28 passed (28) Start at 14:00:42 Duration 31.32s (transform 69%, setup 19%, tests 7%, import 5%) > vp knip 2/2 pass 48.5s check:changed summary pass format 0.8s pass lint 2.4s pass knip 1/2 33.1s pass knip 2/2 48.5s pass graphql (apps/server) 2.4s pass typecheck (2 packages) 29.5s pass test (1 files) 38.7s CI also runs: full test suites, build unused patch check skipped: no dependency files changed pass not cached: files changed during the run FINAL HEAD 397d7bf5354e9b1a4dabad1c97f30b52bad194f5 Absolute Python path; deterministic driver proc fixture. === relative-red === GitHub Actions run: https://github.com/pingdotgg/maria-blacksmith/actions/runs/40336154851 Waiting for testbox... hydrating Testbox ready! Resolved blacksmith-4vcpu-ubuntu-2404-2xsqbgm6m3xyamo2.vm.blacksmith.sh -> 152.236.39.154 Changes synced in 1827ms (parallel-manifest) Warning: Permanently added '[152.236.39.154]:64001' (ED25519) to the list of known hosts. blacksmith-check: box fetched base e5ea25d1292e from https://github.com/pingdotgg/t3code.git blacksmith-check: uploading 8 objects, 22 KiB No changes detected, skipping sync (4ms) Scope: all 35 workspace projects ? Verifying lockfile against supply-chain policies (2098 entries)... Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: /home/runner/.local/share/pnpm/store/v11 Virtual store is at: node_modules/.pnpm Downloading electron-winstaller@5.4.0: 0.00 B/9.14 MB Downloading @rolldown/binding-linux-x64-gnu@1.2.5: 0.00 B/8.16 MB Downloading expo-image-manipulator@58.0.14: 0.00 B/12.26 MB Downloading @distilled.cloud/gcp@1.0.0-rc.13: 0.00 B/35.54 MB Downloading @distilled.cloud/aws@1.0.0-rc.13: 0.00 B/23.05 MB Downloading @electric-sql/pglite@0.3.15: 0.00 B/7.96 MB Update available! 12.14.0 → 12.15.0. Changelog: https://pnpm.io/v/12.15.0 To update, run: curl -fsSL https://get.pnpm.io/install.sh | sh - Downloading effect@4.0.5: 0.00 B/9.25 MB Downloading expo-sqlite@58.0.13: 0.00 B/10.93 MB Downloading @oxlint-tsgolint/linux-x64@7.0.2004: 0.00 B/7.81 MB Downloading @img/sharp-libvips-linux-x64@1.3.3: 0.00 B/8.17 MB Downloading @distilled.cloud/cloudflare@1.0.0-rc.13: 0.00 B/9.00 MB Downloading @tsc-rs/linux-x64@0.8.0: 0.00 B/19.19 MB Downloading @napi-rs/canvas-linux-x64-gnu@1.0.13: 0.00 B/15.16 MB Downloading @cloudflare/workerd-linux-64@1.20260918.1: 0.00 B/39.25 MB Downloading drizzle-kit@1.0.0-rc.5-ab785fc: 0.00 B/22.92 MB Downloading react-native-worklets@0.13.0: 0.00 B/7.43 MB Downloading react-native-pdf-jsi@5.0.0: 0.00 B/25.89 MB Downloading @betteroffice/docx@0.4.3: 0.00 B/11.03 MB Downloading expo-video@58.0.11: 0.00 B/11.42 MB Downloading alchemy@2.0.0-beta.80: 0.00 B/25.58 MB Downloading sql.js@1.15.0: 0.00 B/13.63 MB Downloading @rolldown/binding-linux-x64-gnu@1.0.0-rc.17: 0.00 B/9.39 MB Downloading expo-file-system@58.0.9: 0.00 B/8.38 MB Downloading node-pty@1.2.0-beta.15: 0.00 B/7.15 MB Downloading @react-native-async-storage/async-storage@3.1.1: 0.00 B/15.03 MB Downloading pdfjs-dist@6.4.299: 0.00 B/8.53 MB Downloading @oxlint/binding-linux-x64-gnu@1.89.0: 0.00 B/6.38 MB Downloading expo-image@58.0.15: 0.00 B/50.39 MB Downloading @cursor/sdk-linux-x64@1.0.35: 0.00 B/5.64 MB Downloading expo-modules-macros@0.20.0: 0.00 B/5.93 MB Downloading expo-modules-core@58.0.22: 0.00 B/33.99 MB Downloading @voidzero-dev/vite-plus-linux-x64-gnu@1.4.0: 0.00 B/14.80 MB Downloading hermes-compiler@260318099.0.4: 0.00 B/19.35 MB Downloading three@0.180.0: 0.00 B/7.75 MB Downloading @betteroffice/fonts@0.4.0: 0.00 B/7.42 MB Downloading expo-camera@58.0.10: 0.00 B/15.23 MB Downloading heic-to@1.5.2: 0.00 B/5.89 MB Downloading heic-to@1.5.2: 2.35 MB/5.89 MB ✓ Lockfile passes supply-chain policies (2098 entries in 7s) Lockfile is up to date, resolution step is skipped Downloading expo-sqlite@58.0.13: 4.01 MB/10.93 MB Downloading expo-video@58.0.11: 7.02 MB/11.42 MB Downloading @distilled.cloud/cloudflare@1.0.0-rc.13: 7.76 MB/9.00 MB Downloading alchemy@2.0.0-beta.80: 6.56 MB/25.58 MB Downloading @distilled.cloud/cloudflare@1.0.0-rc.13: 9.00 MB/9.00 MB Downloading alchemy@2.0.0-beta.80: 7.39 MB/25.58 MB Downloading @rolldown/binding-linux-x64-gnu@1.0.0-rc.17: 6.43 MB/9.39 MB Downloading alchemy@2.0.0-beta.80: 8.48 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 9.25 MB/25.58 MB Downloading hermes-compiler@260318099.0.4: 9.03 MB/19.35 MB Downloading hermes-compiler@260318099.0.4: 9.37 MB/19.35 MB Downloading alchemy@2.0.0-beta.80: 12.02 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 13.12 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 14.41 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 15.87 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 17.48 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 19.16 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 21.04 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 22.95 MB/25.58 MB Downloading alchemy@2.0.0-beta.80: 24.72 MB/25.58 MB Packages: +1723 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1723, reused 0, downloaded 1717, added 1723, done .../esbuild@0.28.2/node_modules/esbuild postinstall$ node install.js .../node_modules/@tsc-rs/typescript postinstall$ node lib/install.js .../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js .../node_modules/node-pty install$ node scripts/prebuild.js || node-gyp rebuild .../node_modules/@tsc-rs/typescript postinstall: Done .../esbuild@0.28.2/node_modules/esbuild postinstall: Done .../node_modules/node-pty install: > Checking prebuilds... .../esbuild@0.25.12/node_modules/esbuild postinstall: Done .../node_modules/node-pty install: Done .../node_modules/node-pty postinstall$ node scripts/post-install.js .../react-native-enriched-markdown postinstall$ node postinstall.mjs .../node_modules/node-pty postinstall: > Cleaning release folder... .../node_modules/node-pty postinstall: > Moving conpty.dll... .../node_modules/node-pty postinstall: SKIPPED (not Windows) .../node_modules/node-pty postinstall: Done .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] restoring vendored native assets ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching runtime v0.26.3 from https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.26.3.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] runtime -> react-native-enriched-markdown/cpp/highlight/vendor/tree-sitter/src .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-json@0.24.8 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-html@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-css@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-markdown@0.3.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-yaml@0.7.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-go@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-java@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-javascript@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-python@0.23.6 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-rust@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-bash@0.23.3 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-typescript@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-cpp@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-swift@0.7.0 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-php@0.24.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-ruby@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c-sharp@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] json -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/json .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] html -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/html .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] css -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/css .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] markdown -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/markdown .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] yaml -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/yaml .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] go -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/go .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] java -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/java .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] javascript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/javascript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] python -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/python .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] rust -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/rust .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] bash -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/bash .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] typescript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/typescript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] tsx -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/tsx .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] cpp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/cpp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] swift -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/swift .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] php -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/php .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] ruby -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/ruby .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c-sharp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c-sharp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] grammar sources ready. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching xcframework from https://github.com/erweixin/RaTeX/releases/download/v0.1.15/RaTeX.xcframework.zip .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching source from https://github.com/erweixin/RaTeX/archive/refs/tags/v0.1.15.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] RaTeX v0.1.15 -> /home/runner/_work/maria-blacksmith/maria-blacksmith-source/node_modules/.pnpm/react-native-enriched-markdown@file+apps+mobile+deps+react-native-enriched-markdown-1.2_1b778b89ea9447c6091deb16c5db35b5/node_modules/react-native-enriched-markdown/ios/vendor .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] postinstall complete. .../react-native-enriched-markdown postinstall: Done . prepare$ vp config --no-agent . prepare: core.hooksPath is already set to "/dev/null", skipping . prepare: Done devDependencies: + @coderabbitai/config 1.1.0 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + typescript <- @tsc-rs/typescript 0.8.0 + vite-plus 1.4.0 Done in 32.3s using pnpm v12.14.0 note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source stdout | src/provider/antigravityAuthSupport.test.ts > Antigravity profile preparation > launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter [14:06:49.710] ERROR (#10): Error [AssertionError]: expected '../../../../../tmp/zIriE3/bin/python3' to be '/tmp/zIriE3/bin/python3' // Object.is equality at /home/runner/_work/maria-blacksmith/maria-blacksmith-source/apps/server/src/provider/antigravityAuthSupport.test.ts:721:31 { actual: '../../../../../tmp/zIriE3/bin/python3', expected: '/tmp/zIriE3/bin/python3', showDiff: true, operator: 'strictEqual', [cause]: undefined } ❯ t3 src/provider/antigravityAuthSupport.test.ts (28 tests | 1 failed | 27 skipped) 31ms ↓ Antigravity process environment (5) ↓ isolates the profile and harness after merging overrides without changing the base environment ↓ passes only the configured method's credential and keeps the GCP pair out of the environment ↓ isolates TEMP and TMP to the profile directory on Windows ↓ keeps accounts separate even when instance IDs differ only by case ↓ keeps the unpacked Windows runtime under MAX_PATH for long user names ↓ Antigravity authorization URL (1) ↓ rejects other origins, ambiguous state, and non-loopback redirects without retaining them ↓ Antigravity sign-in errors (2) ↓ recognizes native auth-required errors and the blocked-login transport error ↓ does not treat other failures or arbitrary text as missing authentication ↓ Antigravity stdout compatibility (5) ↓ handles fragmented login lines between JSON messages without changing protocol bytes ↓ ends normal work with a safe sign-in error instead of waiting for OAuth ↓ preserves typed errors from the flow owner ↓ does not suppress malformed protocol data or similar login messages ↓ bounds unfinished protocol lines ↓ Antigravity stderr compatibility (5) ↓ forwards fragmented native sign-in URLs from runtime 1.1.1 ↓ rejects interactive sign-in during normal work ↓ forwards an accepted browser-helper URL larger than 8 KiB ↓ forwards a fragmented browser-helper URL without exposing other stderr ↓ ignores malformed and similar browser-helper messages ❯ Antigravity profile preparation (10) ↓ launches Linux agents with the first available CA bundle, preferring absolute Nix paths ↓ preserves explicit certificate files and directories in Linux launches ↓ runs the browser helper with installed Node in standalone builds ↓ reports missing Node before creating the standalone sign-in profile ↓ preflights the no-browser helper and creates private directories only ↓ links the user's global skill directories into the profile without touching real content ↓ rewrites the GCP block on every launch and never stores the API key ↓ rejects Python BROWSER delimiter collisions before starting a helper × launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter 27ms ↓ keeps the direct ACP launch outside the zero-limit, unfiltered Linux case ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL t3 src/provider/antigravityAuthSupport.test.ts > Antigravity profile preparation > launches ACP through the python seccomp launcher on Linux with a zero realtime limit and no filter AssertionError: expected '../../../../../tmp/zIriE3/bin/python3' to be '/tmp/zIriE3/bin/python3' // Object.is equality Test Files 1 failed (1) Tests 1 failed | 27 skipped (28) Start at 14:06:43 Duration 5.88s (transform 88%, setup 7%, import 4%, tests 1%) Expected: "/tmp/zIriE3/bin/python3" Received: "../../../../../tmp/zIriE3/bin/python3" ❯ src/provider/antigravityAuthSupport.test.ts:721:31 719| 720| const spawn = buildAntigravityAcpSpawnInput({ installation, pr… 721| expect(spawn.command).toBe(python); | ^ 722| expect(spawn.args).toEqual([ 723| "-I", ❯ ~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28 ❯ ~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30 ❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1121:16 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ === final-zero === {"label":"final-zero","limits":["Max realtime priority 0 0 ","Max realtime timeout 0 0 us "],"seccomp":["NoNewPrivs:\t0","Seccomp:\t0","Seccomp_filters:\t0"],"command":"/usr/bin/python3","args":["-I","-c","","/tmp/13230-runtime/agy_acp_server.par","--uid="],"caBundlePath":"/etc/ssl/certs/ca-certificates.crt"} child-status [ 'Name:\tagy_acp_server.', 'Pid:\t39519', 'NoNewPrivs:\t1', 'Seccomp:\t2' ] initialize {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":true,"embeddedContext":true},"mcpCapabilities":{"http":true,"sse":true},"sessionCapabilities":{"list":{},"resume":{}},"auth":{"logout":{}}},"authMethods":[{"id":"oauth-personal","name":"Log in with Google","description":"Log in with your Google account"},{"id":"oauth-business","name":"Log in with Gemini Enterprise","description":"Log in with your Gemini Enterprise account"},{"id":"gemini-api-key","name":"Gemini API key","description":"Use an API key with Gemini Developer API"},{"id":"agent-platform","name":"Gemini Enterprise Agent Platform","description":"Use Gemini Enterprise Agent Platform (formerly Vertex AI) with Application Default Credentials or an API key"}],"agentInfo":{"name":"antigravity-acp","title":"Google Antigravity","version":"1.3.0"}}} {"pid":39519,"code":null,"signal":"SIGTERM","initialized":true,"stderr":"https://symbolize.corp.google.com/r/?trace=5f89af386e50,7181fb04532f,5f89b11c8101,5f89b2740081,5f89bb9208ae,5f89b0e7bd08,5f89b11b431b,5f89b43cf4f9,5f89b233029a,5f89bb03ce25,7181fb02a1c9,7181fb02a28a,5f89b34ee399&map=fb3bd0584014780e0386b783d39f840f:5f89aa000000-5f89bbb39de0 \n*** SIGTERM received by PID 39519 (TID 39519) on cpu 3, si_code=0, from PID 39486; stack trace: ***\nPC: @ 0x5f89af386e50 (unknown) __llvm_libc_google3::epoll_wait()\n @ 0x5f89bb28f5d7 2272 FailureSignalHandler()\n @ 0x7181fb045330 1754969440 (unknown)\n @ 0x5f89b11c8102 2432 _PyEval_EvalFrameDefault\n @ 0x5f89b2740082 224 PyEval_EvalCode\n @ 0x5f89bb9208af 112 builtin_exec\n @ 0x5f89b0e7bd09 256 PyObject_Vectorcall\n @ 0x5f89b11b431c 2432 _PyEval_EvalFrameDefault\n @ 0x5f89b43cf4fa 176 _PyEval_Vector\n @ 0x5f89b233029b 576 PyObject_CallMethod\n @ 0x5f89bb03ce26 1664 devtools::python_launcher::Launcher_Main()\n @ 0x7181fb02a1ca 160 (unknown)\n @ 0x7181fb02a28b 96 __libc_start_main\n @ 0x5f89b34ee39a (unknown) _start\nhttps://symbolize.corp.google.com/r/?trace=5f89af386e50,5f89bb28f5d6,7181fb04532f,5f89b11c8101,5f89b2740081,5f89bb9208ae,5f89b0e7bd08,5f89b11b431b,5f89b43cf4f9,5f89b233029a,5f89bb03ce25,7181fb02a1c9,7181fb02a28a,5f89b34ee399&map=fb3bd0584014780e0386b783d39f840f:5f89aa000000-5f89bbb39de0 \nE1026 14:07:57.952551 39519 coredump_hook.cc:250] RAW: Remote crash gathering disabled for SIGTERM.\nFatal Python error from unexpected signum: 15\n\nCurrent thread 0x00007181fb2680c0 [agy_acp_server.] (most recent call first):\n File \"//selectors.py\", line 452 in select\n File \"//asyncio/base_events.py\", line 2019 in _run_once\n File \"//asyncio/base_events.py\", line 677 in run_forever\n File \"//asyncio/base_events.py\", line 706 in run_until_complete\n File \"//asyncio/runners.py\", line 127 in run\n File \"//asyncio/runners.py\", line 204 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 185 in main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 529 in _run_main\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/third_party/py/absl/app.py\", line 609 in run\n File \"/tmp/13230-runtime/agy_acp_server.par/google3/cloud/developer_experience/antigravity_extensions/acp_server/main.py\", line 189 in \n File \"\", line 35 in _run_code_in_main\n File \"\", line 174 in run_filename_from_loader_as_main\n\nCurrent thread's C stack trace (most recent call first):\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at _Py_DumpStack+0x62 [0x5f89bb9bab22]\n Binary file \"/tmp/13230-runtime/agy_acp_server.par\", at +0x1142c1c8 [0x5f89bb42c1c8]\n "} === final-check === No changes detected, skipping sync (24ms) No changes detected, skipping sync (19ms) From https://github.com/jwtiyar/t3code * branch b2aaac5cbf6f8c8497c0bdaa2e2fd5a98120da79 -> FETCH_HEAD $ node scripts/check-changed.ts e5ea25d1292e ⊘ cache disabled check:changed: 3 files since e5ea25d1292e > vp format pass 0.5s Checking formatting... All matched files use the correct format. Finished in 338ms on 3 files using 4 threads. > vp lint pass 1.2s Found 0 warnings and 0 errors. Finished in 1.0s on 3 files with 200 rules using 4 threads. > vp graphql (apps/server) pass 1.2s ~/apps/server$ graphqlgen --check ⊘ cache disabled > vp typecheck (2 packages) pass 13.5s ~/scripts$ tsc --noEmit ~/apps/server$ tsc --noEmit --- vp run: 0/2 cache hit (0%), 2/2 successful. @t3tools/scripts#typecheck not cached because it modified its inputs. (Run `vp run --last-details` for full details) > vp knip 1/2 pass 14.5s > vp test (2 files) pass 21.2s RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source ✓ t3 src/provider/antigravityAuthSupport.test.ts (28 tests) 999ms ✓ Antigravity profile preparation (10) ✓ launches Linux agents with the first available CA bundle, preferring absolute Nix paths 332ms ✓ t3 src/provider/Drivers/AntigravityDriver.test.ts (4 tests) 1580ms ✓ AntigravityDriver (4) ✓ refreshes through the selected executable and personal Google ACP 815ms ✓ closes refresh processes and clears account metadata when Google sign-in is required 377ms ✓ keeps the previous catalog when executable resolution fails 374ms Test Files 2 passed (2) Tests 32 passed (32) Start at 14:08:06 Duration 16.61s (transform 59%, tests 18%, setup 14%, import 9%) > vp knip 2/2 pass 22.3s check:changed summary pass format 0.5s pass lint 1.2s pass knip 1/2 14.5s pass knip 2/2 22.3s pass graphql (apps/server) 1.2s pass typecheck (2 packages) 13.5s pass test (2 files) 21.2s CI also runs: full test suites, build unused patch check skipped: no dependency files changed pass not cached: files changed during the run === final-tests === No changes detected, skipping sync (10ms) No changes detected, skipping sync (10ms) note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/runner/_work/maria-blacksmith/maria-blacksmith-source ✓ t3 src/provider/AntigravityInstallation.test.ts (27 tests) 950ms ✓ t3 src/provider/antigravityAuthSupport.test.ts (28 tests) 1479ms ✓ Antigravity profile preparation (10) ✓ launches Linux agents with the first available CA bundle, preferring absolute Nix paths 428ms ✓ keeps the direct ACP launch outside the zero-limit, unfiltered Linux case 444ms ✓ t3 src/provider/Drivers/AntigravityDriver.test.ts (4 tests) 2248ms ✓ AntigravityDriver (4) ✓ refreshes through the selected executable and personal Google ACP 1201ms ✓ closes refresh processes and clears account metadata when Google sign-in is required 513ms ✓ keeps the previous catalog when executable resolution fails 515ms Test Files 3 passed (3) Tests 59 passed (59) Start at 14:07:58 Duration 20.38s (transform 49%, tests 24%, import 15%, setup 12%)