Repository navigation
chore: 同步上游 pingdotgg/t3code main 至 5ffe045931 - #37
Conversation
…2094) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gg#23052) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#23205) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…card (pingdotgg#23282) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…ingdotgg#22777) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…uests (pingdotgg#23034) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…sed (pingdotgg#23170) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#23096) Co-authored-by: Vishal <vishalprashantdoshi@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Vishal Doshi <vdoshi96@users.noreply.github.com>
…ingdotgg#23361) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#23106) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Nikita Maximilian Grimm <github@nikitagrimm.de> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tch (pingdotgg#23023) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… Activities (pingdotgg#23327) Fixes pingdotgg#15682. Takes over pingdotgg#23035. Co-authored-by: Taylor Dolezal <onlydole@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gg#23117) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#23124) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#23389) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3841086615
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (Array.isArray(value) && /\[\]/.test(filter.path)) { | ||
| const texts = value.map(scalarText).filter((text): text is string => text !== undefined); | ||
| if (filter.op === "notEquals") return texts.every((text) => text !== filter.value); | ||
| return texts.some((text) => matchesScalar(filter, text)); |
There was a problem hiding this comment.
Treat non-scalar wildcard elements as existing
For an exists filter such as body.reviewers[], a non-empty array of objects resolves to an array, but every object is discarded by scalarText, leaving texts empty and causing the filter to fail. This contradicts the filter contract in packages/contracts/src/scheduledTask.ts, which says wildcard exists succeeds whenever the resulting list is non-empty, and silently prevents otherwise valid webhook-triggered tasks from running. Handle exists from the wildcard array length before converting elements to scalar text.
Useful? React with 👍 / 👎.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
…es after sync Upstream made publishStoredEvents require the run outcomes produced by applyStoredEvents (run metrics). The fork-only writeIfRuntimeRequestCurrent still published without them, so every guarded runtime-request write threw "outcomes is not iterable". Record and pass the outcomes like the other guarded writers. Also type the upstream ProviderTurnStartService session-manager fixture as the fork's ManagedProviderSessionRuntime.
同步上游 pingdotgg/t3code
5ffe045931到 opent3code取代 #36(#36 由 github-actions 自动创建,head 为
pingdotgg:main,存在冲突,fork CI 不会运行)。上游范围
a2fb75793a(chore: 同步上游 pingdotgg/t3code main 至 49e97d48f9 #35 合并)49e97d48f95ffe045931(fix(server): a Claude agent stops when the server that started it dies (#23389))49e97d48f9..5ffe045931,共 21 个提交(6f6f68ad2d起)3841086615(--no-ff)apps/server:orchestration-v2 放弃的 turn 在继续线程前先中断、运行时长/结束方式指标(RunMetrics)、Claude agent 随启动它的 server 退出、webhook 过滤器支持[]数组通配、克隆在 SSH key 被拒时回退 HTTPSapps/web:ChatView 流式回复/访问标记不再整体重渲染、RTL(阿拉伯语/希伯来语)文本、列表布局次数上限(React error 185)、侧边栏视频不再反复重载、ChatGPT Business 用量限制的管理员请求文案apps/mobile:草稿、iPad 头部/输入框布局、Dynamic Island 等修复packages/*:client-runtimeRPC 会话变化时刷新 Git refs;shared新增cloneUrl;provider-pi在下一轮运行时 fork 已完成的 turn;source-control-gitcafe支持请求 reviewer 与打标签typescript改为npm:@tsc-rs/typescript@0.8.0(tsc-rs drop-in),移除@effect/tsgo,各包typecheck脚本从tsc-rs --noEmit改为tsc --noEmit;@legendapp/list补丁更新;pnpm-lock.yaml相应更新冲突
apps/server/src/orchestration-v2/RunExecutionService.test.ts(约 2892 行,测试 session fixture)ProviderAdapter.ProviderAdapterV2SessionRuntime改为 fork 的ManagedProviderSessionRuntime(provider runtime lifetime 相关改动)interruptTurn: input.interruptTurn ?? (() => Effect.void),断言仍为ProviderAdapterV2SessionRuntimeinterruptTurn行,类型断言保留 fork 的ManagedProviderSessionRuntime(与本文件其余 fixture 一致)。未改动其他逻辑其余文件均自动合并。上游本范围未改动
.github/,fork 的工作流、脚本及if: github.repository == 'pingdotgg/t3code'守卫原样保留。删除检查
git diff --diff-filter=D --name-only origin/main HEAD为空:本次合并没有删除任何文件,fork 独有文件均未被删。其他检查:
apps/server/src/provider/model-manifest.json与origin/main一致:opencode/1=1、opencode/2=2、pi/2=2 不变.github/workflows/cursor-hygiene-webhook.yml仍不存在opent3code-source-integrity.cjs --placeholder-only a2fb757 HEAD通过上游 CI
5ffe045931:CI 成功 https://github.com/pingdotgg/t3code/actions/runs/39746475027 (Deploy T3 Connect relay 同样成功)本地测试(Node 24.22.0,
CI=true vp install --frozen-lockfile通过)node --test .github/scripts/opent3code-*.test.cjsapps/serverproviderCompatibility / ModelManifest / providerMaintenanceRunnerapps/server上游改动及冲突相关测试(RunExecutionService、ProviderTurnStartService、RunMetrics、ClaudeAgentSdkQueryRunner、CodexAdapterV2、AssetAccess、webhookFilter、webhookTemplate、SourceControlRepositoryService)packages/shared单元测试packages/contracts单元测试packages/provider-pi单元测试packages/source-control-gitcafe单元测试packages/client-runtime单元测试packages/client-runtime类型检查(tsc --noEmit,tsc-rs)未验证
engines.node指定的 Node 26.12.1 下测试apps/web(41 个文件)、apps/mobile(17 个文件)、apps/desktop的单元测试与类型检查未在本地运行,交给 CIRunExecutionService.ts中上游“中断被放弃的 turn”与 fork 的 provider runtime lifetime 逻辑为自动合并,仅由上述 server 单测覆盖,未做端到端验证同步后修复
EventSink的publishStoredEvents(events, outcomes)改成必须传outcomes(由applyStoredEvents返回)。fork 独有的writeIfRuntimeRequestCurrent自动合并后仍然只传一个参数,所以 Check 报 TS2554,运行时报TypeError: outcomes is not iterable(RunMetrics.ts:92)。Test Server 1–3 的失败都由此连锁引起,涉及 EventSink.runtime-request-races、ProviderSessionManager、ProviderEventIngestor、Muse/OpenCode replay。另外,上游新增的ProviderTurnStartService.test.ts:727fixture 用的是ProviderAdapterV2SessionRuntime,与 fork 的ProviderSessionManagerV2.get返回类型ManagedProviderSessionRuntime不符,报 TS2322。writeIfRuntimeRequestCurrent改为保存applyStoredEvents返回的 outcomes 并传给publishStoredEvents,写法与其他 guarded writer 一致;fixture 的 cast 改为ProviderSessionManager.ManagedProviderSessionRuntime。tsc --noEmit0 error;EventSink.runtime-request-races 9/9、ProviderEventIngestor 48/48、ProviderSessionManager 68/68、ProviderTurnStartService 32/32、MuseReplayFixtures 8/8、OpenCodeReplayFixtures 22/22、providerCompatibility 13/13、ModelManifest 6/6、providerMaintenanceRunner 19/19;node --test .github/scripts/opent3code-*.test.cjs105/105;改动的文件vp check通过。