Skip to content

chore(sync): follow v0.1.4-nightly.20261027.3796 - #62

Merged
danspark merged 584 commits into
mainfrom
codex/analytics-sync
Nov 1, 2026
Merged

danspark merged 584 commits into
mainfrom
codex/analytics-sync

Conversation

@danspark

@danspark danspark commented Oct 26, 2026 •

Copy link
Copy Markdown

Problem

Advance T2 Code from nightly 3592 to published upstream nightly v0.1.4-nightly.20261027.3796, preserving the fork's privacy policy, identity and Linux x64/ARM64 releases.

Change

Pin commit b88da91397c247b98c892831d7e759f72ea4db43 and release ID 426111391. Review all 576 intervening upstream commits, including the 367 commits added since the earlier review in this PR. Preserve upstream features, dependency versions, lockfiles and patches.

Retain the accepted analytics, OTLP, ownership, updater and relay-client protections. Block new mobile crash delivery, native startup telemetry endpoints, source-map and dSYM uploads. User preferences and configured relay URLs cannot enable these exports. Local diagnostics, authenticated cache operations, provider traffic, guest sharing and remote connections remain available. Re-anchor seven existing targets after upstream refactors and preserve the security fixes already reviewed here.

Keep the new desktop recovery links pointed at the fork. Carry upstream's production web boot and packaged Linux launch checks into the hosted release controls, before publication. Linux x64 and ARM64 outputs and the repository's exact Node pin are preserved.

Planning can advance past already published fork releases whose historical upstream release records have been pruned. Proposed and unpublished pins still require full live release identity verification. Source proposals extend an existing PR's history and push normally, with no history rewrite.

Scope and approval

Authorized recurring nightly release maintenance in this T3 thread. The previous unmerged nightly's release record was deleted upstream, so this PR now follows the current published nightly under its own tag and identity. The PR and its reviewed history are retained.

Prepared with sync.mjs plan/propose and the agent-output schema. The proposed Git tree exactly matches the local validation snapshot. No trusted statuses were synthesized.

Verification

  • vp run check:changed b88da91397c247b98c892831d7e759f72ea4db43 passed format, lint, both Knip passes, GraphQL generation, unused-patch validation, 36 affected package typechecks and 413 tests across 43 files.
  • All 37 release-control tests passed, including historical release pruning and repeated proposals that preserve an open PR's head in history.
  • New mobile privacy regressions failed before the guards and passed afterward. A runtime config check confirms that a configured relay still leaves the native startup endpoint at https://observe.invalid.
  • Verified exact dependency fields in 41 manifests and exact upstream lockfiles and patches. Every overlay target applies exactly once.
  • Hosted full release CI, package builds, production boot and launch checks, and all 10 published-asset verifications remain mandatory.

Model: GPT-6.1. Harness: Codex in T3 Code.

Comment thread infra/task-cache/src/runHook.test.ts Dismissed
@danspark

Copy link
Copy Markdown
Author

CodeQL audit on 6267f6927a64d7ec44e20eb9fa04c6731773b23f: all 45 annotations map to pre-existing baseline findings. The branch has 67 open alerts, compared with 70 before the import. Alerts 136 and 139 are reidentified baseline findings 22 and 27; the remote-normalization expression and tool-label normalization function are unchanged. No additional source fixes or alert dismissals are warranted by this aggregate result.

The newly introduced findings 135, 137, 138 and 140 are confirmed fixed by the latest analysis. Test-fixture alert 141 remains dismissed as a documented false positive. The five maintainer-accepted regex dispositions are unchanged. Full release CI is still required on this exact head before merging.

juliusmarminge and others added 28 commits October 25, 2026 23:01
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e crash (pingdotgg#25345)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…nstall them by URL

agent-device install-from-source picks the archive type from the download's
filename, and the cache URL has no extension. Device pool workers can now
fetch the dev client straight from the cache instead of the caller uploading
it through the gateway.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Android clients are cached as the bare APK, not a tarball.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#24912)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…24618)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… instead of effect timers (pingdotgg#25363)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
`vp run mobile:e2e` now leases iOS and Android devices from the Simlock pool
(SIMLOCK_AGENT_DEVICE_URL + AGENT_DEVICE_DAEMON_AUTH_TOKEN) instead of booting
local simulators, and walks each of 12 poses (phone sizes, iPads, a fold,
a tablet, dark mode, largest text) through the app: thread list, a thread,
scrolling, typing, back, settings, then rotation or folding.

Every screen gets generic layout checks that need no per-screen code: app in
front, no error screen or launch dialog, no fixed control cut off by the
screen edge, no sibling controls stacked, nothing under a system bar, no
input under the keyboard. Transitions keep the video check for tabs lagging
the screen, now measured against the recording's own first and last frames.
Afterwards a headless Claude reviews each pose's screenshots for what the
checks cannot see, and the findings land in the same report grid.

`mobile:install --session` now has the session's host download the dev
client from the shared cache with the read-only key, instead of uploading it
through the gateway (13 s instead of 10+ minutes for an APK).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25409)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…by up to 10s (pingdotgg#25368)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…, iOS on EAS (pingdotgg#25390)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…allback (pingdotgg#25412)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
maria-rcks and others added 20 commits October 27, 2026 22:21
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… desktop attach (pingdotgg#22877)

When the server falls back to headless Chromium, it marks the tab headless, so the desktop streams that page instead of mounting a second one.

Fixes pingdotgg#16901
Fixes pingdotgg#22882

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… lock (pingdotgg#25700)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t from app failures

Pool errors (a worker off the gateway, a closed daemon connection, xcrun
timeouts) now retry the pose twice wherever they happen, and a pose the pool
never let finish is reported as blocked rather than failed. Error dialogs while
pairing are recorded and dismissed like those at launch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#19229)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…suppression (pingdotgg#26181)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…26180)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…d cache (pingdotgg#26175)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rary hosts (pingdotgg#26176)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…lly (pingdotgg#26174)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#26188)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed all 576 intervening upstream commits, retaining the prior 209-commit audit and reviewing 367 additional commits after upstream removed the previous unmerged nightly release. Existing analytics, OTLP, ownership, updater and relay-client privacy protections remain intact. Guard new mobile crash delivery, native startup endpoints, source-map and dSYM uploads with the fixed false policy; preserve local diagnostics, provider traffic, cache operations and remote connections. Re-anchor seven stale targets after import changes, moved authentication bridges and exporter/test refactors. Preserve prior security fixes, fork release destinations and Linux x64/ARM64 outputs. Retain new hosted production web boot and Linux package launch checks, and keep upstream dependency versions and lockfiles unchanged. Published historical pins no longer require a pruned upstream release record during planning, while proposed and unpublished pins still undergo full release identity verification. Existing source PR updates extend their validated history with a normal push.

Upstream: b88da91
@danspark danspark changed the title chore(sync): follow v0.1.3-nightly.20261025.3692 chore(sync): follow v0.1.4-nightly.20261027.3796 Oct 28, 2026
@danspark

Copy link
Copy Markdown
Author

Reviewed alert 142 on 42ee33ef44d6fa0b2f7a25ed3c39d7a249dc7929 against the actual release controls. The alert assumes that needs.metadata.outputs.sha is an unvalidated dispatch value. That assumption does not hold here.

metadata checks out the trusted workflow revision and runs .github/t2code/release.mjs metadata. Before emitting any outputs, it validates a complete SHA, fetches origin/main, rejects a SHA outside main's ancestry, reads that source's accepted upstream pin, verifies the tag and live upstream release identity, and checks for an existing fork release. build_bundle requires successful metadata and consumes only its validated output. The new web boot check uses the same source as the preceding release build.

An isolated Git fixture exercised this exact metadata script from the PR, using a local bare origin and mocked GitHub release metadata. An unmerged commit, a branch-name input and a mismatched tag each failed without emitting a downstream SHA. The merged, correctly pinned commit succeeded and emitted the exact validated SHA. This disproves the arbitrary-source execution path described by this alert. The fixture and results are retained in the operation cache as prove-release-metadata.py and release-metadata-proof.json.

Classified this specific alert as a false positive. No source, workflow checks, query exclusions, baseline findings or accepted regex dispositions were changed. Other analyses are still running and will be reviewed separately.

Worker messages could dispatch Object prototype methods because a truthy
property lookup accepted names outside the registered handlers. Require an
own function before invocation and preserve the unknown-method response.

Four protocol regressions failed before the fix and now pass, including a
registered call after each rejected request. All 37 file-preview tests and
check:changed pass. Keep the fix in the reviewed release overlay.
The lazy parenthetical regexp restarted on every unmatched opening bracket,
allowing a long provider-supplied model label to trigger quadratic work.
Scan once while preserving shortest matches and all four line terminators.

V8 exceeded its backtracking threshold before the change and does not after
it. All 16 model-label tests and check:changed pass. Exhaustive comparison
of 66,430 short forms preserves 265,720 label results. Retain the repair in
the release overlay.
@danspark

Copy link
Copy Markdown
Author

CodeQL review for 42ee33ef44d6fa0b2f7a25ed3c39d7a249dc7929 is complete. Two valid issues are repaired in the latest head b2dfc925acd88e4d67ec980d39b02c3d9ac4b84e:

  • Alert 146, inherited Office worker method dispatch, is fixed in b7b3f6c. Four message-protocol regressions fail before the fix and pass afterward.
  • Alert 143, model-name parenthetical regex backtracking, is fixed in b2dfc92. V8 exceeded its backtracking threshold with 8,000 unmatched opening parentheses before the fix and does not afterward. The linear scan preserves 265,720 results across 66,430 short forms, including nested parentheses and all four line terminators. All 16 model-label tests pass.

Alerts 144, 145 and 147 are proven false positives. Each review thread has its source analysis and focused evidence, and only these alerts were dismissed. The temporary draft-ownership investigation was removed after it disproved the randomness claim. Alert 142 was already documented and dismissed independently. No accepted regex finding or inherited alert disposition was changed.

The other annotations map to inherited alerts 35, 36, 37, 49, 58, 59, 61, 62, 63 and 64. Moved expressions 136 and 139 remain mapped to baseline alerts 22 and 27 as previously recorded. Their classifications and source remain unchanged.

Validation passed for the new head: check:changed, including format, lint, both Knip passes, affected-package typechecks and 53 tests in two files. The wider focused run passed 130 tests across file preview, composer drafts and PortScanner. Minimal-overlay verification passes against the same pinned upstream commit. Both fixes use ordinary follow-up commits and a normal push. Dependencies, lockfiles and supported release platforms are unchanged. Full hosted CI on the latest head is still required before merge.

@danspark

danspark commented Nov 1, 2026

Copy link
Copy Markdown
Author

CodeQL triage for b2dfc925a: the 10 remaining annotations were inherited alerts already open on main since 2026-10-08. Each is a proven false positive, now dismissed with its reason:

No source changed. The CodeQL check now reports no new alerts.

@danspark
danspark merged commit 23aa967 into main Nov 1, 2026
15 checks passed
@danspark
danspark deleted the codex/analytics-sync branch November 1, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.