Files
knowledge-governance/scripts/test-scope.json
T
姚章浩 719876d039
build / build (push) Successful in 3m5s
fix(qa-weekly-mail): 修复周日发送窗口并提供正式补发
根因:SendDue 同时要求“已到配置时段”与“该周已结束(下周一00:00)”。周日23点的时段
只在周内存在,当周周报永远不满足“已结束”,于是 11/08 23:00 只报 nothing_confirmed、
11/09 00:00 又已成 not_due —— 邮件从未尝试发送,与 SMTP 凭据/网络无关。

改法(最小、不碰历史发布模块):
1. 由发送窗口反推要发的周:周日窗口发当天结束的那一周,其它工作日仍发上一完整周
   (周一09:00 语义不变)。自动发送只处理这一周,不再按“所有已结束的周”回填。
2. 认领改为只重认 failed(或首次)记录:sent 幂等返回真实 message_id;sending 视为
   结果未知,拒绝盲重发并提示核对邮箱。自动与手工共用同一条渲染/认领/投递路径,
   并发或重复点击只投递一次;失败如实写 failed,不假写 sent。
3. 新增管理员正式补发(页面按钮 + GET 预览 + POST /weekly-mail/send/{week}):精确指定
   周、已确认版本与正文 hash,必须同源操作意图;未来周拒绝,当前周须到设定时点,
   已结束周可显式补发。正文/看板图片/主送/抄送与自动发送一致,结果写入正式发送记录。
   这不是“发送测试邮件”(只发 review 地址、不登记)。

验证:真实隔离 PostgreSQL(kg-pgtest-writeset 上的独立一次性库)先 RED(旧实现真实
复现 nothing_confirmed)后 GREEN;覆盖到点前/未来周/未确认/正文变化、周一语义保持、
手工补发一次并读回 message_id、并发只投递一次、结果未知不重发、失败可重试一次。
HTTP 与前端解析用例通过;make verify 17 项全绿。
2026-11-09 00:48:33 +08:00

633 lines
42 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_doc": [
"测试范围声明:**哪些跳过是允许的**。judge 在 scripts/ci_checks.py 里读这个文件。",
"极性是『默认必需』:没在这里声明的测试,一旦被 SKIP / PENDING ⇒ 门禁红(必需项不能报通过)。",
"只有『确实需要外部环境、本仓拿不到』的集成/外部依赖用例才写进来,每条必须写清理由。",
"package 级条目 = 该包里所有 skip 都算『可选未运行』(例如整个包都依赖 TEST_DATABASE_URL)。",
"test 级条目 = 只豁免那一个用例(包里其它用例仍是必需的)。",
"报告里会把这些『可选未运行』的条数与原因如实列出 —— 记录,不等于通过。",
"⚠️ 文件缺失或解析不了 ⇒ 门禁红:范围声明不出来时,不许默认放行。"
],
"optional": [
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestDS02FullShapeOracleIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:十表逐列/引用/向量/对象字节独立oracle、零Embedding计数与正文/向量/引用/映射变异自检;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestDS02LegacyCompatibilityMatrixIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:旧manifest/V1/空作业或目标身份的正式入口拒绝且全数据hash不变;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestDS02FrozenBundleIsolated",
"reason": "需 KG_DS02_BUNDLE 指向的冻结输入 bundle 加一次性本机PG/ES/MinIO:与旧SHA同一bundle hash的新侧发布与独立oracle;普通CI没有bundle,跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestDS02ProcessIdentity",
"reason": "需隔离运行器注入 test-only nonce/commit/源码树与二进制哈希期望;普通CI没有注入,跳过不是通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestR13AnchorWriteFailureBlocksTargetIsolated",
"reason": "需显式一次性本机治理PG:真实约束拒绝写锚点,验证目标零写入且不留假基线;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR13OrphanOraclePropagatesDriverFailureIsolated",
"reason": "需显式一次性本机PG:用真实 statement timeout 让校验查询中途失败,断言不是\"无孤儿\";普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR13OrphanOracleRejectsMalformedAndUnknownDocumentsIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:孤儿校验的缺失/未知 knowledge_id 分支;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR12SharedResourceDifferenceMatrixIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:r12 软删除before-image/共享资源差异/外部索引文档字节/索引oracle/对象精确版本;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR12LateWikiFailureKeepsPreExistingObjectVersionsIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:r12 软删除before-image/共享资源差异/外部索引文档字节/索引oracle/对象精确版本;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR12IndexOracleDetectsContentVectorAndMetadataChangesIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:r12 软删除before-image/共享资源差异/外部索引文档字节/索引oracle/对象精确版本;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR12ForeignIndexDocumentStaysByteIdenticalIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:r12 软删除before-image/共享资源差异/外部索引文档字节/索引oracle/对象精确版本;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR12DeletedCascadeBeforeImageAndRestoreIsolated",
"reason": "需显式一次性本机PG/ES/MinIO:r12 软删除before-image/共享资源差异/外部索引文档字节/索引oracle/对象精确版本;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestR11RevokedAuthorizationStopsBeforeFirstWrite",
"reason": "需要显式一次性本机PG治理库:真实授权行在预备份后被撤销,验证零写入与保留预备份;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestR11FinalizeFailureAfterTerminalHoldsThenRepairsWithoutRewrite",
"reason": "需要显式一次性本机PG治理库:真实维护行/作业行/版本事件行上注入收尾故障,验证held与只补收尾不重写;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11StableIdentityMatrixIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11ReferenceAndCursorIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11NaturalKeyMatrixIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11GrantBoundaryIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11CatalogBindingIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR11BackupMutationIsolated",
"reason": "显式一次性本机PG/ES/MinIO目录、身份、自然键及备份/授权边界;r11独立runner保存raw与零写读回。普通CI跳过不是通过。"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10RestoreForeignResourceReferencesIsolated",
"reason": "本机隔离PG/ES/MinIO真实发布后注入未知绑定/外库正文metadata引用,验证Restore在所有副作用前held;普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10ProductionAdmissionIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10SourceRelationClosureIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10IncomingRelationClosureIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10BodyOnlyResourceIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10UnknownResourceShapeIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10SequenceRejectionIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10SequenceOrderingReplayIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestR10SourceSchemaBoundIsolated",
"reason": "需要显式一次性本机PG/ES/MinIO隔离资源;r10真实数据契约与实际stack准入另存raw及零写读回,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestFormalWorkerRecoveryIntent",
"reason": "专属本机隔离进程链:新恢复队列、正式worker/自动grant/维护协调器/PG/ES/MinIO、恢复中SIGKILL与真实ES提交后丢响应;外部隔离runner逐场景执行并单列证据,普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestFormalWorkerDoubleInterruption",
"reason": "仅专属本机隔离部署:实际worker与网关进程、Docker维护入口、独立治理/业务PG、MinIO只读/写身份、ES及隔离构建短租约;普通CI跳过不算通过,进程级证据单列"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayAcquisitionPersistsAttemptDelivery",
"reason": "仅显式一次性 loopback 治理PG和随机MinIO测试桶运行;验证持久grant交付、跨epoch发送身份及unknown阻断,本机隔离证据单列,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewaySharedBucketCoexistenceWithOtherWriters",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行:无整桶证明启动、无关key共存写入不阻塞、同key既有对象拒绝且不改字节、精确回滚;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayAcquisitionCannotHandOverUnknownSend",
"reason": "仅显式一次性 loopback 治理PG和随机MinIO测试桶运行;验证持久grant交付、跨epoch发送身份及unknown阻断,本机隔离证据单列,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayNewEpochPreservesOriginalSendIdentity",
"reason": "仅显式一次性 loopback 治理PG和随机MinIO测试桶运行;验证持久grant交付、跨epoch发送身份及unknown阻断,本机隔离证据单列,普通CI跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayReadinessRequiresJournal",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayRealReplayAndImmutableLedger",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayActualServiceTwoInterruptions",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayAbsenceNeverSettlesUnknown",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayReadOnlyPersistenceBlocksSend",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayIntentCommitFailureNeverSends",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayGrantCannotAuthorizeUnplannedKey",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/internal/objectgateway",
"test": "TestGatewayTargetIdentityOnEveryCall",
"reason": "仅显式一次性loopback kg_library_test_gateway_*治理库、随机MinIO桶及本轮构建网关二进制执行;普通CI不带存储凭据,本机隔离实跑另存raw,跳过不算通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestLibraryReleaseRejectsAnotherTargetBeforeMaintenance",
"reason": "需要 TEST_DATABASE_URL 指向可销毁 PostgreSQL;验证跨目标旧作业在维护与执行代次创建前被拒绝,本地隔离真库补验,CI 无库显式跳过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibrarySourceReadOnlyDiagnostic",
"reason": "仅明确只读测试源授权及进程内凭据下运行;真实 PG、ES、OSS 不冻结,属于诊断而非一致性或生产放行;默认 CI 不注入测试源凭据,实际失败必须另行保留而非算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryCaptureIsolatedStack",
"reason": "显式隔离 PG、随机 ES 索引和无网络 Docker 夹具的联合捕获验收;默认 CI 不连接这些服务,本地另行运行并做索引覆盖变异反向验证;不代表真实 WeKnora 写入隔离或 Wiki 语义验收"
},
{
"package": "knowledge-governance/internal/libraryfreeze",
"test": "TestFreezeIsolatedDocker",
"reason": "只在显式 KG_FREEZE_DOCKER_ISOLATED=1 下使用本地 Docker 与已缓存 busybox 创建随机标签、无网络/无挂载夹具,验证真实暂停恢复和进程中断;默认 CI 不连接 Docker 或运行中的服务,本地另行实跑"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"test": "TestAILiveBailianPersistsAssessmentAndTranslation",
"reason": "真实百炼付费调用仅在明确用户授权、独立注入凭据、精确opt-in及一次性隔离库下执行;普通CI不携带服务密钥或消耗配额,本批另行真实后台与浏览器验收"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"reason": "本包所有集成用例只在显式一次性 loopback kg_qaops_mirror_test_ 库运行;默认 CI 不连共享或生产库;隔离 PG -race 另行实跑"
},
{
"package": "knowledge-governance/internal/qaopsquality",
"test": "TestQualityStoreImmutableHistoryReplayConcurrencyAndStaleness",
"reason": "仅在显式一次性 loopback kg_qaops_quality_test_ 库执行;默认 CI 不连接共享/生产库,隔离 PG 另行实跑"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestQARecordInternalIdentityAndWholeFilterKeys",
"reason": "必须显式一次性隔离PG;验证真实只读SQL身份关联/计数及隐私,不连接生产;默认无库时明确跳过,另行本地补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestQAUsageGroupsCountEventsOnceOverTheFullFilter",
"reason": "必须显式一次性隔离PG;验证真实只读SQL身份关联/计数及隐私,不连接生产;默认无库时明确跳过,另行本地补验"
},
{
"package": "knowledge-governance/internal/qaopsorg",
"test": "TestDirectorySyncQueueDurableReplayAndLeaseFencing",
"reason": "仅显式一次性隔离PG库验证持久化入队、并发重放、进程接管与租约栅栏;不调用真实钉钉源、不连接共享或生产库;默认CI无库则明确跳过"
},
{
"package": "knowledge-governance/internal/qaopsorg",
"test": "TestOrganizationStoreRoundTripAndOptimisticConflict",
"reason": "仅在显式KG_QAOPS_ORG_TEST_ISOLATED=1且127.0.0.1上的一次性kg_qaops_org_test_库运行;写入治理侧快照与配置,禁止使用共享或生产库;本批已在隔离PG补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestSSHDialerTransportsRealTraffic",
"reason": "需要已批准 SSH 路径和只读版本接口;CI 不带生产 SSH 凭据,缺环境时显式跳过"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestSSHTunnelCloseReapsChild",
"reason": "需要已批准 SSH 目标来验证子进程回收;无路径的 CI 不应尝试建立生产连接"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestReadOnlyRepositoryAgainstFixtureDatabase",
"reason": "需显式 KG_DOBOTAI_TEST_ISOLATED=1 且 TEST_DATABASE_URL 通过隔离库护栏,CI 不建生产测试表;本批已在一次性测试库补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestBuildRefusesUnsafeAccountsAndTargets",
"reason": "只在显式一次性测试库创建危险权限夹具,不在生产库验证写入;本批已在隔离库补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestSourceRechecksEffectivePrivilegesBeforeEveryQuery",
"reason": "在一次性测试库模拟额外表写权限,测试前须通过隔离护栏;本批已实际补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestQARecordSearchPreservesSourceAndDoesNotMultiplyFeedback",
"reason": "完整查询/反馈/游标/空列验证需要显式一次性测试库;本批已在隔离库补验"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestProductionReadOnlyCombinedVerification",
"reason": "需独立批准的生产只读账号文件与 SSH 路径并显式 KG_DOBOTAI_PROD_VERIFY=1;CI 永不自动读取生产库"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestProductionQAQueryReadOnlyVerification",
"reason": "真实源查询端到端验证仅在显式 KG_DOBOTAI_PROD_VERIFY=1、批准的凭据文件与 SSH 路径下执行;CI 不访问生产,测试不写源库"
},
{
"package": "knowledge-governance/internal/platform/postgres",
"reason": "整个包的集成用例都要 TEST_DATABASE_URL 指向可销毁测试库;本仓不连生产库,CI 无库 ⇒ 跳过(补验路径:起一次性 PG 后设 TEST_DATABASE_URL)"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"reason": "v0.7.1 源/目标库与 MinIO 集成环境;无环境即跳过"
},
{
"package": "knowledge-governance/cmd/pp-ledger-import",
"reason": "导入器集成用例需要 TEST_DATABASE_URL"
},
{
"package": "knowledge-governance/cmd/release-worker",
"reason": "release runtime 集成用例需要受限文件与运行时环境变量"
},
{
"package": "knowledge-governance/internal/monitoring",
"reason": "真实服务健康矩阵 / 指标窗口用例需要外部服务可达"
},
{
"package": "knowledge-governance/internal/httpapi",
"test": "TestUISettingsWriteReadBackIntegration",
"reason": "系统设置写回读用例需要一个运行中的实例"
},
{
"package": "knowledge-governance/internal/httpapi",
"test": "TestUISettingsWriteReadBackWithLiveVerification",
"reason": "同上(带实时校验的那条)"
},
{
"package": "knowledge-governance/internal/version",
"test": "TestNumberMatchesChangelog",
"reason": "未注入版本号时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
},
{
"package": "knowledge-governance/internal/version",
"test": "TestDevBuildDoesNotClaimRelease",
"reason": "构建身份未注入时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
},
{
"package": "knowledge-governance/internal/version",
"test": "TestReleaseBuildRequiresEvidence",
"reason": "构建身份未注入时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
},
{
"package": "knowledge-governance/internal/versionhistory",
"test": "TestLiveSyncAgainstRealRepository",
"reason": "真实仓库的只读同步用例需要内部可达的 Gitea(**匿名**,不读凭据);无环境即跳过(补验路径:设 VERSION_HISTORY_LIVE_BASE_URL 后单跑这条)"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"test": "TestLocalMirrorQueriesNeverRequireSource",
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"test": "TestLocalMirrorDurableQueueCoalescesAndAudits",
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"test": "TestLocalMirrorSyncActivatesAndCheckpoints",
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
},
{
"package": "knowledge-governance/internal/qaopsmirror",
"test": "TestLocalMirrorPeriodicSyncIsDurableAndDueOnly",
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryReleaseRunIsolated",
"reason": "完整编排(授权→预备份→四类写入→校验)跑真实一次性隔离 PG 与随机 ES 索引;默认 CI 无这些服务,本机 WeKnora 测试栈已实跑通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryProductionTargetIsolated",
"reason": "需要一次性隔离库 kg_library_test_* 与随机 ES 索引(KG_LIBRARY_TEST_DATABASE_URL / KG_LIBRARY_TEST_ELASTIC_URL / KG_LIBRARY_TEST_ISOLATED=1);默认 CI 不提供,本机 WeKnora 测试栈已真实跑通导入/撤销/预备份/故障恢复,CI 中跳过不等于验证"
},
{
"package": "knowledge-governance/internal/dobotaiops",
"test": "TestMirrorSourceManifestDetectsUpdatesWithoutVolatileTimes",
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestScheduledSendRequiresConfirmationAndSendsExactlyOnce",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestSundaySlotMailsItsOwnWeekBeforeMonday",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库 real PG 上跑通(旧实现真实复现 nothing_confirmed)"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestAutoSendAtSundaySlotMailsTheWeekThatEndsThatDay",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestAutoSendRefusesUnconfirmedChangedAndFutureWeeks",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestAutoSendOnMondayStillMailsThePreviousCompleteWeek",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestManualResendSendsFrozenRevisionOnceAndReadsBackMessageID",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestManualResendWindowRejectsFutureAndTooEarlyWeeks",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestConcurrentAutoAndManualSendDeliverOnce",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实验证并发只投递一次"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestUnknownSendingIsNotResentAndNotMarkedSent",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/qawemail",
"test": "TestFailedSendIsRecordedThenRetriedOnce",
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryChunkSequenceIsolated",
"reason": "需要隔离 kg_library_test_* 数据库、随机 ES 索引与真实 S3;本机已实跑跨库序列碰撞、目标分配和原始序列逐行恢复,CI 不提供这些服务"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryRollbackKeepsPreExistingTargetDataIsolated",
"reason": "需要一次性隔离库 kg_library_test_*、随机 ES 索引与真实对象存储(KG_LIBRARY_TEST_S3_*);验证目标非空/同租户其它知识库/共享资源/历史孤儿/跨租户数据在失败恢复后逐行字节不变,默认 CI 无这些服务,本机已实跑通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryRestoreRefusesWithoutWriteSetRecordIsolated",
"reason": "同上环境;验证缺少持久化写集合时恢复必须失败且不动目标,默认 CI 跳过不算验证"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryPreflightRejectsCrossScopeIDConflictIsolated",
"reason": "同上环境;验证跨范围同 ID 资源冲突在任何写入之前被拒绝,默认 CI 跳过不算验证"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryWikiStageHalfWriteRollbackIsolated",
"reason": "同上环境;验证 wiki 阶段半写(database/resources 已提交)后回滚不留残渣,默认 CI 跳过不算验证"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryWriteSetRecordTamperRefusesRestoreIsolated",
"reason": "同上环境;验证写集合记录被篡改/删除后取回与恢复都失败,默认 CI 跳过不算验证"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryKillWorkerThenResumeRecoversWriteSetIsolated",
"reason": "同上环境并用 SIGKILL 杀掉子进程模拟 worker 被杀,验证重启后只按持久写集合恢复且目标原有数据不变;需要本地真实 PG/ES/MinIO,默认 CI 跳过不算验证"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestWriteSetKillHelper",
"reason": "上面 SIGKILL 用例的子进程 fixture,单独运行没有意义;默认 CI 跳过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestLibraryRunAnchorsWriteSetAndKeepsLookingItUpBeyondHistoryWindow",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:要证明的正是 Store 的『版本列表 1..100 上限』与按身份精确查询的差别,假版本库不实现该上限(本轮缺陷就是这样一路绿的);默认 CI 无库 ⇒ 跳过,本机一次性 PG 已实跑:原码红(library version limit out of range)、只改 200→100 仍红(超出窗口找不到)、修后绿"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestTakeoverClassificationUsesExactCurrentVersionBeyondHistoryWindow",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:要证明的是『当前生效版本』不能按最近 N 条找——先灌 250 条历史把窗口挤满,再断言接管判定仍是 pending_final / superseded;假 store 不实现窗口语义,默认 CI 无库 ⇒ 跳过(补验路径:起一次性 PG 后设 TEST_DATABASE_URL 单跑这条)"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestTakeoverRefusesSameSnapshotRegisteredByAnotherJob",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:要证明的是『同一个快照由别的作业登记成生效版本』不能当成本作业的完成证据——版本行 id 由 (kind, scope, 快照) 决定且写入是 upsert(会改写 source_job_id),这个形状只有存储层能造;默认 CI 无库 ⇒ 跳过,本机一次性库已实跑(含负例:撤掉身份判定后判成 pending_final)"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestFailLibraryTakeoverKeepsMaintenanceAndNamesBackup",
"reason": "必须在真实 PostgreSQL 上跑:断言『拒绝接管』的三处落库效果(作业 failed + 留预备份基线 + 维护 released_at 仍为 NULL/state=needs_restore),假 store 只能证明调用了函数;默认 CI 无库 ⇒ 跳过,本机一次性库已实跑(负例:把恢复指引改成\"无需恢复\"即红)"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestPrebackupVersionKeepsFirstRegistrationTimeOnReuse",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:要证明的是 RecordLibraryVersion 的 upsert 语义——预备份版本行只记首次登记时刻(崩溃接管复用时不许把'什么时候拍的备份'洗成现在),而生效版本行仍按最近一次激活写当前时刻。假 store 造不出这个差别。默认 CI 无库 ⇒ 跳过;本机一次性库 kg_takeover_reuse_test 已实跑,两条负例(撤掉保留规则 / 规则漏到所有 kind)均红"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestTakeoverHistoricalRestoreOnRealLedger",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:要证明的是『被顶替的生效版本行属于别的作业』不等于本作业过期——正例要求新恢复授权+本作业独占维护窗口+未变预备份基线时判 fresh;负例逐项撤掉授权/实例占用/基线归属/清单字节都必须回到 superseded。这些形状(版本行 upsert 改写 source_job_id、实例锁行、授权有效期)假 store 造不全;默认 CI 无库 ⇒ 跳过,本机一次性库已实跑正负例"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestFailLibraryJobOrTakeoverKeepsRiskWhenResumed",
"reason": "必须在真实 PostgreSQL 上跑:断言续作早退(授权过期)时作业仍失败但 recovery 必须点名预备份、维护保持未释放且 state=needs_restore,不能出现『无需恢复』;假 store 无法证明三张表的落库效果;默认 CI 无库 ⇒ 跳过,本机一次性库已实跑"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestTakeoverKeepsWriteSetEvidenceAcrossRepeatedInterruptions",
"reason": "必须在真实 PostgreSQL(TEST_DATABASE_URL 指向可销毁测试库)上跑:丢证据的机制是 RecordLibraryVersion 的 evidence=EXCLUDED.evidence 整份覆盖,只有存储层能造出这个形状;用例走两轮中断+接管+最终恢复,断言 writeset_digest/backup_bytes/job/backup_snapshot 全部存活且 created_at 不变。默认 CI 无库 ⇒ 跳过;本机一次性库已实跑:修前红(第 1 次接管后写集合丢失)、修后绿,去掉合并逻辑再跑仍红"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestTakeoverLedgerRefusesForeignOrMissingBackupEvidence",
"reason": "必须在真实 PostgreSQL 上跑:复用未登记的预备份、字节数不一致、写集合被篡改/换作业/换预备份这些负例都依赖版本行身份与 upsert 语义(假 store 造不全);默认 CI 无库 ⇒ 跳过,本机一次性库已实跑(修前红:复用未登记预备份竟然成功)"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestHandoffChainGatesReleaseJobOnVerifiedTransfer",
"reason": "需要隔离的 fixture PostgreSQL(KG_TEST_DSN)与真实 libraryctl 二进制(KG_TEST_LIBRARYCTL);CI 不注入测试库。本机已用独立测试库容器实跑通过,未运行不等于通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestSnapshotCandidatesPaginateBeyondFiftyAndIncludeRecoveryBackups",
"reason": "需要隔离的 fixture PostgreSQL(KG_TEST_DSN)才能验证 >50 条分页与失败作业预备份的枚举;CI 不注入测试库。本机已用独立测试库容器实跑通过(go test ./cmd/worker -run 'TestHandoff|TestSnapshotCandidates' → ok),未运行不等于通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestHandoffReplayDoesNotOverwriteTerminalStateOrDuplicateReleaseJob",
"reason": "需要隔离的 fixture PostgreSQL 与真实 libraryctl 二进制,验证幂等重放不重复投递、迟到失败不改写终态;CI 不注入测试库。本机已实跑通过,未运行不等于通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestHandoffFromAPIBindingHandsOverToRelease",
"reason": "需要隔离 fixture PostgreSQL:从 API 真实前驱(handoff 队列作业已关联)验证交接、错误前驱拒绝、交接后重放。CI 无测试库;本机已实跑(go test ./cmd/worker -count=1 → ok)"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestLateHandoffFailureLeavesHandedOverJobUntouched",
"reason": "需要隔离 fixture PostgreSQL:用测试屏障确定性复现“失败出口时所有权已切给 release”,验证 running/succeeded 零修改。本机已实跑通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestSnapshotOriginOnlyFromCaptureEvents",
"reason": "需要隔离 fixture PostgreSQL:验证 test_sealed 与 production_effective 共存(正常成功链)仍按源绑定识别,以及真冲突/无捕获事件被拒。本机已实跑通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestUnownedHandoffCreatesNoStageRow",
"reason": "需要隔离 fixture PostgreSQL:验证未被持有的 handoff 不建阶段行、不改作业,且用真实 handoff ID 重放时幂等且零写入。CI 无测试库;本机已实跑(go test ./cmd/worker -count=1 → ok)"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestIndexRecoveryHelper",
"reason": "真实ES响应丢失恢复用例的独立子进程;仅由父fixture注入隔离数据库/索引/归档,单独运行跳过不代表恢复通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestContractOSSExactVersionsRealOptIn",
"reason": "真实OSS写入须显式获准的隔离前缀和持久证据目录;未配置不连接云端、不改桶设置;HTTP协议桩通过不能替代真实OSS验收"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestLibraryDuplicateSlugRejectedBeforeWriteIsolated",
"reason": "隔离PG/ES/MinIO夹具,重复slug必须写前拒绝且零对象写;默认CI不连接这些服务"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestContractIndexLostResponseRestartCompensatesIsolated",
"reason": "真实隔离PG/ES/MinIO与新子进程恢复;默认CI无存储服务,跳过不算通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestContractIndexUnknownEvidenceBoundariesIsolated",
"reason": "真实隔离PG/ES/MinIO;归属marker/内容/CAS及未记录finalize负例,默认CI无这些服务"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestContractIndexClaimDoesNotAlterMappingIsolated",
"reason": "真实隔离PG/ES/MinIO;验证mapping哈希不变和成功后无暂态marker,默认CI无这些服务"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestCandidateEmptyTargetFixture",
"reason": "需显式一次性本机PG/ES/MinIO与运行器注入的隔离库/归档根:为候选页面装配并封存独立 fullshape 测试来源、证空目标、登记 test_sealed;普通CI跳过不是通过"
},
{
"package": "knowledge-governance/internal/releaseadapter/v071",
"test": "TestCandidateAttestation",
"reason": "需运行器注入一次性 ed25519 种子与四份真实证据摘要:续签 object-gateway 审计(有效期上限1h);普通CI没有注入,跳过不是通过"
},
{
"package": "knowledge-governance/cmd/worker",
"test": "TestThreeBlockersVerifyChain",
"reason": "需外置 runner 创建的一次性隔离 PG/ES/MinIO 加真实入口/网关容器与 Automatic+DS01 授权:完整 verify 与同 job recover 纵向链;普通CI没有这些资源,跳过不是通过"
},
{
"package": "knowledge-governance/internal/httpapi",
"test": "TestStartupReconcileThenHandlerRepairsPendingCapture",
"reason": "需显式一次性隔离 kg_library_test_ PostgreSQL:真实启动收敛+HTTP 核对纵向路径,CI 无库显式跳过;父已在真实隔离库执行 PASS,CI 绿不代表本用例运行"
},
{
"package": "knowledge-governance/internal/httpapi",
"test": "TestStartupReconcilePreservesFailedCapturesForExactReconcile",
"reason": "需显式一次性隔离 kg_library_test_ PostgreSQL:真实 failed 误判保留、审计与精确核对纵向路径,CI 无库显式跳过;父已在真实隔离库执行 PASS,CI 绿不代表本用例运行"
}
]
}