Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
da74bf1
fix(gemini): discover antigravity mappings in native model lists
HuntercodeT Sep 15, 2026
881f320
chore: sync VERSION to 0.2.5 [skip ci]
github-actions[bot] Sep 15, 2026
d7ee1ab
fix(openai): persist response affinity after client cancel
xO-ox-ai Sep 15, 2026
21532ad
fix(payment): reset the order page when changing status
ouchihao Sep 15, 2026
0ed735d
fix(proxies): reuse in-flight test guards during batch testing
ouchihao Sep 15, 2026
14636d2
fix(totp): display normalized API error messages
ouchihao Sep 15, 2026
6a4938b
fix(announcements): preserve successful bulk read results
ouchihao Sep 15, 2026
130ba63
fix(clipboard): report errors thrown by the copy fallback
ouchihao Sep 15, 2026
8e34ca5
fix(account): keep refreshing OAuth tokens for paused accounts
bitnom Sep 15, 2026
18d483c
fix: 分组用量汇总不再全表扫 usage_logs
HuntercodeT Sep 16, 2026
a9ed218
feat(redeem): paginate user redemption history
wucm667 Sep 16, 2026
2f16e09
fix(openai): avoid duplicate manifest parsing
xz-dev Sep 14, 2026
31f3003
fix(openai): preserve manifest key validation
xz-dev Sep 14, 2026
18bfa4b
fix(gateway): normalize developer roles for strict Chat upstreams
HypoxanthineOvO Sep 16, 2026
1a32b91
fix(pagination): handle numeric jump input
ouchihao Sep 16, 2026
ee9ac3e
fix(auth): keep TOTP setup digits in sync with state
ouchihao Sep 16, 2026
98321a0
fix(payment): restore accepted text after invalid amount input
ouchihao Sep 16, 2026
0838e0e
fix(admin): reject negative platform quota limits before saving
ouchihao Sep 16, 2026
f8e5a0d
fix(channels): allow tabbing out of an empty model input
ouchihao Sep 16, 2026
fe36f4a
fix: prevent promo code field flash on registration
Liu8Can Sep 16, 2026
881ab1b
fix(deepseek): lift Responses tool output images
laoxiechuzheng Sep 16, 2026
aba3452
feat: support native Seedance Ark video task API
Qiaogun Sep 16, 2026
be4a499
fix(antigravity): strip Claude attribution metadata from system prompts
zhudaguaneren Sep 17, 2026
611c30f
chore(deps): 升级 google.golang.org/grpc 到 v1.83.2 修复 govulncheck 报告的两条公告
HuntercodeT Sep 17, 2026
017e9e9
fix(payment): base refund balance warnings on the requested amount
ouchihao Sep 17, 2026
be31373
fix(ui): keep dialog title IDs unique across instances
ouchihao Sep 17, 2026
b51f075
fix(payment): await in-flight configuration requests
ouchihao Sep 17, 2026
406be7c
fix(subscriptions): reset loading when clearing state
ouchihao Sep 17, 2026
acc0562
fix(deepseek): keep parallel Responses tool outputs contiguous
laoxiechuzheng Sep 17, 2026
4daabc3
Merge pull request #7234 from ouchihao/codex/bug-pagination-jump-number
Wei-Shaw Sep 17, 2026
131893e
Merge pull request #7237 from ouchihao/codex/bug-platform-quota-negative
Wei-Shaw Sep 17, 2026
44831bb
Merge pull request #7261 from HuntercodeT/chore/bump-grpc-1.83.2
Wei-Shaw Sep 17, 2026
7e4164c
Merge pull request #7207 from HuntercodeT/fix/group-usage-summary-seq…
Wei-Shaw Sep 17, 2026
d52ab27
Merge pull request #7173 from HuntercodeT/fix/gemini-native-mixed-mod…
Wei-Shaw Sep 17, 2026
40e7ce7
Merge pull request #7265 from ouchihao/codex/bug-payment-config-await
Wei-Shaw Sep 17, 2026
ea68c0e
Merge pull request #7263 from ouchihao/codex/bug-dialog-title-ids
Wei-Shaw Sep 17, 2026
efd86c6
Merge pull request #7235 from ouchihao/codex/bug-totp-setup-input-sync
Wei-Shaw Sep 17, 2026
5f75e0d
Merge pull request #7186 from ouchihao/codex/bug-clipboard-fallback-e…
Wei-Shaw Sep 17, 2026
55bde08
Merge pull request #7185 from ouchihao/codex/bug-announcement-read-re…
Wei-Shaw Sep 17, 2026
53fd5f8
Merge pull request #7183 from ouchihao/codex/bug-proxy-test-dedup
Wei-Shaw Sep 17, 2026
10fd1ad
Merge pull request #7182 from ouchihao/codex/bug-orders-filter-page
Wei-Shaw Sep 17, 2026
71c0eb5
Merge pull request #7184 from ouchihao/codex/bug-totp-error-messages
Wei-Shaw Sep 17, 2026
57e9f6a
Merge pull request #7238 from ouchihao/codex/bug-model-tag-tab-naviga…
Wei-Shaw Sep 17, 2026
ffa4360
Merge pull request #7236 from ouchihao/codex/bug-payment-amount-input
Wei-Shaw Sep 17, 2026
0932e8c
Merge pull request #7266 from ouchihao/codex/bug-subscription-loading…
Wei-Shaw Sep 17, 2026
cd1834e
Merge pull request #7262 from ouchihao/codex/bug-refund-balance-warning
Wei-Shaw Sep 17, 2026
c84a3d5
Merge pull request #7215 from xz-dev/fix/manifest-double-parse
Wei-Shaw Sep 17, 2026
5050471
Merge pull request #7239 from Liu8Can/fix/register-promo-code-flicker
Wei-Shaw Sep 17, 2026
9efc167
Merge pull request #7195 from bitnom/fix/refresh-paused-oauth-accounts
Wei-Shaw Sep 17, 2026
b4e5608
Merge pull request #7177 from xO-ox-ai/codex/fix-openai-response-bind…
Wei-Shaw Sep 17, 2026
48a86ec
Merge pull request #7224 from HypoxanthineOvO/codex/upstream-chat-rol…
Wei-Shaw Sep 17, 2026
18328ae
Merge pull request #7212 from wucm667/feat/issue-7203-redemption-pagi…
Wei-Shaw Sep 17, 2026
aeab57b
Merge pull request #7256 from zhudaguaneren/fix/antigravity-attributi…
Wei-Shaw Sep 17, 2026
d099c06
fix: resolve Seedance lint and gRPC security checks
Qiaogun Sep 17, 2026
efe9aab
Merge pull request #7246 from laoxiechuzheng/fix/deepseek-native-resp…
Wei-Shaw Sep 17, 2026
f79b8bf
fix(antigravity): Gemini 原生流对 go-genai / python-genai 客户端不发 SSE 注释心跳
HuntercodeT Sep 17, 2026
0f4d8ac
fix(antigravity): Gemini 原生请求的裸模型名按 thinkingConfig 解析到 -low/-medium/-…
HuntercodeT Sep 17, 2026
a9c7c6e
ui(header): 手机竖屏顶栏保留模型广场图标入口
feeeei Sep 18, 2026
bcc73f8
fix(openai): pass DeepSeek thinking-mode reasoning_content on chat fa…
baryon Sep 18, 2026
db8692d
fix(ratelimit): pause CN coding-plan accounts on quota-exhausted 403
ye4241 Sep 18, 2026
a8a1a3a
fix(apicompat): flatten root union tool schemas for Anthropic
laoxiechuzheng Sep 18, 2026
c63bd14
feat(plugin): generic host services + read-only status bridge channel
Wei-Shaw Sep 19, 2026
6477143
test(plugin): check type assertions to satisfy errcheck lint
Wei-Shaw Sep 19, 2026
4dbcdce
Merge pull request #7351 from Wei-Shaw/feat/plugin-host-services-stat…
Wei-Shaw Sep 19, 2026
4275047
Merge pull request #7313 from baryon/contrib/deepseek-chat-reasoning-…
Wei-Shaw Sep 19, 2026
d5cea61
Merge pull request #7345 from laoxiechuzheng/fix/anthropic-root-union…
Wei-Shaw Sep 19, 2026
1b45d21
Merge pull request #7340 from ye4241/fix/kimi-cn-quota-403-rate-limit…
Wei-Shaw Sep 19, 2026
09f8886
Merge pull request #7294 from feeeei/feat/model-plaza-icon
Wei-Shaw Sep 19, 2026
0c9e83b
Merge pull request #7278 from HuntercodeT/fix/antigravity-gemini-sse-…
Wei-Shaw Sep 19, 2026
74431ff
Merge pull request #7258 from HuntercodeT/fix/antigravity-gemini-bare…
Wei-Shaw Sep 19, 2026
aea725f
Merge pull request #7247 from Qiaogun/codex/seedance-native-api
Wei-Shaw Sep 19, 2026
5a4b26a
merge: integrate official Sub2API v0.2.7 baseline
Sep 19, 2026
27e6d8f
feat: introduce extension host and account quota observation contracts
Sep 19, 2026
7693615
feat: move Codex tickets and model references into signed plugins
Sep 19, 2026
990dede
feat: isolate prompt account Cindy and image policies in plugins
Sep 19, 2026
8232c3d
feat: add plugin-owned observability and optional theme resources
Sep 19, 2026
dce6612
feat: move prompt sources and skill publication policy into plugin
Sep 19, 2026
49062e9
fix: preserve scoped prompt policies and expire abandoned skill jobs
Sep 20, 2026
66f97dd
feat: move Cindy probe and channel decisions into provider policy
Sep 20, 2026
480ec39
feat: isolate Codex profile policy and fence host metadata updates
Sep 20, 2026
7c721ed
feat: make Codex request compression a plugin-owned policy
Sep 20, 2026
752cacb
feat: delegate recovery decisions and preserve capability intent on u…
Sep 20, 2026
37ec65f
docs: record remaining integration review boundaries
Sep 20, 2026
2029985
feat: support durable independent plugin updates and pinned versions
Sep 20, 2026
092093d
build: publish independent signed plugin packages and bind review evi…
Sep 20, 2026
387b0a7
feat: publish prompt management UI with scoped host resources and pub…
Sep 20, 2026
6104c4a
feat: isolate account classification and test interfaces with scoped …
Sep 20, 2026
0e43ef9
feat(plugins): move image studio UI and responses bridge policy into …
Sep 20, 2026
c3b17da
feat(plugins): publish Cindy management UI and declarative account cells
Sep 20, 2026
d82cb59
feat(plugins): move Cindy management decisions and fix canonical grou…
Sep 20, 2026
1456734
fix(plugins): preserve policy cancellation through detached upstream IO
Sep 20, 2026
8a4d280
feat(plugins): move account import UI and parser into account tools
Sep 20, 2026
915f66e
fix(plugins): fence host account jobs and retain ownership on retries
Sep 20, 2026
5069463
feat(plugins): move import decisions into bounded account tools plans
Sep 20, 2026
76b7f68
fix(plugins): pause and restart prompt domain workers with policy ava…
Sep 20, 2026
a24c245
feat(plugins): scope Codex replay rules and ship independent diagnostics
Sep 20, 2026
2ee4c42
feat(plugins): ship prompt audit management UI with scoped host resou…
Sep 20, 2026
9f01614
fix(plugins): make local chart and radius presentation follow theme l…
Sep 20, 2026
b75b999
feat(plugins): move Cindy Codex presentation metadata into provider c…
Sep 20, 2026
7ad86e0
feat(plugins): fence prompt publication plans and constrain skill sto…
Sep 20, 2026
1bca773
feat(plugins): finish Cindy policy and harden update boundaries
Sep 20, 2026
61464b3
chore(plugins): refresh coverage inventory at final head
Sep 20, 2026
9c366ba
fix(plugins): reject stale coverage basis revisions
Sep 20, 2026
a784e4b
fix(plugins): keep coverage basis metadata informational
Sep 20, 2026
d1b2921
chore(plugins): import fixture provenance evidence
Sep 20, 2026
c08b6f5
chore(plugins): record plugin update source review
Sep 20, 2026
72321d5
docs: record Sub2 official DeepSeek pricing behavior
Sep 20, 2026
25d7cc6
chore(plugins): close static documentation review
Sep 20, 2026
9cdc074
fix(plugins): enforce current admission and immutable account scope
Sep 21, 2026
3e8c9ac
fix(plugins): preserve update ownership and enforce account-scoped ex…
Sep 21, 2026
66a9e3d
fix(plugins): preserve account rollout across catalog and Codex polic…
Sep 21, 2026
c96b462
fix(plugins): fence host IO admission and stop retained quota workers
Sep 21, 2026
d397af8
fix(plugins): preserve scoped prompt provenance and immutable publica…
Sep 21, 2026
df05dc4
fix(plugins): align contribution permissions and revoke lost runtime …
Sep 21, 2026
230169d
fix: preserve retired profit admission and recover plugin dialogs
Sep 21, 2026
010c74a
fix: scope traffic observation and fence usage statistics refresh
Sep 21, 2026
a2e9892
fix(account-tools): retain import drafts on rejected file selections
Sep 21, 2026
e672558
fix(prompt): release completed websocket turn cache snapshots
Sep 21, 2026
4129f63
fix(plugins): atomically validate registry and fence stale management…
Sep 21, 2026
8cc960c
fix(plugin-ui): release abort listeners after bridge request timeout
Sep 21, 2026
983e77d
fix(cindy): recheck actual account scope before probe and native Mess…
Sep 21, 2026
dc7ade1
docs(plugins): document version receipts and registry transaction bou…
Sep 21, 2026
882b43a
fix(account-tools): preserve retry keys and validate off-page reasoni…
Sep 21, 2026
b66b261
fix(plugin-ui): close teleported options when admission becomes unava…
Sep 21, 2026
93070b4
fix(plugins): revalidate named policy admission before cached and dir…
Sep 21, 2026
35132f3
fix(prompt-audit): bind deletion previews and preserve concurrent UI …
Sep 21, 2026
b4eb9db
fix(prompt-skills): preserve editor drafts and stop detached UI polling
Sep 21, 2026
63edf00
fix(plugins): keep extended runtimes on generation-fenced host ports
Sep 21, 2026
8a100d8
fix(migrations): preserve the complete quota platform union after leg…
Sep 21, 2026
cff72bd
fix(plugin-sdk): provide explicit local configuration diagnostics
Sep 21, 2026
63a98c8
fix(cindy): bind model mapping and pricing to request snapshots
Sep 21, 2026
40b2fde
fix(cindy-ui): retain drafts and fence stale view actions
Sep 21, 2026
282428e
fix(migrations): harden Cindy identity and check unsafe history befor…
Sep 21, 2026
05e25bd
chore: wire Cindy UI regressions and clarify retained UI text
Sep 21, 2026
7b4de3a
refactor(account-tests): share model plans without moving core execution
Sep 21, 2026
c655bcd
fix(scheduling): enforce group privacy on fresh sticky and pool selec…
Sep 21, 2026
12920fa
fix(grok): preserve raw chat retry metadata
Sep 21, 2026
d1d504b
fix(account-jobs): seed all flattened Codex import entries
Sep 21, 2026
1221bcd
fix(account-jobs): freeze bulk filter targets before enqueue
Sep 21, 2026
fa843c5
test(account-plans): wire independent model-plan UI regressions
Sep 21, 2026
f8d4ed5
fix(database): recognize pgx startup SQLSTATE errors
Sep 21, 2026
12d087b
test(account-plans): verify compiled UI with versioned bridge plans
Sep 21, 2026
6258ada
fix(responses): restore authenticated HTTP continuation ownership
Sep 21, 2026
5ce1d85
fix(observability): restore compatibility response hooks
Sep 21, 2026
6e11bd6
fix(usage-ui): restore latency signal and plugin-aware probe fixtures
Sep 21, 2026
49c1e8d
fix(plugins): scope Cindy response policy and discard invalid decoded…
Sep 21, 2026
4a57328
fix(images): keep Cindy native forwarding on captured catalog
Sep 21, 2026
52424fb
fix(ui): follow plugin fingerprint defaults and restore payment contrast
Sep 21, 2026
d9ac2a0
fix(ui): retain contrast on standalone Stripe payment amount
Sep 21, 2026
72cedce
fix(protocol): fail incomplete tools across chat stream adapters
Sep 21, 2026
cd8c18b
feat(plugins): declare scoped account views and preserve job origins
Sep 21, 2026
fe89731
fix(prompt-skills): follow site locale without changing prompt drafts
Sep 22, 2026
8c92ad0
test(plugins): exercise account view fences with PostgreSQL
Sep 22, 2026
9f423dd
feat(plugins): declare provider account creation with atomic admission
Sep 22, 2026
e36c115
feat(accounts): declare account edit contract (in-flight batch taken …
Sep 22, 2026
d562e71
fix(cindy): fail closed before loading a probe job on resume
Sep 22, 2026
30ba736
fix(frontend): stub accountAPIForView in BulkEditAccountModal spec mock
Sep 22, 2026
b53e471
fix(routes): install plugin catalog fixture for pinned Codex models test
Sep 22, 2026
3751b45
fix(frontend): stub plugin surfaces in GroupsView specs
Sep 22, 2026
5640dc3
fix(frontend): drop obsolete Cindy recover expectation in spark_shado…
Sep 22, 2026
d771c8b
fix(plugins): align resource contracts and edit CI coverage
Sep 22, 2026
574f9d0
fix: close v0.2.7 gateway and protocol regressions
Sep 22, 2026
ca478ee
ci: keep required branch checks separate from release tags
Sep 22, 2026
6cd89ee
fix(frontend): preserve task access and plugin launch scope
Sep 22, 2026
638758e
fix(quota): include quota window state in Linux builds
Sep 22, 2026
5d74264
fix: close required CI contracts without reviving retired behavior
Sep 22, 2026
ac5ad6c
fix(quota): reconcile test 429s without inventing deadlines
Sep 22, 2026
2f8e120
test: align release and quota ownership contracts
Sep 22, 2026
7865a33
test(migrations): verify plugin seed startup preserves legacy history
Sep 22, 2026
beb74d3
test(plugins): wait for the PostgreSQL promotion barrier to drain
Sep 22, 2026
6f42f0a
test(plugins): await independent update session drain
Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 27 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
# Documentation
*.md
!deploy/DOCKER.md
!deploy/plugin-bundle/README.md
!THIRD_PARTY_NOTICES.md
docs/
# admin-compliance gate (LegalDocumentView.vue) build-time imports
Expand Down Expand Up @@ -50,8 +51,32 @@ coverage/
.env.*
!.env.example

# 本地闭源插件目录可能包含发布签名私钥,绝不能进入 Docker 构建上下文。
/plugins/
# Only the reviewed first-party module enters the build context. Local plugin
# packages, generated binaries and publisher keys remain excluded.
/plugins/*
!/plugins/bundle.source.json
!/plugins/codex-runtime/
!/plugins/codex-runtime/**
!/plugins/model-policy/
!/plugins/model-policy/**
!/plugins/prompt-skills/
!/plugins/prompt-skills/**
!/plugins/account-tools/
!/plugins/account-tools/**
!/plugins/cindy-provider/
!/plugins/cindy-provider/**
!/plugins/image-tools/
!/plugins/image-tools/**
!/plugins/admin-observability/
!/plugins/admin-observability/**
/plugins/codex-runtime/dist/
/plugins/model-policy/dist/
/plugins/*/dist/
/plugins/*/node_modules/
/plugins/*/ui/compiled/
/plugins/**/*.key
/plugins/**/*.s2plugin
/plugins/**/*.exe

# Local config
config.yaml
Expand Down
7 changes: 4 additions & 3 deletions .downstream/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@ non-prerelease GitHub Releases from `Wei-Shaw/sub2api`.
An upstream candidate is eligible for checked auto-merge only when the
machine-readable risk report records zero downstream-overlap files, zero
critical paths, and a conflict-free merge. Every other conflict-free candidate
is labeled `upstream-review-required`; the trusted risk gate requires a human
to add `upstream-reviewed`. Text conflicts stop before a branch is pushed and
is labeled `upstream-review-required`; an authorized maintainer records the
completed review with `upstream-reviewed`. Text conflicts stop before a branch is pushed and
create a named issue with the conflicted paths.

After a safe candidate merges, automation creates the immutable
`vX.Y.Z-codexrip.1` tag once. The normal Downstream Release workflow builds and
attests the linux/amd64 OCI image. A successful release dispatches Production
Deploy with `runtime=preserve`; that run waits at the GitHub `production`
Environment and is never approved by automation.
Environment for the configured approval. Authorized delegated maintenance may
complete that approval; the release workflow does not approve itself.

Sub2API does not store a GitHub token. The admin VersionBadge reads only public
repository metadata and links to the official Release, candidate PR,
Expand Down
42,926 changes: 42,926 additions & 0 deletions .downstream/coverage-v0.2.7.json

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions .downstream/coverage-v0.2.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 下游归属与审查覆盖

当前清单尚未完成审查,不能用文件已分类代替功能迁移完成。生产仍按根项目手册运行;发布完成状态只记录在[实施状态](implementation-v0.2.7.md)。

## 范围

当前清单以官方精确提交 `aea725f2ea644d5592d0bbb1d63b607efa7e200a` 对比工作树,并纳入未跟踪源码。最新数量、候选归属、逐文件角色、内容摘要和待审查状态仅维护在[机器可读清单](coverage-v0.2.7.json),由 `node .downstream/refresh-coverage.mjs` 更新;只有字节一致的已有审查结论才会保留。

清单分别标明源码、测试/固定用例、内置技能来源文件、文档、生成代码、依赖锁和二进制素材。候选归属只提供审查入口,混合文件仍按实际调用链判定。审查记录须包含决议、归属、原因与证据,并绑定当前字节指纹;删除项绑定被删除的上游 blob,不能因没有文件摘要而永久丢失审查结论。

仅清单 JSON 自身采用派生结构校验,不以其自引用内容计算摘要;其他文档仍须静态审查。`node .downstream/refresh-coverage.mjs --check` 检查清单与当前源码一致,`--check --require-complete` 另要求全部记录有有效结论。总完成状态由记录计算,不能手改布尔值代替审查。

已完成的外部审查可用 `node .downstream/refresh-coverage.mjs --import-review <审查JSON路径>` 导入,可重复指定该选项。输入须声明相同 `upstream_base` 和逐文件 `entries`;每条已审记录的角色、内容摘要、指纹、决议、原因和证据都必须有效。待审记录不导入,重复路径、改变的源码与清单自身声明会使整次导入失败且不写入;`--check` 不允许同时导入。来源证明与业务语义审查分别在原因和证据中表述,不能互相替代。

## 已建立证据的决议

| 证据入口 | 根因或归属 | 实现路径 |
|---|---|---|
| `TestQuotaWindowObservationsKeepIndependentDeadlinesAndClearRemovedSlots`、`TestQuotaSnapshotOrderingAndLegacyWindowClock` | 不同窗口不能共享新的采样起点;旧快照必须在锁内判定时序 | 核心统一窗口表示、窗口独立时钟、数据库单调写入 |
| `TestQuotaRecoveryCannotReactivateOldUnknownErrorOrClearOtherState`、`TestOAuthQuota429UsesRecoverableQuotaSource` | 硬额度与普通 429 需要不同状态来源 | 核心额度读模型,独立恢复;保留管理员状态和普通冷却 |
| `TestQuotaMeasurementUsesShadowWindowAndParentBillingIdentity`、`TestQuotaEstimateRepositoryRecalibratesAfterCostHistoryShrinks` | 费用必须对应同一主体、计费倍率、额度范围和连续费用历史 | 核心配对估值与可归因观测边界 |
| `TestAccountTestReasoningOpenCodeGoSerializesNativeProtocol`、`TestBatchTestReasoningPersistsPerAccountForRetry` | 选项必须写入实际出站协议,批量选择按账号身份持久化 | 核心协议校验和序列化;增强界面的最终插件归属仍待完成 |
| `TestCodexTicketFacadeUsesPluginWithoutLegacyFallback`、`TestRestartRecoversAbandonedFirstAttemptWithoutSendingAnotherRequest` | 292 是领域业务,不能保留两个采集/续期执行器 | `plugins/codex-runtime` 独立执行;宿主只留协议、凭据刷新、任务及一次数据迁移 |
| `TestSettingsCodexTicketConfigurationHasOnlyPluginWritePath` | 全局设置与插件配置不能同时写同一业务开关 | 旧写入口返回迁移提示,插件配置唯一写入 |
| `TestCatalogProcessContractPreservesProductScope`、`TestPluginCatalogCacheHonorsActivationHealthAndConfiguration` | 固定目录与供应商匹配是可独立策略;观测/自定义值及金额提交仍属核心 | `plugins/model-policy` 独立目录,宿主通用能力接口及有界缓存 |
| `TestFirstPartyBundleContainsMatchingSignedDomainPackages` | 每个插件及界面资源必须对应锁定签名包 | 七域签名与进程验证通过,源码与开发构建差异见实施状态;仍未正式发布 |
| `TestCindyNewTurnRefreshesPricingWithoutChangingPendingBill` | 配置切换不能改变已完成请求的账单,长连接的新回合必须重新取当前配置 | 宿主保存请求价格快照,异步任务按账号身份传播;价格参考来自独立 Cindy 模块 |
| `TestImageStudioDisableCancelsHostExecutionAndKeepsSavedInputs` | 只隐藏 UI 不足以停止已排队或正在执行的领域任务 | 宿主 IO 绑定插件上下文,停用/配置更改取消执行;输入和历史数据保留 |
| `TestPublicPluginSurfaceRetainsFailureAndHidesDisabledConfiguration` | 停用与故障必须采用不同展示语义,公开元数据不能携带管理操作 | manifest 条件贡献,角色过滤,故障保留入口并阻止新请求 |
| `TestTrafficObservationFinishesWithCapturedPolicyAfterPluginDisable` | 停用不能把已开始观测的成功请求误记成失败 | 插件提供有界分类表,宿主冻结规则并完成一次收尾 |
| `TestPublicThemeAssetsRequireCurrentActivationDeclarationAndDigest`、`check-theme.py` | 主题资源须可撤销,宿主仍有基本可用样式 | 按声明公开 CSS/字体,校验资源摘要,深浅色和窄屏启停的计算样式验证通过 |
| `plugins/codex-runtime/scripts/check-ui.py` | 协议标签与控件不能一起居中对齐按钮 | 插件界面采用底部对齐与自然换行,桌面/窄屏及深浅色 DOM 检查通过 |
| `TestPromptDomainUsesActiveScopeWithoutBroadeningRequestBindings` | 全局管理查询不能把请求作用范围中的通配符当作实际账号类型 | 唯一领域提供者管理共享材料,逐账号注入仍执行绑定范围 |
| `TestRemoteSkillJobExpiryPreservesActiveOwnersAndRejectsLateCompletion` | 进程退出后不应永久显示运行中,也不能允许旧任务迟到提交 | 固定任务期限、数据库实时时钟校验;过期失败、不重放、不改活跃任务 |

## 继续审查

尚未决定保留或迁移的路径保持待审查。七域已建立,接下来核查剩余混合职责及局部主题声明;范围与验证状态以实施状态为准。

根项目运维、独立服务和 Worker 不属于此 Sub2API Git 清单,修正、证据和未完成项统一记录在项目根 `artifacts/evidence/v027-root-review.json`。历史 worktree、在线数据、凭据和账本均保留。
Loading
Loading