|
24130
|
chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点
|
76
|
5
|
governance.yml
|
74
|
5
|
0
|
refs/heads/main
|
91b5257007ab9d588dcada5c5ca8d0c41a024bb9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","after":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/3deb4ea37b83c2e2977c9c2b8e8166c101002860...91b5257007ab9d588dcada5c5ca8d0c41a024bb9","commits":[{"id":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","message":"chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 d1eb586(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=d1eb586、worktreeDirty:false):\n静态 28 + 运行态 13。\n\n运行态实测与基线逐项持平,**tenantId 收敛在真实写链上行为中性**:\n testsPassed 733(基线 733)· behaviorParityCases 204(基线 204)· testFailures 0\n 87 项指标零违规\n静态整轮 28 步全执行、前 27 绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次跑了三轮 runtime,前两轮红,都不是 B2 的代码问题,如实记录:\n\n一、第一轮 outcomes.integration.test.ts「outcome not opened in time」(15 秒 E2E 超时)。\n 判为偶发,依据三条:该测试用 tenant-a-nestjs-outcome,在新 schema 下合法;整份日志里\n 新校验的拒绝消息 / ZodError / invalid_string **0 次命中**;同一份代码隔离重跑该文件\n 14/14 通过。第三轮整轮亦一次过。\n 顺带记一个行为:**失败的 runtime 会删掉 8 份运行态报告**(跑到一半中止、未重新生成)。\n\n二、第二轮测试全过(733 / 204-204 / 0 失败)但整轮记 failed,红在末尾的文档复核\n governance-kernel-boundary-number-consistency。根因是本会话的一次操作失误:\n `git restore reports/` 用了目录级范围,把已重新生成的 kernel-boundaries.latest.json\n 退回 HEAD 版(143/143),而 CLAUDE.md 已是 144/144。重跑静态后边界报告回到 144/144,\n 又撞上 governance-number-evidence-shape(要求一份 passed 的 runtime),于是必须再跑\n 第三轮才解环——这正是 CLAUDE.md 记载过的那个环。\n\n 同一次失误还抹掉了三份 reports/ui-*.latest.json 的未提交改动(不属本会话)。\n 已用 git fsck --lost-found 从游离 blob 全数找回并逐字核对:它们是 2026-09-15 的 UI 验收,\n 绑 c433d57 且 dirty=false。本提交仍未包含它们。\n 教训具体化:reports/ 下同时存在「本会话产出的」与「别人的」两类文件,任何范围操作都会\n 同时命中两类,**还原必须逐文件点名**。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/91b5257007ab9d588dcada5c5ca8d0c41a024bb9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"d1eb5860c4337cf457a03c76670d2551dc848cee","message":"feat(contracts): B2 迁入内核租户原语,收敛 tenantId 的三套口径为单源\n\n立项 B2 原写「净迁入六个」。开工时改了做法并写回立项:**净迁入的模块不该先暴露后接线**。\napi-error / replay-buffer / request-context / platform-ports / alert 只加到 barrel 而不接线,\n就是新增零消费者的 CORE 面——正是本仓 check:kernel-admission 的 K5 在盯、K4 判「声明无回执」\n的同型。改为**接线时才迁入**。六个里只有 tenant 是「迁入即能用」的,本批只做它。\n\n一、packages/contracts/src/tenant.ts 转发 @juhai/kernel 的 11 个租户解析原语。\n 这个名字是上一步 tenant.ts → authorization.ts 改名腾出来的;本仓此前**完全没有这一组**。\n\n二、用它收敛 tenantId 的三套口径(8 处 / 6 个文件):\n z.string().min(1) × 6(无上限、无字符约束) → tenantIdSchema\n .max(128) × 2(有长度无形状) → tenantIdSchema\n ^ten_.+$(事实投影,自成一套) → **叠加**在内核形状之上,不再另起\n\n 判据直接委托 normalizeTenantId,不在仓内重写正则——重写就又是一套口径。\n 用 normalizeTenantId(v) === v 而非 !== undefined:后者放行带首尾空白的值\n (normalize 先 trim 再判),于是「校验通过的值」与「真正该存的值」不是同一个。\n\n收紧实测咬住 11/11。B2 之前 z.string().min(1) 会放行全部这些:\"\"、\" t1 \"、\"t/1\"、\n**\"t\\n1\"**、\"_t\"、129 字符。含换行符那条是框架注释点名的伪造日志行向量(NestJS 侧有字符串\n拼接日志);129 字符那条对应 users 表 @@unique([tenantId, email]) 撞 Postgres btree 约\n2704 字节行上限打 500。也就是说本仓在此之前**没有任何 tenantId 形状与长度校验**。\n\n三处门禁如实红过再修,没有一处先改门禁:\n check:kernel-boundaries B3 新内核面未归类 → tenant.ts 归 CORE(contractModules 32)\n check:kernel-packages P7 公开面变更须伴随版本上调 → @repo/contracts 1.18.0 → 1.19.0\n check:kernel-admission K1 导出清单漂移 → 重签(40 模块 / 756 导出)\n连带同步接入手册下游锁行与 CLAUDE.md 边界数字 143/143 → 144/144。\n\n验证:contracts 312/312 · typecheck 13/13 · 整轮静态 28 步前 27 绿(末步仍是那 8 处已知红)。\n运行态另行重跑后回绑——本提交不含任何运行态报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d1eb5860c4337cf457a03c76670d2551dc848cee","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:04:17-07:00","added":["packages/contracts/src/tenant.ts"],"removed":[],"modified":["CLAUDE.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/employment-projection.ts","packages/contracts/src/identity.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/kernel.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/realtime.ts","packages/contracts/src/user.ts"]}],"total_commits":0,"head_commit":{"id":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","message":"chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 d1eb586(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=d1eb586、worktreeDirty:false):\n静态 28 + 运行态 13。\n\n运行态实测与基线逐项持平,**tenantId 收敛在真实写链上行为中性**:\n testsPassed 733(基线 733)· behaviorParityCases 204(基线 204)· testFailures 0\n 87 项指标零违规\n静态整轮 28 步全执行、前 27 绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次跑了三轮 runtime,前两轮红,都不是 B2 的代码问题,如实记录:\n\n一、第一轮 outcomes.integration.test.ts「outcome not opened in time」(15 秒 E2E 超时)。\n 判为偶发,依据三条:该测试用 tenant-a-nestjs-outcome,在新 schema 下合法;整份日志里\n 新校验的拒绝消息 / ZodError / invalid_string **0 次命中**;同一份代码隔离重跑该文件\n 14/14 通过。第三轮整轮亦一次过。\n 顺带记一个行为:**失败的 runtime 会删掉 8 份运行态报告**(跑到一半中止、未重新生成)。\n\n二、第二轮测试全过(733 / 204-204 / 0 失败)但整轮记 failed,红在末尾的文档复核\n governance-kernel-boundary-number-consistency。根因是本会话的一次操作失误:\n `git restore reports/` 用了目录级范围,把已重新生成的 kernel-boundaries.latest.json\n 退回 HEAD 版(143/143),而 CLAUDE.md 已是 144/144。重跑静态后边界报告回到 144/144,\n 又撞上 governance-number-evidence-shape(要求一份 passed 的 runtime),于是必须再跑\n 第三轮才解环——这正是 CLAUDE.md 记载过的那个环。\n\n 同一次失误还抹掉了三份 reports/ui-*.latest.json 的未提交改动(不属本会话)。\n 已用 git fsck --lost-found 从游离 blob 全数找回并逐字核对:它们是 2026-09-15 的 UI 验收,\n 绑 c433d57 且 dirty=false。本提交仍未包含它们。\n 教训具体化:reports/ 下同时存在「本会话产出的」与「别人的」两类文件,任何范围操作都会\n 同时命中两类,**还原必须逐文件点名**。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/91b5257007ab9d588dcada5c5ca8d0c41a024bb9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87356,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T17:38:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789741873
|
1789741882
|
0
|
1789741873
|
1789741896
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24132
|
chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚 chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点...
|
76
|
5
|
governance.yml
|
76
|
5
|
0
|
refs/heads/main
|
4da2c656ae691428be3f177563952cba66c37b88
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","after":"4da2c656ae691428be3f177563952cba66c37b88","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/91b5257007ab9d588dcada5c5ca8d0c41a024bb9...4da2c656ae691428be3f177563952cba66c37b88","commits":[{"id":"4da2c656ae691428be3f177563952cba66c37b88","message":"chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 801d916(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=801d916、worktreeDirty:false)。\n**pnpm check 退出码 0:28/28 个步骤通过**——自 check:kernel-admission 引入以来首次整链绿,\n也是本仓静态轴扩到 28 步后的首次。\n\n绿的成色写在实现提交里,此处只记边界:唯一没有机器回执的 CORE.crossProductRequired 走的是\nevidenceDeferred 五字段登记(期限 2026-12-18、触发条件=第二个产品真实装载),它在报告里是\nobserved 一行,**不是绿,是登记在案的缺证**。到期不补即转红。\n\n运行态未受本批影响(只动门禁、注册表、夹具与文档,未动 apps/packages 运行代码),\nruntime 报告仍绑在上一批的 d1eb586,13 份运行态证据未重跑也未失效。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4da2c656ae691428be3f177563952cba66c37b88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:42:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"801d916f36af0ee32c77b2138ec9afcf14b34db7","message":"feat(governance): K3/K4 裁决——八处准入声明逐条补上真回执,静态链首次 28/28\n\ncheck:kernel-admission 引入时诚实红 8 处(K3 一处 + K4 七处)。本批逐条裁决并清零,\n**没有一处是把判据改松**——三条是补实体,一条是承认无法证明。\n\n一、K3(跨产品证据只有命名空间导入)→ 补实体\n 下游夹具此前只有 10 个 import * as,按构造在契约模块全空时同样通过。改为携带 5 个\n **真实被产品消费**的符号(ProductManifestInput / Composition / RuntimeContractCatalog /\n DataContractImplementation / EventContractImplementation,实测自唯一装载的 juhai.hr)的\n 具名类型导入并用于类型位置——编译通过才第一次构成「下游能按名字用上这些契约」的证据。\n\n二、K4 的结构性问题:两条门禁要求互相冲突,拆字段解决\n check-kernel-boundaries 的 B2 明令 evidenceSources **不得指 reports/**(运行产物随时重跑、\n 可被删除——本会话实测过:失败的 runtime 会删掉 8 份报告),而 K4 要求必须有机器回执。\n 两条各自成立,是同一件事的两半。改为两个字段:\n evidenceSources 持久判据源(脚本 / 词典 / 锁)——B2 判它\n evidenceReceipts 该判据源产出的机器回执——K4 判它\n K4 同时加强:回执须真实存在、带机器结论(status 或 violations)、带 provenance.gitSha、\n 且自身不是红盘。另加两条配套判据:\n · 禁止把**本门禁自己产出的报告**当回执(结构性自指:它只要有发现就是红的)\n · 确实无法被证据支撑时走 evidenceDeferred 五字段登记,降级 observed、过期转红\n\n三、逐条落点\n industryIndependent → kernel-boundaries(逐文件扫 CORE 源码不得内嵌已登记 Product\n 命名空间,check-kernel-boundaries.mjs:181)+ naming(业务词典)\n dualBackendGoverned → dual-backend-parity\n stableContract → kernel-packages\n crossProductRequired → **无回执,登记为「证据待补」**:本仓只装载一个产品,跨产品消费面\n 实测仅 5 个符号 / 34 个模块为零,该证据客观上无从产生。期限\n 2026-12-18,触发条件=第二个产品真实装载;到期转红。\n 硬指一份回执等于把自证换个地方做,不做。\n\n四、订正一处我自己的误判\n 先前称「parity 对 employment 零断言」——**查错了地方**:断言在 governance.registry.json\n 的 employment.parityAssertions 里,由 check-dual-backend-parity.mjs:507 通用执行,本就有\n 10 条(消费者标识分区、new FactInbox、FACT_READ_NOT_CONFIGURED fail-closed、\n autoCommit:false、未配 broker 返回 null)。\n 据此我一度把新断言**硬编码**进脚本,被 check:fork-readiness 的 F2 当场抓住\n (「门禁不得硬编码已登记业务标识」)——F2 抓的是我的代码,抓得对。已撤回硬编码,\n 把两条新不变式(事件载荷与行映射必须走契约单源)按注册表形式补入,10 → 14 条。\n\nkernel.boundaries.json 新增 evidenceNotes:逐份回执记录**它到底判了什么**,含上述订正与\n「dual-backend-behavior 的 63 个矩阵用例不含 llm/employment,故两个 pack 不以它为据」这类边界。\n指针只说明有机器判过,不代表覆盖该词全部含义。\n\n自检 10 → 17 条(新增回执质量、自指、证据待补三组,含 1 条基线正例、2 条防过度判红)。\n整轮 pnpm check:**28/28 步骤全部通过**,退出码 0——自本门禁引入以来首次。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/801d916f36af0ee32c77b2138ec9afcf14b34db7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:41:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","governance.registry.json","kernel.boundaries.json","kernel.downstream.lock.json","scripts/check-dual-backend-parity.mjs","scripts/check-kernel-admission.mjs","tests/kernel-downstream-fixture/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"4da2c656ae691428be3f177563952cba66c37b88","message":"chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 801d916(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=801d916、worktreeDirty:false)。\n**pnpm check 退出码 0:28/28 个步骤通过**——自 check:kernel-admission 引入以来首次整链绿,\n也是本仓静态轴扩到 28 步后的首次。\n\n绿的成色写在实现提交里,此处只记边界:唯一没有机器回执的 CORE.crossProductRequired 走的是\nevidenceDeferred 五字段登记(期限 2026-12-18、触发条件=第二个产品真实装载),它在报告里是\nobserved 一行,**不是绿,是登记在案的缺证**。到期不补即转红。\n\n运行态未受本批影响(只动门禁、注册表、夹具与文档,未动 apps/packages 运行代码),\nruntime 报告仍绑在上一批的 d1eb586,13 份运行态证据未重跑也未失效。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4da2c656ae691428be3f177563952cba66c37b88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:42:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87761,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T22:31:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789742578
|
1789742587
|
0
|
1789742578
|
1789742601
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24141
|
chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点
|
76
|
5
|
governance.yml
|
78
|
5
|
0
|
refs/heads/main
|
74c732d8d4b88957365dd80770032bab706e84e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4da2c656ae691428be3f177563952cba66c37b88","after":"74c732d8d4b88957365dd80770032bab706e84e2","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/4da2c656ae691428be3f177563952cba66c37b88...74c732d8d4b88957365dd80770032bab706e84e2","commits":[{"id":"74c732d8d4b88957365dd80770032bab706e84e2","message":"chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 df72512(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=df72512、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 **28/28 步骤全部通过**(退出码 0),运行态 733 tests /\n行为矩阵 204/204 / 87 项指标零违规。\n\n本批改的是两后端的 WS 传输层与 replay 查询,两个预设风险点均未兑现:\n- 16 KiB 传输层上限**未挡住任何测试**——正常控制帧远在其下,上限值选得合适\n- outbox 查询由 findFirst 改为 aggregate(_min/_max) 后,在 RLS enforce 下行为与原先一致\n\nruntime 跑了两轮,**数字完全一致**(733 / 204-204 / 零违规),无非确定性;第一轮因改动\n尚未提交而 worktreeDirty:true,按仓规矩只绑定本地、不能作阶段门证据,故提交实现后重跑。\n这是顺序问题不是结果问题——记下来是为了下次先提交再跑,省一轮 20 分钟。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74c732d8d4b88957365dd80770032bab706e84e2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:15:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"df72512110999b668b00c5cbf94ce0691ec7f3af","message":"feat(realtime): B3′ 采纳上游两处加固——重放游标缺口判定与 WS 传输层单帧上限\n\n立项 §2 的「采纳上游加固 4」批次。逐个比对后实收两处真加固、一处口径收敛,另有两处\n开工时的判断被实测推翻,一并更正在代码注释里。\n\n一、replay 转发到 @juhai/kernel,补上 cursor-unknown\n\n本仓的 replay.ts 是框架 0.1.0 时代的拷贝,导出名与框架一致但实现落后一代,缺\n`maxSeq` 与策略「游标超前于现存最大 seq ⇒ 报缺口」。旧实现下,客户端报一个本租户\n从未产生过的游标(伪造 / 串号 / DB 被重置)会命中 pendingCount === 0 而返回 none——\n「已追平」与「真的没有新事件」在数值上无从区分,客户端**永远停在一个不存在的进度上、\n再也收不到补发**,与本仓「绝不静默缺口」的判据直接冲突。\n\n实证(打转发后的实现):\n since=999999, maxSeq=42 → {\"kind\":\"gap\",\"reason\":\"cursor-unknown\"}\n since=42, maxSeq=42 → {\"kind\":\"none\"} ← 真已追平,无误报\n\n框架同时修了契约文件内部的自相矛盾:pendingCount 旧注释写「且已投递」,与两后端刻意\n选定的账本语义相反(outbox 是「发生过什么」的账本,补发范围是全部留存行,重叠由客户端\n按信封 id 去重)——docs-truth 扫不到这类矛盾。\n\n两后端各改一处查询:findFirst(minSeq) → aggregate(_min/_max),一次拿两个边界,\n比原先还少一次往返。\n\n二、WS 传输层单帧上限(REALTIME_WS_MAX_PAYLOAD_BYTES = 16 KiB)\n\n框架注释记了一次真实事故,而**本仓此前正处在那个状态**:只有应用层的\nREALTIME_MAX_COMMAND_BYTES = 4096,没有接线传输层,而 ws 的默认 maxPayload 是 100MiB\n——任意客户端反复发 100MiB 帧即可制造内存压力,而「防撑爆」的守卫在内存被完整缓冲\n之后才生效。本批同时接线两后端并取同值(G17):\n Fastify app.register(websocket, { options: { maxPayload: … } })\n NestJS @WebSocketGateway({ path: \"/ws\", maxPayload: … })\n传输层 16384 比应用层 4096 留一档余量,使「超协议约束」与「超传输上限」成为两种可区分\n的失败:4096~16384 的帧仍拿到语义清晰的 connection.error(too-large),真正的巨帧在协议层\n即被 close 1009 掐断。**只加常量不接线正是该注释批评的形态**,故两者同批落地。\n\n三、两处开工判断被实测推翻,已更正在注释里\n\n1) 「订阅列表无上限」不成立:本仓原本就有 .max(50) / .max(200),只是写成字面量,\n 值与框架一致。本批只是把魔法数字收敛成具名单源,不是补安全缺口。\n2) subscription 不是单纯落后,而是**互有领先**:框架有那两个上限,本仓有\n `envelope.resourceRefs` 这条「新事件唯一扩展协议」(禁止为产品主键继续追加字段名猜测,\n 否则行业对象会反向污染内核),框架那份仍是「取第一个以 Id 结尾的键」的启发式。\n 整份转发会删掉本仓这个设计,故**不转发**——按迁移手册 §6 走分歧账本,只取上限、\n 保留本仓实现。这是三个模块里唯一的合并式采纳。\n\n@repo/contracts 1.19.0 → 1.20.0。注意 P7 **没有要求**这次升版:根与 kernel 两个 barrel 的\nexport 行都没变,而 apiDigest 只哈希入口 .d.ts。但公开面实际多了 3 个符号,按语义应升——\n真正记录这次面变化的是 K1 锁(replay.ts 的 4 个导出转移给内核包、另两处各 +1/+2,\n40 模块 / 755 导出)。\n\n验证:contracts 312/312 · typecheck 13/13 · 静态整轮 28/28 · runtime 733 / 行为矩阵 204/204 /\n零违规(16 KiB 上限未挡住任何测试,aggregate 在 RLS enforce 下行为与 findFirst 一致)。\nruntime 报告在本提交后重跑回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/df72512110999b668b00c5cbf94ce0691ec7f3af","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:03:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/replay.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/replay.service.ts","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime-command.ts","packages/contracts/src/replay.ts","packages/contracts/src/subscription.ts"]}],"total_commits":0,"head_commit":{"id":"74c732d8d4b88957365dd80770032bab706e84e2","message":"chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 df72512(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=df72512、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 **28/28 步骤全部通过**(退出码 0),运行态 733 tests /\n行为矩阵 204/204 / 87 项指标零违规。\n\n本批改的是两后端的 WS 传输层与 replay 查询,两个预设风险点均未兑现:\n- 16 KiB 传输层上限**未挡住任何测试**——正常控制帧远在其下,上限值选得合适\n- outbox 查询由 findFirst 改为 aggregate(_min/_max) 后,在 RLS enforce 下行为与原先一致\n\nruntime 跑了两轮,**数字完全一致**(733 / 204-204 / 零违规),无非确定性;第一轮因改动\n尚未提交而 worktreeDirty:true,按仓规矩只绑定本地、不能作阶段门证据,故提交实现后重跑。\n这是顺序问题不是结果问题——记下来是为了下次先提交再跑,省一轮 20 分钟。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74c732d8d4b88957365dd80770032bab706e84e2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:15:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88055,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T22:42:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789744521
|
1789744530
|
0
|
1789744520
|
1789744543
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24144
|
chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚 chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点...
|
76
|
5
|
governance.yml
|
80
|
5
|
0
|
refs/heads/main
|
60abd47e194c0b84e63968d27d493fd2fbdde658
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"74c732d8d4b88957365dd80770032bab706e84e2","after":"60abd47e194c0b84e63968d27d493fd2fbdde658","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/74c732d8d4b88957365dd80770032bab706e84e2...60abd47e194c0b84e63968d27d493fd2fbdde658","commits":[{"id":"60abd47e194c0b84e63968d27d493fd2fbdde658","message":"chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 9eba0fd(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=9eba0fd、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只新增两个纯转发的契约文件,未改任何运行代码,runtime 证据仍绑\ndf72512(733 / 204-204 / 零违规)且未失效。按三级分开陈述纪律,不用静态绿冒充运行态绿,\n也不为没动运行代码的改动重跑一轮 20 分钟。\n\nkernel-admission 报告里 request-context.ts 与 platform-ports.ts 会出现在 K5 的\n「零跨产品消费」观测行——这是**预期且已登记**的过渡态(立项 §5.1),不是新缺口:\n接线在 B2c-2,届时它们才真正被消费。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/60abd47e194c0b84e63968d27d493fd2fbdde658","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:32:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9eba0fd28474159053db82929391b72070d4c78f","message":"feat(contracts): B2c-1 迁入平台端口契约——自建 permission/audit 的可替换插座就位\n\n「内核退回 pin」里价值最高的一块的**契约层**。框架 0.7.0 的 platform-ports 给出四个端口\n(权限 / 审计 / 事实出口 / 服务凭据),各自对应一个企业控制面模块;端口只定形状与\nfail-closed 默认实现,权威实现由基础设施在装配点注入。\n\n packages/contracts/src/request-context.ts 14 导出(platform-ports 的决策入参形状)\n packages/contracts/src/platform-ports.ts 31 导出\n\n对本仓的意义:自建 identity / permission / audit 是错层资产(铁律三:平台拥有规则),\n但此前**没有可替换的接口**,替换等于大手术。插座就位后,将来控制面客户端发布且有 CI\n阶段门证据时只换实现、**接口不变**——迁移从「大手术」降为「接插座」。本仓分叉于框架\n0.1.0、从未见过这组端口,这正是当初各造一套的原因。\n\n**本批只做契约层,接线另起一片(B2c-2),理由与代价登记在立项 §5.1。**\nB2 开工时我立过「净迁入的模块不该先暴露后接线」,这里部分收回并说明区别:接线实测远大于\n立项估计——要在两后端各实现 PermissionDecisionPort、经 registry.replace() 注入、改写一条\n**正在生效的权限判定链**。安全敏感改动不该接在长批次尾巴上做。过渡期这两个模块是零消费面,\nK5 会把它们列进观测行;**这不是绿,是登记在案的欠账**,B2c-2 长期不做就应当退回去。\n\n已查清的接线设计(下一片直接用):**不能直接拿框架的 createLocalPlatformPorts 做权限端口**\n——它是「租户作用域 + 动作目录」式放行,比本仓的 resolveEffectivePermissions(角色矩阵 +\nsubject 级覆盖 + ALLOW/DENY 优先级)**弱**,套用等于削弱一条在跑的控制。正确做法是本仓实现\n自己的端口委托现有判定,用框架为此预留的 registry.replace() 注入。收口点已定位:\nNestJS PermissionsService.require()、Fastify hasEffectivePermission()。\n顺带好性质:PLATFORM_PORTS_MODE=local 将成为部署配置里一句可审计的显式声明\n——「本部署跑在自建权限上,不是平台权威」,错层资产第一次在编排层可见。\n\n过程中修了两个同类错误,都是**转发清单靠 grep 生成而 grep 漏了模式**:\n ① 漏 `export async function` → assertPermitted 未转发\n ② 把 class PlatformPortsRegistry 放进 type 组 → tsc 全过、运行时取不到\n第二个尤其阴险。现已加运行时可取性核对,10 个值导出全过;31 个导出与框架逐一比对无遗漏。\n\n@repo/contracts 1.20.0 → 1.21.0;三把锁重签(exports 42 模块 / 755 导出);边界受管面\n144 → 146;接入手册下游锁行同步。静态整轮 **28/28**(退出码 0)。\n运行态未受影响——本批只加契约文件,未改任何运行代码,runtime 仍绑 df72512。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9eba0fd28474159053db82929391b72070d4c78f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:31:20-07:00","added":["packages/contracts/src/platform-ports.ts","packages/contracts/src/request-context.ts"],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/kernel.ts"]}],"total_commits":0,"head_commit":{"id":"60abd47e194c0b84e63968d27d493fd2fbdde658","message":"chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 9eba0fd(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=9eba0fd、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只新增两个纯转发的契约文件,未改任何运行代码,runtime 证据仍绑\ndf72512(733 / 204-204 / 零违规)且未失效。按三级分开陈述纪律,不用静态绿冒充运行态绿,\n也不为没动运行代码的改动重跑一轮 20 分钟。\n\nkernel-admission 报告里 request-context.ts 与 platform-ports.ts 会出现在 K5 的\n「零跨产品消费」观测行——这是**预期且已登记**的过渡态(立项 §5.1),不是新缺口:\n接线在 B2c-2,届时它们才真正被消费。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/60abd47e194c0b84e63968d27d493fd2fbdde658","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:32:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88443,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T23:15:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789770777
|
1789770786
|
0
|
1789770776
|
1789770800
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24148
|
chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea, chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点...
|
76
|
5
|
governance.yml
|
82
|
5
|
0
|
refs/heads/main
|
f3d2cfe8c6567a9f343080ec659543e412c4e688
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"60abd47e194c0b84e63968d27d493fd2fbdde658","after":"f3d2cfe8c6567a9f343080ec659543e412c4e688","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/60abd47e194c0b84e63968d27d493fd2fbdde658...f3d2cfe8c6567a9f343080ec659543e412c4e688","commits":[{"id":"f3d2cfe8c6567a9f343080ec659543e412c4e688","message":"chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 74fbaea(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=74fbaea、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只动文档(ADR 0011 提案、立项书 B2c-2 挂起登记、ADR 索引),未改任何运行\n代码,runtime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f3d2cfe8c6567a9f343080ec659543e412c4e688","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:49:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"74fbaea684f5b580936edcdcdb1b56a0557fade8","message":"docs(决策): ADR 0011 提案——授权判定不得以 IdP 的 role claim 为权威\n\nB2c-2 平台端口接线开工即撞到阻塞,它暴露的不是接线问题,而是本仓授权模型的一个错层。\n按「单独立裁决项」处理,B2c-2 挂起。\n\n阻塞:框架 PermissionDecisionPort.decide() 的入参是 { context: RequestContext, action,\nresourceType, resourceId },RequestContext 只有 tenantId / actorId——**不带角色声明**。\n而本仓生效角色判定是 bootstrapAdmin ? \"admin\" : (DB 角色 ?? claim 角色),注释写明\n「DB 覆盖 claim」:**无 DB 记录时已验签 token 的 claim 角色就是权威**。原样接线会让\n「无记录」那类 subject 的授权来源消失。平台端口假设权威方能从(租户, 主体, 动作)自行解出\n一切——这对拥有角色存储的平台成立,对本仓的混合模式不成立。\n\n所以差距不只是「谁来实现」,还包括「决策输入是什么」。\n\n提案内容:生效角色只来自本系统可控的来源(roleAssignment 记录 + AUTH_BOOTSTRAP_ADMIN\n引导身份);已验签 token 的 role claim 降级为信息,不参与授权判定。\n\n三条理由,第一条不是架构整洁而是安全面:\n1. **签发方等于授权方。** 当前只要 IdP 在 token 里写 role: admin,本仓即授予 admin,\n **OS 侧没有任何记录**。IdP 被攻陷或被误配就直接等于本仓提权,且事后审计在 OS 侧查不到\n 授予动作——因为从来没有授予动作。「DB 覆盖 claim」只在有记录时防住,恰恰在最常见的\n 「没记录」路径上不防。\n2. 铁律三「平台拥有规则」:角色归属属于规则,权威应在控制面 permission 模块。\n3. 这是 drop-in 的前提:决策还依赖 claim,将来换控制面客户端时仍是行为变更,只是推迟。\n\n影响面按 DB 记录有无精确切分(ADR §影响 有完整表):有记录者不变;验签且 claim 为\nmember/缺失者不变;**验签、无记录、claim 为 approver/admin 者降为 member**(失败方向是\n更拒绝,不是 fail-open,但对这些人是功能性中断);**demo 姿态自报 admin 会降为 member**,\n而它是 UI 验收与本地开发的前提(check:ui 打 mock-oidc-idp.mjs),须一并处理。\n\nADR 明确写下裁决前置:**必须先取得目标环境中「无 DB 记录且 claim 为 approver/admin」的\nsubject 实测计数**。该计数不取得,本 ADR 不应被批准——影响面未知的授权语义变更不可裁。\n\n同批:立项书 B2c-2 行改为「挂起,待 ADR 0011」并写明阻塞原因;docs/adr/README 加索引。\nB2c-1 迁入的 platform-ports / request-context 维持零消费面的过渡态(立项 §5.1 已登记)。\nB2c-2 开工时写的 NestJS 装配模块未提交(设计已完整记在 ADR 与立项里,届时重写即可)。\n\n静态整轮 28/28。本批只动文档,未改运行代码。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74fbaea684f5b580936edcdcdb1b56a0557fade8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:47:35-07:00","added":["docs/adr/0011-authorization-must-not-trust-idp-role-claim.md"],"removed":[],"modified":["CLAUDE.md","docs/adr/README.md","docs/planning/内核退回pin立项-2026-09-18.md"]}],"total_commits":0,"head_commit":{"id":"f3d2cfe8c6567a9f343080ec659543e412c4e688","message":"chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 74fbaea(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=74fbaea、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只动文档(ADR 0011 提案、立项书 B2c-2 挂起登记、ADR 索引),未改任何运行\n代码,runtime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f3d2cfe8c6567a9f343080ec659543e412c4e688","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:49:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88725,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:32:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789771765
|
1789771773
|
0
|
1789771754
|
1789771805
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24150
|
chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚 chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点...
|
76
|
5
|
governance.yml
|
84
|
5
|
0
|
refs/heads/main
|
85a263fb1667d12318daa5601f7e6e23284c5dfd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f3d2cfe8c6567a9f343080ec659543e412c4e688","after":"85a263fb1667d12318daa5601f7e6e23284c5dfd","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/f3d2cfe8c6567a9f343080ec659543e412c4e688...85a263fb1667d12318daa5601f7e6e23284c5dfd","commits":[{"id":"85a263fb1667d12318daa5601f7e6e23284c5dfd","message":"chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 402f502(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=402f502、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\nfork-readiness 报告的 frameworkCriteriaRegisteredMissing 由 3 降为 2(F14 转 implemented),\ndeclared 仍 14、交叉核对 verified。\n\n未跑运行态:本批只改 compose 顶层 name / 宿主端口参数化与门禁脚本,未动任何应用运行代码,\nruntime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。compose 的实际效果要到下次\ndocker compose up 才体现——改名时两个 project 下均无容器与卷,不存在需要迁移的运行态。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/85a263fb1667d12318daa5601f7e6e23284c5dfd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:55:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"402f502bec6d503e2e6c8b1319b0862eb2b9ed03","message":"feat(governance): 落地框架 F14——compose 身份派生自包名,本仓退出 L9 的 project 共用\n\n框架判据 F14 由 missing 转 implemented。这是三条 missing 里唯一不阻塞于「内核退回 pin」\n立项本身的,故先做。\n\n**问题(工作区 L9 的本仓实证):** compose 在没有顶层 name / -p / COMPOSE_PROJECT_NAME 时\n按**文件所在目录名**推导 project。开发基座在每个派生仓里都住在 apps/api-nestjs/,于是所有仓\n推导出同一个 project `api-nestjs`,共用具名卷与容器名——后 up 者接管先起者。一致性门禁实测\n本机 8 个仓共用该 project,本仓是其中之一。这与 F3(测试库名前缀)、F12(RLS 组角色名)同族:\n**集群级资源的身份必须派生自 package.json name**。\n\n两处实体修复:\n apps/api-nestjs/docker-compose.yml 补 name: ${COMPOSE_PROJECT_NAME:-digital-employee-os}\n redis 宿主端口 \"6379:6379\" → \"${REDIS_PORT:-6379}:6379\"\n (postgres 那条原本就已参数化)\n deploy/production/compose.yml 默认值 deos-production → digital-employee-os-production\n (原值既非包名派生身份、也非其 digital-employee-os-* 子命名)\n\n**改名零中断**:动手前实测两个 project 下均无容器与卷(docker ps -a / volume ls 按\ncom.docker.compose.project 标签查,皆空)。我先前提过「要挑运维窗口」——实测之后这个顾虑\n不成立,如实更正。\n\n门禁实现与框架有一处口径差异,已登记在门禁注释与 framework-criteria.json:\n**本仓限定扫 git 跟踪的 compose**,框架按目录黑名单遍历全仓。理由是本仓有 gitignored 的\ntmp/ops-config/compose.local.yml(本机运维配置,随时重建),扫未跟踪的本地状态会让门禁在\n别人 clone 后得出不同结论——**不可复现的判据比没有判据更糟**。\n\n三条负向探针实活验证,非只读代码推断:去掉顶层 name、端口写死、身份写成别的仓(api-nestjs),\n各自如期转红,还原后复验绿。\n\n效果:工作区一致性门禁 L9 的共用仓数 **8 → 7,本仓出列**(其余 7 仓是各自 Owner 的事)。\n框架判据覆盖:implemented 10(+F14)、missing 2(F8 / F11,均阻塞于内核退回 pin 立项)、\nimplemented-elsewhere 1、not-applicable 1。\n\n静态整轮 28/28。本批未改运行代码,runtime 仍绑 df72512。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/402f502bec6d503e2e6c8b1319b0862eb2b9ed03","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:53:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/docker-compose.yml","deploy/production/compose.yml","framework-criteria.json","scripts/check-fork-readiness.mjs"]}],"total_commits":0,"head_commit":{"id":"85a263fb1667d12318daa5601f7e6e23284c5dfd","message":"chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 402f502(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=402f502、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\nfork-readiness 报告的 frameworkCriteriaRegisteredMissing 由 3 降为 2(F14 转 implemented),\ndeclared 仍 14、交叉核对 verified。\n\n未跑运行态:本批只改 compose 顶层 name / 宿主端口参数化与门禁脚本,未动任何应用运行代码,\nruntime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。compose 的实际效果要到下次\ndocker compose up 才体现——改名时两个 project 下均无容器与卷,不存在需要迁移的运行态。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/85a263fb1667d12318daa5601f7e6e23284c5dfd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:55:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88985,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:49:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789772147
|
1789772238
|
0
|
1789772145
|
1789772364
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24164
|
fix(ticket): 通知投递补认领凭据与显式重试上限
|
82
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
601955837eb8caa25a91a2c2da96d9a06f8ea455
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","after":"601955837eb8caa25a91a2c2da96d9a06f8ea455","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/7c4b197f018b02f5ed675758af3f5be5dbd1de02...601955837eb8caa25a91a2c2da96d9a06f8ea455","commits":[{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1867,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-09-15T15:55:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772883
|
1789772913
|
0
|
1789772841
|
1789772914
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24165
|
fix(service): 通知投递未知异常不再默认重试,并显式传重试上限
|
81
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2085f1a31a52687344dd74911761be941a185b3c","after":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/2085f1a31a52687344dd74911761be941a185b3c...cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","commits":[{"id":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","message":"fix(service): 通知投递未知异常不再默认重试,并显式传重试上限\n\n两处与同名包在其余消费仓的语义漂移:\n\n- packages/notification-delivery:decideNotificationFailure 对非 NotificationDeliveryError 的\n 异常默认 retryable=true。模板体检失败(assertRegisteredNotificationTemplate 在 try 内)这类\n 确定性错误因此会白烧三次重试预算才进死信。改为只有投递层明确标了可重试才重试。\n- 同批补 NotificationTemplateError 的消息分支:缺它时 lastError 会把模板错误写成\n 「NOTIFICATION_PROVIDER_UNAVAILABLE」,运维照着这条记录去查供应商,查不到任何东西。\n- 两后端 decideNotificationFailure 显式传 maxAttempts: MAX_ATTEMPTS。此前领取查询用本地常数 3、\n 死信判定用包默认 3,靠巧合对齐,改任一边即静默不一致。\n\n验证:typecheck 绿;包单测 5/5(新增未知异常与模板错误两条断言);dual-backend /\nconcurrency-guard / migrations / governance-docs / docs-truth / mobile / provenance 逐道绿。\ncheck:os-product 红,与本次无关:它按 ../Digital Employee OS 找 OS 仓(该路径已不存在),指到真实\n路径后卡在锁定的 OS 基线 SHA,本次改动前即如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:35-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","message":"fix(service): 通知投递未知异常不再默认重试,并显式传重试上限\n\n两处与同名包在其余消费仓的语义漂移:\n\n- packages/notification-delivery:decideNotificationFailure 对非 NotificationDeliveryError 的\n 异常默认 retryable=true。模板体检失败(assertRegisteredNotificationTemplate 在 try 内)这类\n 确定性错误因此会白烧三次重试预算才进死信。改为只有投递层明确标了可重试才重试。\n- 同批补 NotificationTemplateError 的消息分支:缺它时 lastError 会把模板错误写成\n 「NOTIFICATION_PROVIDER_UNAVAILABLE」,运维照着这条记录去查供应商,查不到任何东西。\n- 两后端 decideNotificationFailure 显式传 maxAttempts: MAX_ATTEMPTS。此前领取查询用本地常数 3、\n 死信判定用包默认 3,靠巧合对齐,改任一边即静默不一致。\n\n验证:typecheck 绿;包单测 5/5(新增未知异常与模板错误两条断言);dual-backend /\nconcurrency-guard / migrations / governance-docs / docs-truth / mobile / provenance 逐道绿。\ncheck:os-product 红,与本次无关:它按 ../Digital Employee OS 找 OS 仓(该路径已不存在),指到真实\n路径后卡在锁定的 OS 基线 SHA,本次改动前即如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:35-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3362,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-09-15T10:54:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772913
|
1789772921
|
0
|
1789772844
|
1789772921
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24166
|
fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数
|
72
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
6908c19f9faf3b006d73054657b97c6cb8f945d9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","after":"6908c19f9faf3b006d73054657b97c6cb8f945d9","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf...6908c19f9faf3b006d73054657b97c6cb8f945d9","commits":[{"id":"6908c19f9faf3b006d73054657b97c6cb8f945d9","message":"fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数\n\n服务里的 MAX_ATTEMPTS = 3 只进领取查询与死信清扫,decideNotificationFailure 没传 maxAttempts、\n走的是 @repo/notification-delivery 的包默认 3。今天两个 3 相等所以看不出来,改任一边即静默不一致:\n领取按新上限继续捡,死信判定仍按旧上限提前把行判死。同仓 event-delivery.service.ts 一直是显式传的。\n\n两后端各一行,语义不变。验证:typecheck 绿;pnpm check 22 道全绿;包单测 4/4 未受影响。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/6908c19f9faf3b006d73054657b97c6cb8f945d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:42-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/src/events/notification-delivery.service.ts"]}],"total_commits":0,"head_commit":{"id":"6908c19f9faf3b006d73054657b97c6cb8f945d9","message":"fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数\n\n服务里的 MAX_ATTEMPTS = 3 只进领取查询与死信清扫,decideNotificationFailure 没传 maxAttempts、\n走的是 @repo/notification-delivery 的包默认 3。今天两个 3 相等所以看不出来,改任一边即静默不一致:\n领取按新上限继续捡,死信判定仍按旧上限提前把行判死。同仓 event-delivery.service.ts 一直是显式传的。\n\n两后端各一行,语义不变。验证:typecheck 绿;pnpm check 22 道全绿;包单测 4/4 未受影响。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/6908c19f9faf3b006d73054657b97c6cb8f945d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:42-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/src/events/notification-delivery.service.ts"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":35851,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":11,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-09-15T10:54:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772921
|
1789773989
|
0
|
1789772844
|
1789773991
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24176
|
chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新 chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点...
|
76
|
5
|
governance.yml
|
86
|
5
|
0
|
refs/heads/main
|
001e16da960e9c44fcb2f943d149bb374c710e33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"85a263fb1667d12318daa5601f7e6e23284c5dfd","after":"001e16da960e9c44fcb2f943d149bb374c710e33","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/85a263fb1667d12318daa5601f7e6e23284c5dfd...001e16da960e9c44fcb2f943d149bb374c710e33","commits":[{"id":"001e16da960e9c44fcb2f943d149bb374c710e33","message":"chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fc147d3(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=fc147d3、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 28/28(退出码 0);运行态 735 tests / 行为矩阵 204/204 /\n87 项指标零违规。\n\nhealth 换成内核 buildHealthResponse 后**行为中性**:四处调用点、两个 dispatcher 的\n200/503 映射、NestJS 的 ServiceUnavailableException、依赖弹性用例(14 故障 + 14 恢复 +\n半开 4 + 延迟 4)全过。开工时列的三个风险点(响应形状、503 映射、超时语义)一个都未兑现。\n\n用例数 733 → 735(health 3 例改写为 5 例,覆盖面上升);地板 683 未动——地板只在全绿后用\n--update-baseline 收紧,不随一次上浮改。\n\n本批跑了两轮 runtime,第一轮红在末尾的 docs-truth 复核(动态数字仍写 733)。\n**这是结构性自指,不是缺陷**:任何改变用例数的批次,第一轮 runtime 必然在自己最后一步的\n数字校验上失败——数字只有跑完才知道,而跑的最后一步要校验数字。已把「改动影响用例数时\n预期两轮 runtime」记进 fc147d3 的提交信息,与「先提交再跑」是同一类流程教训\n(后者本批已用上,第一轮即 clean 绑定)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/001e16da960e9c44fcb2f943d149bb374c710e33","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:31:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"fc147d377061ea86c37cdd24e1afb0c441a6e2fe","message":"docs(治理): 动态数字随 health 用例增补对齐——733 → 735 tests\n\nhealth 由 3 例改写为 5 例后 runtime 用例数 733 → 735,CLAUDE.md 动态区两处随之更新:\n证据新鲜度行的「(733 tests / 0 failures)」与动态表的 tests-passing 行。地板 683 不动\n(地板只在全绿后用 --update-baseline 收紧,不随一次上浮改)。\n\n**这一轮红是结构性自指,不是缺陷:** 任何改变用例数的批次,第一轮 runtime 必然在自己\n最后一步的 docs-truth 复核上失败——数字只有跑完才知道,而跑的最后一步要校验数字。\n本轮测试本身全过(735 tests / 0 failures、行为矩阵 204/204、87 项指标零违规),\n红的只有 governance-number-evidence-consistency 的两处漂移字段。修正后重跑即闭合。\n\n顺带记一条可复用的顺序:**改动会影响用例数时,预期两轮 runtime**——第一轮取真实数字,\n更新文档后第二轮取 clean 绑定的 passed 证据。与「先提交再跑」是同一类流程教训。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fc147d377061ea86c37cdd24e1afb0c441a6e2fe","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:19:20-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"bfc3ef5a82a201c649688dd76b3ed22704560888","message":"feat(health): B3 余采纳内核可扩展健康检查;同批订正 B4 的分类误判\n\n两件事,都是「实测推翻先前判断」的后续。\n\n一、B4 调查结论写回立项(不改代码)\n\n先前把 `rls` 归为「同名不相干、二选一」——0% 导出重合被读成互斥,实际是**解决不同问题**:\n框架 tenant-rls 管**姿态与探测**(resolveTenantRlsMode 生产拒绝 off、assertRlsCapableRole\n启动拒绝 superuser/BYPASSRLS、tenantRlsRoleNames 派生角色名),本仓 rls 管**清单与纪律**\n(67 张表/模型登记、角色名常量、SET LOCAL ROLE 的租户 id 校验)。两者互补。\n\n调查顺带查出一个真缺口并登记进 §6:**应用不在启动时探测连接角色**。现有保护全在门禁时——\ncheck:db-credential-separation 供给角色、查 pg_roles、断言不特权(8 负例含 runtime-superuser\n探针),验的是「供给对不对」而非「应用会不会拒绝启动」。若部署时 DB URL 指向超级用户,应用\n照常启动,所有不走 tenantTx 的查询都没有 RLS。补它的前提是先采纳双 URL 模型——\nDATABASE_RUNTIME_URL 在本仓只被 scripts/with-platform-dev.mjs 用到,**两个应用根本不读它**。\n故 B4 重定义为「采纳双 URL RLS 模型 + 启动探测」,属部署面变更,独立批次。\n**没有顺手先迁 tenant-rls 契约**——那会再造一块零消费面,同一个错误不在一次会话里犯第二遍。\n\n二、health 采纳内核可扩展形态(框架 0.19.0,受理基础设施仓 FR-1)\n\n本仓原实现是固定两键 checks + evaluateHealthDependencies,属 0.19.0 之前的形态。框架把\nchecks 改为 { database; redis } \u0026 Record\u003cstring, HealthCheckState\u003e——**纯增键,既有消费者逐字\n不受影响**——并给出附加子检查登记点与名字 fail-closed(占用核心名 / 重复登记在登记这一刻抛错)。\n\n为什么现在采纳:本仓已知有拿不出来的健康维度(缺失梳理 §3 记着「消费组滞后无指标」)。\n固定两键下这类维度无处安放;换成可扩展形状后,Kafka 消费者滞后、平台端口状态才有登记位。\n\n替换而非合并:框架 buildHealthResponse + probeHealthCheck 覆盖本仓 evaluateHealthDependencies\n的全部语义,并把 service / uptime / timestamp 一并产出——四处适配器此前各自手拼这三个字段,\n正是 G17 行为漂移的老来源(两侧曾一个回浮点进程 uptime、一个回整数应用 uptime)。\n输出逐字兼容:无 extras 时 every(up) 等价于原先 database \u0026\u0026 redis,timestamp 同为 toISOString()。\n\n四处调用点全改:两个 dispatcher + Fastify 路由 + NestJS 控制器。\n\n**测试覆盖上升而非下降**:health.test.ts 由 3 例改写为 5 例——原三条语义(ok / 逐项判责 /\n超时 fail-closed)逐条在新 API 上重验,另加两条覆盖新能力(附加子检查参与 degraded 判定、\n名字 fail-closed)。contracts 312 → 314,own-test-cases 736 → 738。\n\n三处门禁断言随符号改名同步(C45 双后端 health、C58 两个 dispatcher、O11 运维平面)。\n**断言意图未变**,改的只是符号名。三条都做了实活验证:把符号换成不含原串的名字后 C45/C58/O11\n如期转红,还原复验绿。(第一次探针用 buildHealthResponseX,正则仍匹配前缀而未触发——\n探针本身的设计错误,已重做。)\n\n@repo/contracts 1.21.0 → 1.22.0;三把锁重签(exports 42 模块 / 751 导出);接入手册锁行同步;\nCLAUDE.md 动态表 own-test-cases 随报告更新。静态整轮 28/28。\n运行态在本提交后重跑回绑——health 端点实现已换,必须验。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/bfc3ef5a82a201c649688dd76b3ed22704560888","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:08:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/routes/health.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/health/health.controller.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/health.test.ts","packages/contracts/src/health.ts","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"001e16da960e9c44fcb2f943d149bb374c710e33","message":"chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fc147d3(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=fc147d3、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 28/28(退出码 0);运行态 735 tests / 行为矩阵 204/204 /\n87 项指标零违规。\n\nhealth 换成内核 buildHealthResponse 后**行为中性**:四处调用点、两个 dispatcher 的\n200/503 映射、NestJS 的 ServiceUnavailableException、依赖弹性用例(14 故障 + 14 恢复 +\n半开 4 + 延迟 4)全过。开工时列的三个风险点(响应形状、503 映射、超时语义)一个都未兑现。\n\n用例数 733 → 735(health 3 例改写为 5 例,覆盖面上升);地板 683 未动——地板只在全绿后用\n--update-baseline 收紧,不随一次上浮改。\n\n本批跑了两轮 runtime,第一轮红在末尾的 docs-truth 复核(动态数字仍写 733)。\n**这是结构性自指,不是缺陷**:任何改变用例数的批次,第一轮 runtime 必然在自己最后一步的\n数字校验上失败——数字只有跑完才知道,而跑的最后一步要校验数字。已把「改动影响用例数时\n预期两轮 runtime」记进 fc147d3 的提交信息,与「先提交再跑」是同一类流程教训\n(后者本批已用上,第一轮即 clean 绑定)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/001e16da960e9c44fcb2f943d149bb374c710e33","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:31:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":89257,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:55:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789774294
|
1789774384
|
0
|
1789774292
|
1789774420
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24178
|
chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f3807 chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点...
|
76
|
5
|
governance.yml
|
88
|
5
|
0
|
refs/heads/main
|
2ef8d2fea20dcc03a7397ed3fc71312b675a70d9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"001e16da960e9c44fcb2f943d149bb374c710e33","after":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/001e16da960e9c44fcb2f943d149bb374c710e33...2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","commits":[{"id":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","message":"chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 5f38077(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=5f38077、worktreeDirty:false)。\n静态整轮 28/28(退出码 0)。\n\n未跑运行态:本批只动立项文档,未改任何运行代码,runtime 证据仍绑 fc147d3\n(735 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:35:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"5f38077645e9e39fc5b2b1a44387d3aeb72b1b5f","message":"docs(planning): 登记 realtime 双向分歧与 RequestContext 贯通这个共同前置\n\n接 realtime 时发现它不该现在做,原因值得单独记:\n\n**realtime 是双向分歧,不是本仓落后。** makeEnvelope 两边各自演进过——\n 本仓:resourceRefs 支持(resourceRefsFromData + 去重),与 subscription 同一条扩展协议\n 框架:options.context → envelope.context { requestId, traceId }(0.6.0 上下文贯通)\n另有 realtimeChannelForDatabase(按 Redis 逻辑库分区频道,13 个消费者,正是此前 runtime\n长期假红的根因所在)是本仓独有。整份转发会丢掉本仓那半,故按迁移手册 §6 走分歧账本。\n\n**更要紧的是它暴露了一个共同前置。** 框架那一半依赖 RequestContext 从 HTTP 层贯通,\n而这正是 B2c-1 明确推迟的 ALS 工作。两个挂起批次因此指向同一件没做的事:\n\n B2c-2 平台端口接线 —— decide() 入参是 RequestContext。服务层拿不到 HTTP 头,\n 只能合成 requestId:对权限判定无妨(端口只用 tenantId + actorId + action),\n 但**审计关联失效**。这就是 B2c-2 只接权限端口、不接审计端口的原因。\n B3″ realtime —— envelope.context 取自 propagatedContextOf(RequestContext)。\n 没有真实上下文,这个字段要么缺席、要么填合成值——**后者比缺席更糟**,\n 它让「信封可追溯」成为假象。\n\n本仓**已有 AsyncLocalStorage**(两后端各一份 rls-context.ts 用于 RLS 租户绑定),\n不是从零起;缺的是把 buildRequestContext 的产物在请求入口塞进 ALS 并让下游取用。\n框架 0.4.0 / 0.6.0 的两后端接线可直接对照。\n\n登记它而不是顺手做:贯通请求上下文会改变两后端的请求入口与队列载荷(0.6.0 的\noutboxContext 把 context 带进 outbox 行),属跨切面改动,应当独立批次并配完整 runtime\n验证,不该作为别的批次的副产品。\n\n本批只动文档,静态 28/28,未改运行代码。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f38077645e9e39fc5b2b1a44387d3aeb72b1b5f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:33:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md"]}],"total_commits":0,"head_commit":{"id":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","message":"chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 5f38077(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=5f38077、worktreeDirty:false)。\n静态整轮 28/28(退出码 0)。\n\n未跑运行态:本批只动立项文档,未改任何运行代码,runtime 证据仍绑 fc147d3\n(735 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:35:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":89809,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T07:31:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789774506
|
1789774515
|
0
|
1789774505
|
1789774529
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24202
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
90
|
5
|
0
|
refs/heads/main
|
34aab5dea31113ee2688fd236eea3f382402027e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","after":"34aab5dea31113ee2688fd236eea3f382402027e","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9...34aab5dea31113ee2688fd236eea3f382402027e","commits":[{"id":"34aab5dea31113ee2688fd236eea3f382402027e","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新\n\n三级证据本批首次同时绑定 clean HEAD `47e6fe3`(worktreeDirty:false):\n\n· runtime 30/30 步、**747 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 七包测试、迁移 deploy/status、auth-startup、db-credential-separation、tracing、\n dependency-resilience、capacity、write-capacity、multi-instance 全通过。\n 747 = 735 + 本批 12 例,与 b71b745 前置写下的预测值一致——预测被实测证实,\n 不是反过来改文档迁就。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(收尾清单硬条目)。\n\nauth-startup 现有**三类拒启各 2/2**:无验签器、显式 demo、**生产缺 APP_ID**。第三类是本日\n新增,`missingAppIdRejected: 2` 是两个后端都真的起不来的机器回执——它抓到的正是本批自己\n第一版的惰性解析缺陷,不是事后补的装饰。\n\n跑了三轮 runtime,如实记账:\n ① 红在 auth-startup —— 真缺陷(惰性 APP_ID),已修(47e6fe3 的父提交);\n ② 实质全绿但红在收尾 docs-truth 的快照锚点滞后 —— 锚点停在 3949dcc 而 HEAD 已走两步,\n 打穿 C232 的 +1 自指窗。修复提交已把锚点折进去指向其父提交;\n ③ 30/30 全绿,即本提交回绑的这一份。\n第 ② 轮暴露的是我自己的流程错:改变用例数的批次天然要两轮,但锚点该在每个提交里跟着走,\n不该等到最后一个提交才想起来——C241 写的就是这条,这次仍然踩了。\n\n本提交按 C241 把锚点指向父提交 47e6fe3;证据新鲜度里 runtime 与 auth-startup 两行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/34aab5dea31113ee2688fd236eea3f382402027e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:38:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"47e6fe38803a863e867b9f8a6141540da75736ee","message":"fix(kernel-repin): APP_ID 改为装配期强制解析——惰性解析让生产「起得来但每个请求 500」\n\n本批 runtime 第一轮就红在 auth-startup,抓到的是我自己引入的缺陷,不是环境问题:\n\n首版 appId() 是**惰性**的(第一次请求才解析)。于是生产缺 APP_ID 时进程**正常启动**,\n随后 /api/health 与每个业务请求各 500 一次——栈顶就是 request-context 插件。内核对\nresolveAppId 写明的语义是「生产缺失即抛错,起不来好过匿名运行」,惰性版把它退化成\n「运行但全错」,而且把一个配置错误伪装成运行时故障。假绿五形态里的「假健康读模型」\n换了个方向:健康检查自己 500,但进程活着、编排层看不出是配置问题。\n\n改法:\n· appId() 解析失败时包一层稳定归因码 `[APP_ID_REQUIRED]`(与 C51 的 AUTH_VERIFIER_REQUIRED、\n C153 的 secret 读取同款——门禁判定归因码,不去匹配内核的中文消息);\n· 新增 assertRequestContextStartup(),在**四个入口**启动期强制解析:\n NestJS create-app.ts / Fastify app.ts(紧挨 assertTenantAuthStartup)\n + 两个 dispatcher 的 main()(contextFromJob 同样以 APP_ID 标识来源应用);\n· check:auth-startup 增加**第三类拒启负例**:生产 + required + 有 verifier、但显式拿掉\n APP_ID → 必须起不来。指标 missingAppIdRejected 入棘轮(floor 2);\n· 八个启动生产入口的 runner 显式提供 APP_ID——它们本来就该像真实编排那样配齐环境,\n 这不是放宽判据:判据是「缺了要拒启」,由上面那条负例证明,不是靠别的 runner 顺带不配。\n\n绊网加厚:check:dual-backend 的 RequestContext 断言由 7 条扩到 14 条,覆盖四个入口的启动闸、\n两份持有模块的归因码,以及那条负例本身——防惰性解析回潮(它在 typecheck 和行为矩阵下都是绿的)。\n\n第一轮 runtime 的其余结果(报告已随失败轮作废,此处只作判断依据,不作证据引用):\n21 个步骤 status=0,**testsPassed=747——与上一提交前置的预测值一致**,两个 request-context\n验收文件各 6 例都在里面;唯一红的是 auth-startup。行为矩阵未执行(在 auth-startup 之后)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/47e6fe38803a863e867b9f8a6141540da75736ee","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:14:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/lib/request-context.ts","apps/api-nestjs/src/common/request-context.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","docs/planning/内核退回pin立项-2026-09-18.md","reports/baseline.json","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/governance-report.mjs"]},{"id":"b71b745a36f3b4786d177604aa7034bf5a43ba39","message":"chore(reports): 静态 28/28 回绑 @ 3949dcc;数字前置到本批实测值\n\n静态 28 份报告在实现提交上重新生成并回绑(`check:kernel-admission` 42 模块 / 751 导出、\n`check:kernel-boundaries` 147/147 受管面 / 245/245 锁定文件、`check:dual-backend` 负探针 2/2)。\n\nCLAUDE.md 动态数字随本批改动前移:\n own-tests 92 → 94 (+2 个 request-context 验收文件,C70 只计 git 已跟踪,\n 故必须在实现提交落地后才数得到)\n own-test-cases 738 → 750 (+12 例,与 governance.latest.json 实测一致)\n tests-passing 735 → 747 (**这一个是预测值**:735 + 本批 12 例,尚未被 runtime 实测)\n\n「tests-passing 写在实测之前」是本仓已知的结构性自指,不是抄数:任何改变用例数的批次\n都会在自己第一次 runtime 的收尾 docs-truth 上红——C231/C244 把该复验放在 canonical 报告\n写下之后,而正确数字只有跑完才知道。两条出路都要跑两轮 runtime(先跑得数再改文档,或\n先写预测再跑),这里选后者,好处是 runtime 报告能直接绑定 clean HEAD。\n**若下一轮实测不等于 747,以报告为准修正本行,不反过来迁就文档。**\n\n快照锚点按 C241 指向实现提交 3949dcc。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/b71b745a36f3b4786d177604aa7034bf5a43ba39","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:59:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"3949dcccd743f991487c1438db85ddb11277cc4c","message":"feat(kernel-repin): RequestContext 从 HTTP 层贯通——两后端回显 x-request-id / x-trace-id\n\nB2c-2 与 B3″ 的共同前置(立项 §5.2)。形状与解析全部取自 contracts `request-context.ts`\n(转发自 `@juhai/kernel` 0.22.0),本仓只写 AsyncLocalStorage、APP_ID 解析与两个框架各自的\n入口适配——不复制第二份判定。\n\n修的是一个真缺陷,不只是搬代码:本仓此前**不回显任何相关性标识**,调用方拿到 500 之后\n没有任何能交给运维去查日志的句柄。现在固定回显 x-request-id;有合法 traceparent 时另回\nx-trace-id。入站 requestId 合法即沿用(跨服务相关性的唯一意义),非法即丢弃重生成——不把\n外部字符串反射进响应头与日志。\n\n装配(两侧必须最先,鉴权在其后才能 enrich,响应头回显要覆盖其后所有分支):\n NestJS create-app.ts 第一个 app.use(先于 trace 中间件)\n Fastify app.ts 第一个 register(先于 setErrorHandler 与既有 hook)\n\n与既有 rls-context 并存、刻意不合并:那一份持有 RLS 执行身份(tenant/system 两态),\n这一份持有请求可追溯性。失败语义不同,合成一个 store 会让「租户缺失」与「上下文缺失」\n不可区分。\n\n⚠️ 部署侧同批改动:resolveAppId 在生产缺 APP_ID 时抛错拒绝启动,\ndeploy/production/compose.yml 的 x-api-environment 与 x-dispatcher-environment 两个锚点\n都已写入 APP_ID。漏掉任一个,对应进程起不来——不能等下一批补。\n\n为什么额外建绊网:行为矩阵**结构上证明不了这条**。x-request-id 是实例噪声,被显式排除在\n22 个稳定响应头白名单之外(两端值必然不同),所以删掉任一侧的装配点,矩阵 204 例仍全绿。\n补两层:\n · check:dual-backend 新增 7 条 targeted 断言(含装配顺序、两个 compose 锚点各一)\n + 一个受控断线负探针;dualBackendParityNegativeProbes 由 1 收紧到 2;\n · 两侧各 6 例真实 HTTP 验收 request-context.acceptance.test.ts,断言集逐条对等:\n 无头生成 / 合法沿用 / 非法重生成 / traceparent 取 trace-id / 畸形不猜 / 404 也回显。\n\n负向实测(已恢复现场):注释掉 Fastify 的 register → 该侧 6/6 精确红;注释掉 NestJS 的\napp.use → 该侧 6/6 精确红。\n\n本批没做、也不声称:outboxContext() 与 decisionContext() 目前**零调用方**——把 context\n写进 outbox 行是 B3″,接进权限判定是 B2c-2(仍卡 ADR 0011 裁决)。本批只交付「上下文在\n请求入口真实存在、可被下游取用、且对外可见」。\n\n边界归属:新增 3 个源码文件按 CORE 归属,kernel.boundaries.lock 重签,受管面 146→147、\n锁定文件 242→245,CLAUDE.md 同步。baseline 只收紧本批真正改变的那个字段\n(dualBackendParityNegativeProbes 1→2)——其余若干地板确实落后于现值(ownTests 83 vs 92、\nrlsProtectedTables 65 vs 67 等),那是另一件事,不在本批顺手扫掉。\n\n证据:typecheck 13/13;pnpm check 28/28;两侧 request-context 验收各 6/6(真实 DB\ndigital_employee_os_acceptance_20260918 @127.0.0.1:55470 + redis :6404/3)。\nruntime 整轮与报告回绑在下一提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3949dcccd743f991487c1438db85ddb11277cc4c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:56:13-07:00","added":["apps/api-fastify/src/lib/request-context.ts","apps/api-fastify/src/plugins/request-context.ts","apps/api-fastify/test/request-context.acceptance.test.ts","apps/api-nestjs/src/common/request-context.ts","apps/api-nestjs/test/request-context.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-nestjs/src/create-app.ts","deploy/production/compose.yml","docs/planning/内核退回pin立项-2026-09-18.md","kernel.boundaries.json","kernel.boundaries.lock.json","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"34aab5dea31113ee2688fd236eea3f382402027e","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新\n\n三级证据本批首次同时绑定 clean HEAD `47e6fe3`(worktreeDirty:false):\n\n· runtime 30/30 步、**747 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 七包测试、迁移 deploy/status、auth-startup、db-credential-separation、tracing、\n dependency-resilience、capacity、write-capacity、multi-instance 全通过。\n 747 = 735 + 本批 12 例,与 b71b745 前置写下的预测值一致——预测被实测证实,\n 不是反过来改文档迁就。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(收尾清单硬条目)。\n\nauth-startup 现有**三类拒启各 2/2**:无验签器、显式 demo、**生产缺 APP_ID**。第三类是本日\n新增,`missingAppIdRejected: 2` 是两个后端都真的起不来的机器回执——它抓到的正是本批自己\n第一版的惰性解析缺陷,不是事后补的装饰。\n\n跑了三轮 runtime,如实记账:\n ① 红在 auth-startup —— 真缺陷(惰性 APP_ID),已修(47e6fe3 的父提交);\n ② 实质全绿但红在收尾 docs-truth 的快照锚点滞后 —— 锚点停在 3949dcc 而 HEAD 已走两步,\n 打穿 C232 的 +1 自指窗。修复提交已把锚点折进去指向其父提交;\n ③ 30/30 全绿,即本提交回绑的这一份。\n第 ② 轮暴露的是我自己的流程错:改变用例数的批次天然要两轮,但锚点该在每个提交里跟着走,\n不该等到最后一个提交才想起来——C241 写的就是这条,这次仍然踩了。\n\n本提交按 C241 把锚点指向父提交 47e6fe3;证据新鲜度里 runtime 与 auth-startup 两行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/34aab5dea31113ee2688fd236eea3f382402027e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:38:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90066,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T07:35:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789778311
|
1789778402
|
0
|
1789778300
|
1789779516
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24209
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b22 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
92
|
5
|
0
|
refs/heads/main
|
94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"34aab5dea31113ee2688fd236eea3f382402027e","after":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/34aab5dea31113ee2688fd236eea3f382402027e...94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","commits":[{"id":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新\n\nB3″ 三级证据绑定 clean HEAD `1b228ba`(worktreeDirty:false):\n\n· runtime 30/30 步、**759 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 759 = 747 + 本批 12 例,与 1b228ba 前置写下的预测值一致。\n 信封加了可选 context 之后矩阵仍 204/204——它本来就比不到这个字段\n (outbox 快照只取 type + payload),这也正是本批另建 14 条绊网的理由。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n**一轮过**。上一批因锚点没跟着提交走白跑 25 分钟,这批把锚点写进了每个提交,没有复发。\n\n本提交按 C241 把锚点指向父提交 1b228ba;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:13:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"1b228baf0006555572a2e829ae95f67960da7e98","message":"chore(reports): 静态 28/28 回绑 @ aa62fba;数字前置到本批实测值\n\nown-tests 94 → 96、own-test-cases 750 → 762(+2 文件 / +12 例信封上下文验收,C70 只计\ngit 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 747 → 759 是**预测值**(747 + 本批 12 例),由下一轮 runtime 实测证实;\n不等于 759 就按报告改文档。上一批已验证过这条路子:预测值被实测原样证实。\n理由同上批:改变用例数的批次结构上要两轮 runtime,先写预测能让 runtime 报告直接绑 clean HEAD。\n\n锚点按 C241 指向父提交 aa62fba——上一批就是漏在这里,白跑了一轮 25 分钟。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1b228baf0006555572a2e829ae95f67960da7e98","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:00:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"aa62fba5da4448840228f6699f42085fb2bdeae8","message":"feat(kernel-repin): B3″ realtime 双向合并——信封请求上下文真正贯通到 outbox\n\n内核 0.6.0 给信封加了 `context {requestId, traceId}`,但**只给了字段,没给它怎么进来**:\n写入端如何落库、读出端如何还原、无入站请求时如何表达「不知道」,三件事都留给下游发明。\n最省事的实现——投递时从当前 ALS 取一份填进去——恰好是最坏的:照着那个 requestId 去查日志\n只会查到 dispatcher 自己,「信封可追溯」就此变成假象。本批按三段落地:\n\n· 写入:outbox 加 request_id / trace_id 两列(两后端字节一致迁移,纯 additive 可空),\n 由 **Prisma 客户端扩展单点注入**。不逐处改两后端各 74 处 tx.outbox.create——那是\n 148 处一次性改动外加一条永久漂移缝:新写链忘了带就静默缺席,而少一个可空字段\n 不会让任何门禁红。扩展在交互式事务内同样生效,P4 的「outbox 与业务写同 tx」不变。\n 装配顺序固定:扩展在最内层、RLS 代理在最外层——反过来 $extends 会作用到代理的\n 目标对象上,代理当场失效。\n· 读出:dispatcher 与重放各自**从行上取**,经 contracts envelopeContextOf 还原;\n requestId 缺席即整体缺席(半份上下文既对不上日志,也不能声称知道来源)。\n· 缺席:无入站请求(worker / dispatcher / 触发器)时两列 NULL,信封里干脆没有 context。\n\n独立列而非塞 payload:payload 是领域事实,掺进基建相关性标识会被双后端行为矩阵当成领域\n差异比较——它的 outbox 快照恰好只取 type + payload。\n\n这是**合并不是 pin**:内核那版没有 resourceRefs,也没有 realtimeChannelForDatabase,\n直接 pin 会丢掉产品扩展参与订阅的唯一途径与「同 Redis 实例多环境不得互相收事件」的结构解\n(13 个消费者)。分歧已登记进迁移手册 §6,上游同步不得用内核版覆盖本文件。\n\n守护(行为矩阵**结构上证明不了这条**:上下文走独立列,矩阵只比 type + payload,\n删掉任一侧的注入或读出,204 例仍全绿):\n· check:dual-backend 增 14 条 targeted 断言(注入点/读出点/迁移/负例本身)+ 1 个受控断线\n 负探针,dualBackendParityNegativeProbes 由 2 收紧到 3;\n· 两侧各 6 例真实 DB 验收,断言集逐条对等:落库两列 / 无请求即 NULL / dispatcher 读出 /\n 重放保留 / 半份整体缺席 / 显式值不被覆盖。\n负向实测:摘掉 Fastify 注入扩展 → 精确 3 例红;摘掉重放读出 → 精确 1 例红;均已恢复现场。\n\ncontracts 升 1.23.0(expand-only),packages/downstream 两把锁重签,下游 fixture 源码未改\n即通过(同 major 兼容成立)。顺带实测到一个门禁盲区并如实登记为 U-42:check:kernel-packages\n的 apiDigest **只哈希入口 .d.ts 字节、不含再导出的模块**,所以本批加 3 个公开导出它不会红——\n「同版本改公开 API 即红」对 barrel 式入口基本不成立,版本是自觉升的。\n\n本批明确不做、逐条登记在立项书 §5.3:内核的 defineRealtimeEventTypes 组合式事件类型、\n两个未接线的内核常量(LIVE_BUFFER_LIMIT / REDIS_COMMAND_TIMEOUT_MS——后者对应一个真实的\nRedis publish 无超时缺口)、产品事件路径(走 raw SQL,扩展覆盖不到,目前没有 context)、\nworker 派生事件继承原始请求。前三项是范围取舍,最后一项的后果是那些行 context 为 NULL——\n缺席是诚实的,不构成假象。\n\n证据:typecheck 13/13;pnpm check 28/28;两侧信封上下文验收各 6/6(真实 DB\ndigital_employee_os_acceptance_20260918 @127.0.0.1:55470 + redis :6404/3)。\nruntime 整轮与报告回绑在下一提交。锚点按 C241 指向父提交 34aab5d。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/aa62fba5da4448840228f6699f42085fb2bdeae8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:59:16-07:00","added":["apps/api-fastify/prisma/migrations/20260929000000_outbox_request_context/migration.sql","apps/api-fastify/src/plugins/outbox-request-context.ts","apps/api-fastify/test/realtime.envelope-context.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260929000000_outbox_request_context/migration.sql","apps/api-nestjs/src/prisma/outbox-request-context.ts","apps/api-nestjs/test/realtime.envelope-context.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","docs/migration-playbook.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新\n\nB3″ 三级证据绑定 clean HEAD `1b228ba`(worktreeDirty:false):\n\n· runtime 30/30 步、**759 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 759 = 747 + 本批 12 例,与 1b228ba 前置写下的预测值一致。\n 信封加了可选 context 之后矩阵仍 204/204——它本来就比不到这个字段\n (outbox 快照只取 type + payload),这也正是本批另建 14 条绊网的理由。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n**一轮过**。上一批因锚点没跟着提交走白跑 25 分钟,这批把锚点写进了每个提交,没有复发。\n\n本提交按 C241 把锚点指向父提交 1b228ba;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:13:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90457,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T08:38:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789780398
|
1789780407
|
0
|
1789780398
|
1789780421
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24213
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
94
|
5
|
0
|
refs/heads/main
|
01d0eabfa71ec061d876d39d4f399d2290530a15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","after":"01d0eabfa71ec061d876d39d4f399d2290530a15","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb...01d0eabfa71ec061d876d39d4f399d2290530a15","commits":[{"id":"01d0eabfa71ec061d876d39d4f399d2290530a15","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新\n\nRedis 发布时限批次的三级证据,绑定 clean HEAD `56e6e57`(worktreeDirty:false):\n\n· runtime 30/30 步、**776 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 776 = 759 + 本批 17 例(contracts 9 + 两后端各 4),与前置预测一致。\n dependency-resilience / multi-instance / write-capacity 这些真打 Redis 的\n 门禁全过——2 秒时限没有误伤健康链路。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate\n (npm 审计接口 503 重试两次后成功)。\n\n本提交按 C241 把锚点指向父提交 56e6e57;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/01d0eabfa71ec061d876d39d4f399d2290530a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:44:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"56e6e57c22a534a07ac54bc5f8bf9da1c6806a03","message":"chore(reports): 静态 28/28 回绑 @ 00cd95d;数字前置到本批实测值\n\nown-tests 96 → 99、own-test-cases 762 → 779(+3 文件 / +17 例:contracts 9 例判定单测\n与两后端各 4 例黑洞 Redis 验收;C70 只计 git 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 759 → 776 是**预测值**(759 + 17),由下一轮 runtime 实测证实。\n前两批这条路子都验证过:预测被实测原样证实。\n\n锚点按 C241 指向父提交 00cd95d。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/56e6e57c22a534a07ac54bc5f8bf9da1c6806a03","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:31:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"00cd95da0b4f2694db9528235f69d2f95a6707ab","message":"fix(realtime): Redis 发布加可判责时限 + 批次预算刹车——此前一次 Redis 故障既不可判责也不收敛\n\nB3″ 登记的推迟项里有一条是真缺口,同日单独做掉。**先有证据再动手**:起一个「接受连接但\n永不应答」的 TCP 服务端(C63 已建模的半开/黑洞形态),用与本仓 publisher 完全相同的连接配置\n(maxRetriesPerRequest: null——BullMQ 的要求)打一次 publish,**8 秒后仍然挂着**。\n不是慢,是永远:ioredis 在该配置下无限重试,命令永不 reject。\n\n真正的后果不在「慢」,在它挂在 outbox 领取事务**之内**:\n\n 修复前 修复后\n 单行 publish 无限挂起 2s 抛 REALTIME_REDIS_COMMAND_TIMEOUT\n 该行 attempts 不增(整事务回滚) +1,事务提交\n 批内其余 49 行 一次都没试过 按预算尽量试,剩下留给下一跳\n 连续故障 每秒重开一个必然超时的事务,不收敛 10 跳后进死信,可判责终态\n 运维看到的错误 Prisma 事务超时,**指向数据库** 稳定前缀,指向 Redis\n\n**光加超时不够,这是最容易做漏的一半。** 故障时每行烧掉一个完整时限,一批 50 行 ×2s 远超\n15 秒事务预算——事务照样超时回滚、attempts 照样不增,只是从「挂着」变成「忙着」。\n所以有 realtimeDispatchBudget:每行开工前裁决「还剩不剩得下再试一行」,不够就 break,\n把剩下的留给下一跳,让本事务先把已累加的 attempts 提交掉。**收敛性来自这条刹车,不是超时。**\n\n超时**抛错不吞**:五个 publish 点各有自己的失败语义(dispatcher 累加 attempts 走死信,\n进程内扇出向上传播)。在 helper 里吞掉就变成事件静默丢失,比挂住更糟。\n\n证据:\n· contracts 9 例判定单测——含「超时后底层 promise 迟到 reject 不产生 unhandledRejection」\n 与「15s 预算最多放行 7 行」(关键不是 7,是它 \u003c 50);\n· 两后端各 4 例真实 ioredis 打黑洞服务端验收,**直接测生产类**\n (new EventBus(hungRedis) / new EventBusService(hungRedis, ...))——在测试里另写一份\n publish 只能证明 helper 能用,证明不了生产路径接了它;\n· check:dual-backend 增 12 条 targeted 断言(五个 publish 点 + 两处刹车 + 黑洞用例本身)\n + 1 个受控断线负探针,dualBackendParityNegativeProbes 3 → 4。\n负向实测:摘掉 Fastify 生产 EventBus.publish 的时限 → 该用例挂满 30 秒测试上限后红、\n其余三例仍绿(精确命中);已恢复现场。\n\n顺带调了一个既有断言并注明理由:G16 的「提交后才发投递样本」用 4200 字节邻近窗口,预算刹车\n合法地把两点推远约 600 字节,放宽到 4800。它是邻近性启发式不是语义判据,意图未变;\n我也把预算日志挪到 observeDelivery 之后,尽量少动它的相邻性。\n\ncontracts 升 1.24.0(expand-only),两把锁重签,下游 fixture 源码未改即通过。\n\n证据:typecheck 13/13;pnpm check 28/28。runtime 整轮与报告回绑在下一提交。\n锚点按 C241 指向父提交 94ec469。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/00cd95da0b4f2694db9528235f69d2f95a6707ab","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:29:12-07:00","added":["apps/api-fastify/test/realtime.redis-timeout.acceptance.test.ts","apps/api-nestjs/test/realtime.redis-timeout.acceptance.test.ts","packages/contracts/src/realtime-redis-timeout.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"01d0eabfa71ec061d876d39d4f399d2290530a15","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新\n\nRedis 发布时限批次的三级证据,绑定 clean HEAD `56e6e57`(worktreeDirty:false):\n\n· runtime 30/30 步、**776 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 776 = 759 + 本批 17 例(contracts 9 + 两后端各 4),与前置预测一致。\n dependency-resilience / multi-instance / write-capacity 这些真打 Redis 的\n 门禁全过——2 秒时限没有误伤健康链路。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate\n (npm 审计接口 503 重试两次后成功)。\n\n本提交按 C241 把锚点指向父提交 56e6e57;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/01d0eabfa71ec061d876d39d4f399d2290530a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:44:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90814,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T09:13:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789782246
|
1789782336
|
0
|
1789782244
|
1789782350
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24216
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520c chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
96
|
5
|
0
|
refs/heads/main
|
c015261889aca3b700d1226045d8f66a27c3d431
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"01d0eabfa71ec061d876d39d4f399d2290530a15","after":"c015261889aca3b700d1226045d8f66a27c3d431","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/01d0eabfa71ec061d876d39d4f399d2290530a15...c015261889aca3b700d1226045d8f66a27c3d431","commits":[{"id":"c015261889aca3b700d1226045d8f66a27c3d431","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新\n\nB4 三级证据绑定 clean HEAD `520cacc`(worktreeDirty:false):\n\n· runtime 30/30 步、**786 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 786 = 776 + 本批 10 例,与前置预测一致。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(接口 503 重试后成功)。\n\n**本轮 runtime 的额外含义**:db-credential-separation / tracing / multi-instance /\ndependency-resilience / capacity / write-capacity 六个子门禁**第一次在聚合内跑在非超级用户\n登录上**——此前它们以 production 姿态启动真实入口却连超级用户,RLS 对其不生效。\n`dbCredentialSuperuserStartupRejected: 2` 是两个生产入口在超级用户连接下拒启的机器回执。\n\n本提交按 C241 把锚点指向父提交 520cacc;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c015261889aca3b700d1226045d8f66a27c3d431","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:23:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"520cacc00a6da74c376ff46886b4c61dea393ab3","message":"chore(reports): 静态 28/28 回绑 @ 52665a2;数字前置到本批实测值\n\nown-tests 99 → 100、own-test-cases 779 → 789(+1 文件 / +10 例 RLS 启动姿态判定单测;\nC70 只计 git 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 776 → 786 是**预测值**(776 + 10),由下一轮 runtime 实测证实。\n前三批都验证过这条路子:预测被实测原样证实。\n\n锚点按 C241 指向父提交 52665a2。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/520cacc00a6da74c376ff46886b4c61dea393ab3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:10:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"52665a2f60d48062cfe891dafcd7728379524b34","message":"feat(kernel-repin): B4 RLS 启动期姿态探测——顺带修掉验收基座一直跑在超级用户上\n\n开工实测让 B4 第三次校准范围(先「rls 二选一」→ §2 订正「两模块互补」→「双 URL + 启动探测」)。\n**双 URL 那一半不做**:生产编排早有等价的三登录分离(MIGRATION / tenant API / system dispatcher),\nC55/C56 用真库临时 login + 8 个负例验过。语义已覆盖,只差名字;改名要牵动 C55/C56 全部验收面、\n8 个 runner 与生产编排,换不来任何安全收益。登记进迁移手册 §6 分歧账本。\n\n**真正缺的那一件做了。** rls.ts 文件头一直写着「非超级用户生产连接」,但那只是**运维前提**:\n部署时把 URL 填成超级用户,应用照常启动,FORCE RLS 对超级用户不生效,所有 RLS 断言恒绿。\ncheck:db-credential-separation 验的是**供给对不对**,不是**应用会不会拒绝**。\n现在四个入口(两 API 装配点 + 两 dispatcher)在 enforce 姿态下查两个事实——登录不得\nsuperuser/BYPASSRLS、清单内每张租户表已 FORCE RLS,任一不满足即拒启,错误带\n[RLS_RUNTIME_ROLE_UNSAFE] / [RLS_TABLES_NOT_FORCED]。姿态沿用已有的 RLS_CONTEXT_REQUIRED=1,\n不引入第二个开关。\n\n**它当场揪出的第二件事,比第一件更值钱**:加完探测跑第一个 runner 就红了,红的不是生产,\n是本仓自己的验收基座——七个 runner 都以 NODE_ENV=production 启动真实入口,却把共享验收库的\n**超级用户** URL 递给子进程。\"生产入口能跑\"这条证据一直比它看起来的弱:任何只在普通登录下\n才暴露的权限问题,在这些 runner 里结构上看不见。新增 scripts/lib/acceptance-runtime-login.mjs\n幂等供给非超级用户登录(API 走 tenant、dispatcher 走 system,与生产同构),\n**七个全部在新登录下通过**——没有发现只在超级用户下才活得下来的路径,说明 RLS 桥本身是对的,\n这条证据链只是终于名副其实了。\n\ncheck:redis-auth-live 是唯一需要 tenant+system 双成员资格的(它刻意单进程走完\n写库 → in-process dispatcher → Pub/Sub)。为它单开 combined 登录,并在代码里写明\n**它比生产姿态弱且是刻意的**,不构成\"生产也可以合并\"的先例。\n\n**顺带发现一个早已存在的红,判责 C254**:redis-auth 在新登录下仍红;git stash 回到 HEAD\n01d0eab 用超级用户跑一样红,与 B4 无关。根因是 C253 的第四处遗漏——它同样写死基础频道却跑在\nRedis DB 7 上。C253 修了三处,漏它是因为 check:redis-auth 不在 check:runtime 聚合里、修完\n再没跑过,而基线行从 2026-08-26 起一直标着 GREEN。C234 的 agedAcceptanceReports 当时就报了\n24 天陈旧,但「记录不阻断」——**一条不阻断的记录摆在一行 GREEN 旁边,不构成控制**。已修并转绿。\n\n证据:contracts 10 例判定单测;check:db-credentials 负例 8 → 10(新增两个生产入口在超级用户\n连接下拒启的**活证据**);七个 runner 在非超级用户登录下全绿;check:dual-backend 增 11 条\ntargeted 断言 + 1 个受控断线负探针(负探针 4 → 5);pnpm check 28/28;typecheck 13/13。\ncontracts 升 1.25.0(expand-only),两把锁重签。\n\n过程中一次自己的操作失误,如实记:为了给 redis-auth 的红做归因,我 git stash 了整个工作区,\npop 时因未跟踪文件已存在而失败,而我用 \u003e/dev/null 把报错吞了——正是本仓记过的「别用\ncmd \u003e/dev/null \u0026\u0026 echo 掩盖退出码」。已逐文件比对 stash 内容确认无丢失后才 drop。\n\n本批不做:把 agedAcceptanceReports 从「记录」升级为「阻断」——当前 7 份报告 19–24 天陈旧\n(含需 Docker / Xcode 的),一刀切会把整块板子打红。独立立项。\n\nruntime 整轮与报告回绑在下一提交。锚点按 C241 指向父提交 01d0eab。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/52665a2f60d48062cfe891dafcd7728379524b34","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:07:42-07:00","added":["apps/api-fastify/src/plugins/rls-startup.ts","apps/api-nestjs/src/prisma/rls-startup.ts","packages/contracts/src/rls-startup.test.ts","scripts/lib/acceptance-runtime-login.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/prisma/prisma.service.ts","deploy/production/compose.yml","docs/migration-playbook.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/rls.ts","reports/baseline.json","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"c015261889aca3b700d1226045d8f66a27c3d431","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新\n\nB4 三级证据绑定 clean HEAD `520cacc`(worktreeDirty:false):\n\n· runtime 30/30 步、**786 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 786 = 776 + 本批 10 例,与前置预测一致。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(接口 503 重试后成功)。\n\n**本轮 runtime 的额外含义**:db-credential-separation / tracing / multi-instance /\ndependency-resilience / capacity / write-capacity 六个子门禁**第一次在聚合内跑在非超级用户\n登录上**——此前它们以 production 姿态启动真实入口却连超级用户,RLS 对其不生效。\n`dbCredentialSuperuserStartupRejected: 2` 是两个生产入口在超级用户连接下拒启的机器回执。\n\n本提交按 C241 把锚点指向父提交 520cacc;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c015261889aca3b700d1226045d8f66a27c3d431","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:23:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91147,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T09:44:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789784611
|
1789784619
|
0
|
1789784609
|
1789784633
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24220
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
98
|
5
|
0
|
refs/heads/main
|
8419453dedda057cca061637c499e06b345c8db8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c015261889aca3b700d1226045d8f66a27c3d431","after":"8419453dedda057cca061637c499e06b345c8db8","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c015261889aca3b700d1226045d8f66a27c3d431...8419453dedda057cca061637c499e06b345c8db8","commits":[{"id":"8419453dedda057cca061637c499e06b345c8db8","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `43e3fe5`。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n本批只动了两个门禁脚本(check-access-audit 的 envsubst 白名单、check-operations 的 O4\n派生断言),runtime 路径未变,本可不重跑。**仍然重跑了**:这一批讲的就是「陈旧证据不算数」,\n给自己开例外会让整批话失去分量——runtime 证据现在绑在本批 HEAD 上,不是上一批的。\n\n本提交按 C241 把锚点指向父提交 43e3fe5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8419453dedda057cca061637c499e06b345c8db8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:03:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"43e3fe53b3cef4f9941b75a4cc2a132349a37505","message":"fix(gates): C255 access-audit 网关三周起不来 + 陈旧报告全面复验;O4 改为从模板派生\n\nC254 说「聚合外的 runner 会静默腐化」,那就把这句话查实:基线上还有 9 份报告 19–26 天陈旧\n且都标着 GREEN。能本机复验的七份全部重跑,结果分两类——\n\n**一类是本机缺前提,不是回归**:\n· trace-backend 依次缺 grafana/tempo:3.0.3、prom/prometheus:v3.14.0,runner fail-closed 拒跑,\n 行为正确。拉回后实跑通过(Collector→Tempo 入库、双重启持久、告警 3/3)。\n 顺带订正 CLAUDE.md 里 C243 的说法:「本机 Docker 走离线代理,基础镜像拉取一律超时」当日\n 已不成立,pull 正常。\n· 五个 check:*-image runner(postgres / alertmanager / loki / tempo / otel-collector)全绿。\n\n**一类是真回归,判责 C255**:\nC230 给网关模板加了 set_real_ip_from ${REAL_IP_TRUSTED_CIDR},同步了模板 / compose /\n.env.example / O4 断言四处,**唯独漏了 check-access-audit.mjs 自己硬编码的那份\nNGINX_ENVSUBST_FILTER**。变量不被替换,nginx 以\n`host not found in set_real_ip_from \"${REAL_IP_TRUSTED_CIDR}\"` 启动失败——\n该专项自 2026-08-29 起红了三周,而基线行按 08-26 的绿盘一直标着 GREEN。\n讽刺的是 O4 恰有一条「envsubst filter must allow the real_ip trust variable」:\n**它只查 compose,没查自己的测试夹具**。\n\n修法的重点不在补那一个变量,而在别让下一个变量再漏:O4 该断言改为**从模板派生**——\n模板里出现的每个 ${VAR} 必须同时出现在 compose 与 runner 两份白名单里,漏一个即红。\n负向已验证:摘掉变量精确报 `[O4] ... missing template variables: REAL_IP_TRUSTED_CIDR`。\n\n**今天两个 C 号(C254 / C255)是同一个结构**:功能落地时打断了聚合外的 runner,\n而它不再运行,所以没人知道。`agedAcceptanceReports` 每次都如实报了陈旧,\n但「记录不阻断」——一条不阻断的记录摆在一行 GREEN 旁边不构成控制。\n把它升级为阻断仍是独立立项(当前仍有 mobile-android / mobile-ios /\nimage-vulnerabilities 三项本机不可复验)。\n\n证据:trace-backend、access-audit、五个镜像 runner 七份报告全部回绑当日并 status=passed;\nCLAUDE.md 三处新鲜度日期随报告 generatedAt 同步(C132 会持续盯);pnpm check 28/28。\n\n锚点按 C241 指向父提交 c015261。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/43e3fe53b3cef4f9941b75a4cc2a132349a37505","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:51:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/alertmanager-image.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/loki-image.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/otel-collector-image.latest.json","reports/platform-dependency-provenance.latest.json","reports/postgres-image.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tempo-image.latest.json","reports/trace-backend.latest.json","reports/validation-source.latest.json","scripts/check-access-audit.mjs","scripts/check-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"8419453dedda057cca061637c499e06b345c8db8","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `43e3fe5`。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n本批只动了两个门禁脚本(check-access-audit 的 envsubst 白名单、check-operations 的 O4\n派生断言),runtime 路径未变,本可不重跑。**仍然重跑了**:这一批讲的就是「陈旧证据不算数」,\n给自己开例外会让整批话失去分量——runtime 证据现在绑在本批 HEAD 上,不是上一批的。\n\n本提交按 C241 把锚点指向父提交 43e3fe5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8419453dedda057cca061637c499e06b345c8db8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:03:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T10:23:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789787034
|
1789787043
|
0
|
1789787034
|
1789787057
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24222
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2d chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
100
|
5
|
0
|
refs/heads/main
|
14983b57ae2ab9c0e424700ca11c3f4677984400
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8419453dedda057cca061637c499e06b345c8db8","after":"14983b57ae2ab9c0e424700ca11c3f4677984400","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/8419453dedda057cca061637c499e06b345c8db8...14983b57ae2ab9c0e424700ca11c3f4677984400","commits":[{"id":"14983b57ae2ab9c0e424700ca11c3f4677984400","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `dd2dab5`。\n· 静态 28/28(含 C256 的时效判定与门禁内自检 9/9)。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\nC256 上线后第一份 governance 报告:staleAcceptanceFreshnessViolations=0,\n两条陈旧源(mobile-android / mobile-ios)都落在已登记且未过期的豁免里——\n**它们仍然是陈旧的,只是不再沉默**:到 2026-12-19 若未解除,门禁会自己红。\n\n本提交按 C241 把锚点指向父提交 dd2dab5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/14983b57ae2ab9c0e424700ca11c3f4677984400","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:31:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"dd2dab5799d061d69b7158585f1b38cd58a31833","message":"feat(gates): C256 验收时效由「记录」升级为「陈旧即红,除非登记」\n\nC254(redis-auth 红 24 天)与 C255(access-audit 红 3 周)同日连出,形态一模一样:\n功能落地时打断了聚合外的 runner,它不再运行,所以没人知道。\n\n关键不在检测失灵——**两次 C234 的 agedAcceptanceReports 都如实报了陈旧,两次都没人动**。\n问题是它「记录不阻断」:一条不阻断的记录摆在一行 GREEN 旁边,不构成控制。\n\nC234 当初不阻断的理由写在注释里且成立——「强制会把离线 check 变成环境人质」。\n所以这次不是在阻断与不阻断之间二选一,而是把「为什么可以不跑」从沉默变成**登记**:\n\n· 超 14 天即红;\n· 出口是五字段登记(reason / registeredAt / expiresAt / blockedBy / replacementPlan),\n 与 platform-dependency-deviations、framework-criteria 的 missing 登记同口径——\n 半份不算、过期即红、expiresAt 非法即红、**策略文件缺失也红**(缺策略不等于没有时效要求);\n· 豁免会过期,逼人重新面对,而不是永久沉默;\n· 已不陈旧却仍挂着的豁免显形但不阻断(它自己会过期),防豁免只增不减。\n\n当前 2 条登记,都是诚实的环境限制而非拖延:\n mobileAndroidAcceptance —— 缺 JDK/SDK/device,runner 本身 fail-closed 无假绿风险;\n mobileIosAcceptance —— 缺 Xcode 26,现有报告只是无 Xcode 下的 fail-closed 自测,\n 不是 native 证据(G19 早已如实标注)。\n两条均至 2026-12-19,replacementPlan 写明各自的解除条件。\n\n**判定器自检在门禁内自跑**(9 条判据、5 条负向),不是只挂一个人工命令——\n只挂人工命令,它自己就会变成下一个 C254。这批修的就是这个病,不能自己再犯一次。\n\n活证据:摘掉 mobile-ios 豁免 → 精确报「已 24 天未重跑(上限 14 天)且无时效豁免登记」,\nmetric 由 0 变 1;恢复即绿。\n\n棘轮新增三项:staleAcceptanceFreshnessViolations(floor 0)、\nacceptanceFreshnessSelfTestCases(floor 9)、acceptanceFreshnessSelfTestNegatives(floor 5)。\n静态轴仍是 28 步——判定挂在 check:governance 内,没有新增步骤。\n\n证据:pnpm check 28/28;自检 9/9。锚点按 C241 指向父提交 8419453。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/dd2dab5799d061d69b7158585f1b38cd58a31833","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:19:11-07:00","added":["governance/acceptance-freshness.json","scripts/check-acceptance-freshness.mjs","scripts/lib/acceptance-freshness.mjs"],"removed":[],"modified":["CLAUDE.md","package.json","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"14983b57ae2ab9c0e424700ca11c3f4677984400","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `dd2dab5`。\n· 静态 28/28(含 C256 的时效判定与门禁内自检 9/9)。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\nC256 上线后第一份 governance 报告:staleAcceptanceFreshnessViolations=0,\n两条陈旧源(mobile-android / mobile-ios)都落在已登记且未过期的豁免里——\n**它们仍然是陈旧的,只是不再沉默**:到 2026-12-19 若未解除,门禁会自己红。\n\n本提交按 C241 把锚点指向父提交 dd2dab5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/14983b57ae2ab9c0e424700ca11c3f4677984400","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:31:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91996,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T11:03:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789788717
|
1789788726
|
0
|
1789788715
|
1789788849
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24255
|
docs(acceptance): record MCP verification and shar docs(acceptance): record MCP verification and shared-dev OS entry...
|
76
|
5
|
governance.yml
|
102
|
5
|
0
|
refs/heads/main
|
0bacabbbf2ed7e903ea7c77bad7cb973220417f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14983b57ae2ab9c0e424700ca11c3f4677984400","after":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/14983b57ae2ab9c0e424700ca11c3f4677984400...0bacabbbf2ed7e903ea7c77bad7cb973220417f9","commits":[{"id":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","message":"docs(acceptance): record MCP verification and shared-dev OS entry\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0bacabbbf2ed7e903ea7c77bad7cb973220417f9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:37:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/mcp-client-acceptance-2026-09-19.md","docs/platform-shared-dev.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"545112d3ab25eef1235f4ba7e96425f77521cf9a","message":"chore(governance): register MCP consumer contract exports\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/545112d3ab25eef1235f4ba7e96425f77521cf9a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:33:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/domain/mcp-control-plane-blueprint.md","kernel.exports.lock.json"]},{"id":"cb8177419cb374287ef67bf5a65cdfa2fe5d3a5f","message":"feat(mcp): add governed read-only control-plane client and evidence view\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/cb8177419cb374287ef67bf5a65cdfa2fe5d3a5f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:23:59-07:00","added":["apps/api-fastify/prisma/migrations/20260930000000_mcp_read_external/migration.sql","apps/api-nestjs/prisma/migrations/20260930000000_mcp_read_external/migration.sql","docs/domain/mcp-control-plane-blueprint.md","docs/operations/mcp-client-acceptance-2026-09-19.md","packages/contracts/src/mcp-control-plane.ts","packages/tool-runtime/src/implementations/control-plane-query-v1.ts","packages/tool-runtime/src/mcp-control-plane.test.ts","packages/tool-runtime/src/mcp-control-plane.ts","packages/tool-runtime/src/mcp-dispatch.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/tool-execution.service.ts","apps/api-fastify/src/plugins/tool-intent-dispatcher.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-nestjs/src/tools/tool-intent-dispatcher.service.ts","apps/api-nestjs/src/tools/tools-execution.service.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/workbench/RuntimeContextShell.tsx","apps/web/src/features/tools/components/ToolGovernancePanel.tsx","deploy/production/compose.yml","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/tool.ts","packages/contracts/src/tools-contracts.ts","packages/tool-runtime/package.json","packages/tool-runtime/src/index.test.ts","packages/tool-runtime/src/index.ts","pnpm-lock.yaml"]},{"id":"edec489b68a5957de8136f926c39f509e6b2147c","message":"feat(realtime): 产品事件补齐请求上下文——不改产品,来源留在 OS 侧\n\nB3″ 如实登记过一条:产品事件走 @repo/product-runtime 的裸 SQL INSERT,Prisma 扩展覆盖不到,\n所以它们没有 context。本批补齐,但**原计划的做法行不通,改了路子**:\n\n原计划「给 ProductSqlRuntimeOptions 加上下文入参」——查下来 createProductSqlRuntime 的调用方是\n**产品自己的组合根**(products/\u003cid\u003e/src/os-composition.mjs),而 products/\u003cid\u003e/ 按双形态原则\n只是派生制品、真源在独立仓。改它的签名就是制造与独立仓的漂移,必须走 GAP-10 对账。\n本仓不越过那道协议去改派生制品。\n\n改为 OS 侧进程级 provider:`setProductOutboxContextProvider`,两后端在装配期各注册一次自己的\n`outboxContext`(读 AsyncLocalStorage),**产品代码一个字不用改**。\n\n**这条依赖一个必须验证而不是假设的前提**:后端按包名 import 与产品按绝对路径 require,\n拿到的是不是同一个模块实例?不是的话,provider 注册在一边、读在另一边,上下文会静默为 null\n——正是那种「看起来接上了、其实全是空」的假绿。实测验证:pnpm 软链 + Node realpath 解析\n使两者命中同一 CJS 缓存项,`byPath.setProductOutboxContextProvider === byName.…` 为 true。\n为此两后端新增 @repo/product-runtime workspace 依赖(它是本仓 6 个稳定内核包之一,\n不是对产品的依赖,方向没问题)。\n\n失败语义:provider 抛错时返回空上下文而不是让事务失败——**上下文缺席远好于业务写链被拖垮**。\n未注册(worker / 独立 dispatcher)时两列为 NULL,缺席是诚实的,不合成。\n\n守护:product-runtime 单测 7 → 10(注册即带 / 未注册即 NULL / provider 抛错不拖垮写链);\ncheck:dual-backend 增 5 条 targeted 断言 + 1 个受控断线负探针(负探针 5 → 6)。\nproduct-runtime 升 1.2.0(expand-only),kernel.packages / kernel.downstream 两把锁重签,\n下游 fixture 源码未改即通过。\n\n过程中撞到一次邻近窗口:注册行插在 assertTenantAuthStartup 与框架初始化之间,撑破了 C51 的\n160 字节断言。**这次没有放宽窗口**——C51 那句「必须在框架初始化之前 fail closed」是有语义的,\n改为把注册挪到框架创建之后(它本来也不需要那么早)。\n\n证据:typecheck 14/14;pnpm check 28/28;product-runtime 10/10。\nown-test-cases 789 → 792 已按实测更新;tests-passing 仍写 786(当前 runtime 报告口径),\n等本批 runtime 实测后再改——不预写未经实测的数字。锚点按 C241 指向父提交 14983b5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/edec489b68a5957de8136f926c39f509e6b2147c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T22:02:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/app.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/create-app.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/product-runtime/package.json","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","message":"docs(acceptance): record MCP verification and shared-dev OS entry\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0bacabbbf2ed7e903ea7c77bad7cb973220417f9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:37:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/mcp-client-acceptance-2026-09-19.md","docs/platform-shared-dev.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92412,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T11:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789861083
|
1789861173
|
0
|
1789861082
|
1789861294
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24280
|
docs(hr): publish validated workspace acceptance e docs(hr): publish validated workspace acceptance evidence...
|
76
|
5
|
governance.yml
|
104
|
5
|
0
|
refs/heads/main
|
888fbd1a9e8c2c373d8082885920795e441de858
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","after":"888fbd1a9e8c2c373d8082885920795e441de858","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/0bacabbbf2ed7e903ea7c77bad7cb973220417f9...888fbd1a9e8c2c373d8082885920795e441de858","commits":[{"id":"888fbd1a9e8c2c373d8082885920795e441de858","message":"docs(hr): publish validated workspace acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/888fbd1a9e8c2c373d8082885920795e441de858","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:14:19-07:00","added":["docs/operations/hr-workspace-acceptance-2026-09-19.md"],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"46589618dc3e228c79aa23d78f34a33e720b4f2d","message":"docs(governance): align runtime evidence with 819 executed tests\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/46589618dc3e228c79aa23d78f34a33e720b4f2d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:01:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"568fb4d989746ee41e8c25fbb11f9d9c2812618b","message":"chore(hr): freeze strengthened acceptance contract at 0.19.1\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/568fb4d989746ee41e8c25fbb11f9d9c2812618b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T21:56:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/domain/juhai-hr-blueprint.md","kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json"]},{"id":"a799ae4f1b352a144d9d658f5c788da0d1afea0c","message":"test(hr): verify separate approvals, stale sources and query recovery\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/a799ae4f1b352a144d9d658f5c788da0d1afea0c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T21:55:21-07:00","added":[],"removed":[],"modified":["CLAUDE.md","kernel.products.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/host/web/components/InstalledJuhaiHrWorkspace.tsx","products/juhai.hr/host/web/features/hr/components/HrTransferAssistant.tsx","products/juhai.hr/manifest.json"]},{"id":"ca77b3bc4712784321dfad13567fc77018ae69f5","message":"feat(hr): govern personnel workspace and assisted transfer workflow\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ca77b3bc4712784321dfad13567fc77018ae69f5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T21:48:11-07:00","added":["products/juhai.hr/host/web/features/hr/components/HrQueryState.tsx","products/juhai.hr/host/web/features/hr/components/HrTransferAssistant.tsx","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/transfer-service.mjs"],"removed":[],"modified":["CLAUDE.md","docs/domain/juhai-hr-blueprint.md","kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/host/server-runtime.mjs","products/juhai.hr/host/web/components/InstalledJuhaiHrWorkspace.tsx","products/juhai.hr/host/web/features/hr/api/hr-api.ts","products/juhai.hr/host/web/features/hr/components/HrDeliveryAuditWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrMasterDataWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelChangeWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelGovernanceWorkbench.tsx","products/juhai.hr/host/web/features/hr/hooks/use-hr.ts","products/juhai.hr/manifest.json","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","scripts/check-ui-acceptance.mjs","scripts/mock-oidc-idp.mjs"]}],"total_commits":0,"head_commit":{"id":"888fbd1a9e8c2c373d8082885920795e441de858","message":"docs(hr): publish validated workspace acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/888fbd1a9e8c2c373d8082885920795e441de858","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:14:19-07:00","added":["docs/operations/hr-workspace-acceptance-2026-09-19.md"],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":93001,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T07:38:03+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789881295
|
1789881386
|
0
|
1789881294
|
1789881507
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24282
|
docs(hr): record local deployment and remaining ac docs(hr): record local deployment and remaining activation boundary...
|
76
|
5
|
governance.yml
|
106
|
5
|
0
|
refs/heads/main
|
5c934f6995108226630166390917c999dcbfb371
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"888fbd1a9e8c2c373d8082885920795e441de858","after":"5c934f6995108226630166390917c999dcbfb371","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/888fbd1a9e8c2c373d8082885920795e441de858...5c934f6995108226630166390917c999dcbfb371","commits":[{"id":"5c934f6995108226630166390917c999dcbfb371","message":"docs(hr): record local deployment and remaining activation boundary\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5c934f6995108226630166390917c999dcbfb371","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:18:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/hr-workspace-acceptance-2026-09-19.md"]}],"total_commits":0,"head_commit":{"id":"5c934f6995108226630166390917c999dcbfb371","message":"docs(hr): record local deployment and remaining activation boundary\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5c934f6995108226630166390917c999dcbfb371","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:18:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/hr-workspace-acceptance-2026-09-19.md"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":93385,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T13:14:55+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789881531
|
1789881561
|
0
|
1789881529
|
1789881598
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24284
|
docs(onboarding): record skill validation and veri docs(onboarding): record skill validation and verified frontend deployment...
|
76
|
5
|
governance.yml
|
108
|
5
|
0
|
refs/heads/main
|
68c461908af592429f5d1ea7c248731a756f73d6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5c934f6995108226630166390917c999dcbfb371","after":"68c461908af592429f5d1ea7c248731a756f73d6","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5c934f6995108226630166390917c999dcbfb371...68c461908af592429f5d1ea7c248731a756f73d6","commits":[{"id":"68c461908af592429f5d1ea7c248731a756f73d6","message":"docs(onboarding): record skill validation and verified frontend deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/68c461908af592429f5d1ea7c248731a756f73d6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:26:25-07:00","added":["docs/operations/onboarding-skills-2026-09-20.md"],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},{"id":"5a42f3bce2ea0365a1a93baf650dad0d66be99bc","message":"fix(onboarding): validate and retain explicit skill selections\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5a42f3bce2ea0365a1a93baf650dad0d66be99bc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:19:53-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","apps/web/src/components/views/TeamView.tsx","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx"]}],"total_commits":0,"head_commit":{"id":"68c461908af592429f5d1ea7c248731a756f73d6","message":"docs(onboarding): record skill validation and verified frontend deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/68c461908af592429f5d1ea7c248731a756f73d6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:26:25-07:00","added":["docs/operations/onboarding-skills-2026-09-20.md"],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":93509,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T13:18:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789882004
|
1789882095
|
0
|
1789882003
|
1789882158
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24288
|
docs: record responsibility binding verification a docs: record responsibility binding verification and local deployment...
|
76
|
5
|
governance.yml
|
110
|
5
|
0
|
refs/heads/main
|
1dae5c842780000bb72c7d9ba6ae17adac2faf3c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"68c461908af592429f5d1ea7c248731a756f73d6","after":"1dae5c842780000bb72c7d9ba6ae17adac2faf3c","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/68c461908af592429f5d1ea7c248731a756f73d6...1dae5c842780000bb72c7d9ba6ae17adac2faf3c","commits":[{"id":"1dae5c842780000bb72c7d9ba6ae17adac2faf3c","message":"docs: record responsibility binding verification and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1dae5c842780000bb72c7d9ba6ae17adac2faf3c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:48:17-07:00","added":["docs/operations/onboarding-responsibility-2026-09-20.md"],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},{"id":"e3b20ae0b4d9cec5926dddb1b79d7285e576fa23","message":"fix(onboarding): validate responsibility bindings and repair ready employees\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e3b20ae0b4d9cec5926dddb1b79d7285e576fa23","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:46:26-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx"]}],"total_commits":0,"head_commit":{"id":"1dae5c842780000bb72c7d9ba6ae17adac2faf3c","message":"docs: record responsibility binding verification and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1dae5c842780000bb72c7d9ba6ae17adac2faf3c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T22:48:17-07:00","added":["docs/operations/onboarding-responsibility-2026-09-20.md"],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":93908,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T13:26:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789883333
|
1789883341
|
0
|
1789883331
|
1789883356
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24297
|
docs: record readiness refresh regression and loca docs: record readiness refresh regression and local deployment...
|
76
|
5
|
governance.yml
|
112
|
5
|
0
|
refs/heads/main
|
9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1dae5c842780000bb72c7d9ba6ae17adac2faf3c","after":"9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/1dae5c842780000bb72c7d9ba6ae17adac2faf3c...9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","commits":[{"id":"9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","message":"docs: record readiness refresh regression and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T05:55:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","docs/operations/onboarding-responsibility-2026-09-20.md"]},{"id":"3c8175bb9966806116fa46a5df7fd8270e2c8c88","message":"fix(onboarding): refresh readiness issues as profile fields change\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3c8175bb9966806116fa46a5df7fd8270e2c8c88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T05:42:27-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx"]}],"total_commits":0,"head_commit":{"id":"9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","message":"docs: record readiness refresh regression and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T05:55:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","docs/operations/onboarding-responsibility-2026-09-20.md"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":94294,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T13:48:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789909497
|
1789909508
|
0
|
1789909153
|
1789909569
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24311
|
docs(operations): record governance rollout
|
76
|
5
|
governance.yml
|
114
|
5
|
0
|
refs/heads/main
|
761072ce9154ac38928c05402de32c3829f1abd0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e","after":"761072ce9154ac38928c05402de32c3829f1abd0","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/9431bb4cfdfbc4e28e052c52f3b34b74a7d4bb4e...761072ce9154ac38928c05402de32c3829f1abd0","commits":[{"id":"761072ce9154ac38928c05402de32c3829f1abd0","message":"docs(operations): record governance rollout\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/761072ce9154ac38928c05402de32c3829f1abd0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:00:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/governance-repair-2026-09-21.md"]},{"id":"cc6db5096fb620ee9170b04fb3b51ed0431ccccf","message":"fix(governance): finalize gate evidence and API locks\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/cc6db5096fb620ee9170b04fb3b51ed0431ccccf","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T20:56:03-07:00","added":["docs/operations/governance-repair-2026-09-21.md","scripts/lib/own-test-count.mjs","scripts/lib/public-api-digest.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/views/TeamView.tsx","docs/governance-experience.md","docs/migration-playbook.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/observability/package.json","packages/product-runtime/package.json","packages/skill-runtime/package.json","packages/tool-runtime/package.json","reports/baseline.json","scripts/check-all.mjs","scripts/check-docs-truth.mjs","scripts/check-kernel-packages.mjs","scripts/check-operations.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"761072ce9154ac38928c05402de32c3829f1abd0","message":"docs(operations): record governance rollout\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/761072ce9154ac38928c05402de32c3829f1abd0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:00:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/governance-repair-2026-09-21.md"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":94683,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-20T20:59:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789963292
|
1789963461
|
0
|
1789963255
|
1789964501
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24313
|
fix(governance): preserve least-privilege product fix(governance): preserve least-privilege product ACLs...
|
83
|
5
|
governance.yml
|
14
|
5
|
0
|
refs/heads/main
|
a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3c9f6df78f540226554cb4ecc6115741fe478c41","after":"a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/3c9f6df78f540226554cb4ecc6115741fe478c41...a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","commits":[{"id":"a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","message":"fix(governance): preserve least-privilege product ACLs\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:06:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/domain/os-product-layer-blueprint.md","docs/governance-experience.md","scripts/check-os-product-layer.mjs"]},{"id":"6f4f4e321ecefcfb5a7401136f0294caae21da91","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-ai-hr-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-ai-hr-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6f4f4e321ecefcfb5a7401136f0294caae21da91","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","message":"fix(governance): preserve least-privilege product ACLs\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:06:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/domain/os-product-layer-blueprint.md","docs/governance-experience.md","scripts/check-os-product-layer.mjs"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5174,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-15T15:55:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789964503
|
1789964594
|
0
|
1789963588
|
1789964596
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24318
|
chore(reports): 刷新完整治理与运行验收证据
|
76
|
5
|
governance.yml
|
116
|
5
|
0
|
refs/heads/main
|
374f4749d6aeb24a49818a90b603dd60bd5e615a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"761072ce9154ac38928c05402de32c3829f1abd0","after":"374f4749d6aeb24a49818a90b603dd60bd5e615a","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/761072ce9154ac38928c05402de32c3829f1abd0...374f4749d6aeb24a49818a90b603dd60bd5e615a","commits":[{"id":"374f4749d6aeb24a49818a90b603dd60bd5e615a","message":"chore(reports): 刷新完整治理与运行验收证据\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/374f4749d6aeb24a49818a90b603dd60bd5e615a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:27:58-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]}],"total_commits":0,"head_commit":{"id":"374f4749d6aeb24a49818a90b603dd60bd5e615a","message":"chore(reports): 刷新完整治理与运行验收证据\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/374f4749d6aeb24a49818a90b603dd60bd5e615a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-20T21:27:58-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95281,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-21T12:00:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789965707
|
1789965792
|
0
|
1789964887
|
1789965925
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24365
|
feat(facts): deliver HR intents to platform intake
|
83
|
5
|
governance.yml
|
16
|
5
|
0
|
refs/heads/main
|
6bcf19c3b11b5ab30d84994844f1148c57e5c71f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97","after":"6bcf19c3b11b5ab30d84994844f1148c57e5c71f","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/a164f1a4f6d06e3b4d0eff01d536575ebfdd0e97...6bcf19c3b11b5ab30d84994844f1148c57e5c71f","commits":[{"id":"6bcf19c3b11b5ab30d84994844f1148c57e5c71f","message":"feat(facts): deliver HR intents to platform intake\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6bcf19c3b11b5ab30d84994844f1148c57e5c71f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T20:36:55-07:00","added":["apps/api-fastify/prisma/migrations/20260922010000_enterprise_fact_stream_order/migration.sql","apps/api-fastify/src/plugins/enterprise-fact-relay.ts","apps/api-nestjs/prisma/migrations/20260922010000_enterprise_fact_stream_order/migration.sql","apps/api-nestjs/src/events/enterprise-fact-relay-dispatcher.service.ts","docs/deployment-record-2026-09-22-enterprise-fact-relay.md","docs/enterprise-fact-delivery.md","packages/enterprise-fact-publisher/README.md","packages/enterprise-fact-publisher/package.json","packages/enterprise-fact-publisher/src/index.test.ts","packages/enterprise-fact-publisher/src/index.ts","packages/enterprise-fact-publisher/tsconfig.json"],"removed":[],"modified":["apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/enterprise-fact-relay.ts","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/enterprise-fact-relay.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/enterprise-fact-relay.service.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-fact-relay.test.ts","docs/platform-shared-dev.md","packages/contracts/src/enterprise-fact.test.ts","packages/contracts/src/enterprise-fact.ts","pnpm-lock.yaml","turbo.json"]}],"total_commits":0,"head_commit":{"id":"6bcf19c3b11b5ab30d84994844f1148c57e5c71f","message":"feat(facts): deliver HR intents to platform intake\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6bcf19c3b11b5ab30d84994844f1148c57e5c71f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T20:36:55-07:00","added":["apps/api-fastify/prisma/migrations/20260922010000_enterprise_fact_stream_order/migration.sql","apps/api-fastify/src/plugins/enterprise-fact-relay.ts","apps/api-nestjs/prisma/migrations/20260922010000_enterprise_fact_stream_order/migration.sql","apps/api-nestjs/src/events/enterprise-fact-relay-dispatcher.service.ts","docs/deployment-record-2026-09-22-enterprise-fact-relay.md","docs/enterprise-fact-delivery.md","packages/enterprise-fact-publisher/README.md","packages/enterprise-fact-publisher/package.json","packages/enterprise-fact-publisher/src/index.test.ts","packages/enterprise-fact-publisher/src/index.ts","packages/enterprise-fact-publisher/tsconfig.json"],"removed":[],"modified":["apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/enterprise-fact-relay.ts","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/enterprise-fact-relay.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/enterprise-fact-relay.service.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-fact-relay.test.ts","docs/platform-shared-dev.md","packages/contracts/src/enterprise-fact.test.ts","packages/contracts/src/enterprise-fact.ts","pnpm-lock.yaml","turbo.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5310,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-21T12:06:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790135138
|
1790135202
|
0
|
1790134650
|
1790135203
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24367
|
docs(deploy): record fact relay database rollout
|
83
|
5
|
governance.yml
|
18
|
5
|
0
|
refs/heads/main
|
1bb5f6d02b525dc68c53f86d4543d78f6fd1073e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6bcf19c3b11b5ab30d84994844f1148c57e5c71f","after":"1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/6bcf19c3b11b5ab30d84994844f1148c57e5c71f...1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","commits":[{"id":"1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","message":"docs(deploy): record fact relay database rollout\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T20:54:31-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]}],"total_commits":0,"head_commit":{"id":"1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","message":"docs(deploy): record fact relay database rollout\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T20:54:31-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5665,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T11:37:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790136149
|
1790136202
|
0
|
1790135688
|
1790136204
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24369
|
docs: record local HR runtime verification
|
83
|
5
|
governance.yml
|
20
|
5
|
0
|
refs/heads/main
|
53dd8a8a1461b15a5d4f36730755ea0b85380337
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1bb5f6d02b525dc68c53f86d4543d78f6fd1073e","after":"53dd8a8a1461b15a5d4f36730755ea0b85380337","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/1bb5f6d02b525dc68c53f86d4543d78f6fd1073e...53dd8a8a1461b15a5d4f36730755ea0b85380337","commits":[{"id":"53dd8a8a1461b15a5d4f36730755ea0b85380337","message":"docs: record local HR runtime verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/53dd8a8a1461b15a5d4f36730755ea0b85380337","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T22:48:58-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]}],"total_commits":0,"head_commit":{"id":"53dd8a8a1461b15a5d4f36730755ea0b85380337","message":"docs: record local HR runtime verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/53dd8a8a1461b15a5d4f36730755ea0b85380337","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T22:48:58-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5669,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T11:54:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790142554
|
1790142644
|
0
|
1790142553
|
1790142646
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24371
|
docs: record dual-person acceptance runtime
|
83
|
5
|
governance.yml
|
22
|
5
|
0
|
refs/heads/main
|
9472c8c47352b5a4dac19a0d9e027d79f4c13de1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"53dd8a8a1461b15a5d4f36730755ea0b85380337","after":"9472c8c47352b5a4dac19a0d9e027d79f4c13de1","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/53dd8a8a1461b15a5d4f36730755ea0b85380337...9472c8c47352b5a4dac19a0d9e027d79f4c13de1","commits":[{"id":"9472c8c47352b5a4dac19a0d9e027d79f4c13de1","message":"docs: record dual-person acceptance runtime\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/9472c8c47352b5a4dac19a0d9e027d79f4c13de1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T23:01:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]}],"total_commits":0,"head_commit":{"id":"9472c8c47352b5a4dac19a0d9e027d79f4c13de1","message":"docs: record dual-person acceptance runtime\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/9472c8c47352b5a4dac19a0d9e027d79f4c13de1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-22T23:01:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-22-enterprise-fact-relay.md"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5674,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T13:49:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790143297
|
1790143357
|
0
|
1790143296
|
1790143357
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24381
|
fix(facts): repair relay lease migration drift
|
83
|
5
|
governance.yml
|
24
|
5
|
0
|
refs/heads/main
|
7fc8eac049de96e596bb7211c6723eada19b5c6e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9472c8c47352b5a4dac19a0d9e027d79f4c13de1","after":"7fc8eac049de96e596bb7211c6723eada19b5c6e","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/9472c8c47352b5a4dac19a0d9e027d79f4c13de1...7fc8eac049de96e596bb7211c6723eada19b5c6e","commits":[{"id":"7fc8eac049de96e596bb7211c6723eada19b5c6e","message":"fix(facts): repair relay lease migration drift\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/7fc8eac049de96e596bb7211c6723eada19b5c6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T01:11:50-07:00","added":["apps/api-fastify/prisma/migrations/20260922020000_enterprise_fact_relay_lease_repair/migration.sql","apps/api-nestjs/prisma/migrations/20260922020000_enterprise_fact_relay_lease_repair/migration.sql","apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-enterprise-fact-relay-lease-repair.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"7fc8eac049de96e596bb7211c6723eada19b5c6e","message":"fix(facts): repair relay lease migration drift\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/7fc8eac049de96e596bb7211c6723eada19b5c6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T01:11:50-07:00","added":["apps/api-fastify/prisma/migrations/20260922020000_enterprise_fact_relay_lease_repair/migration.sql","apps/api-nestjs/prisma/migrations/20260922020000_enterprise_fact_relay_lease_repair/migration.sql","apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-enterprise-fact-relay-lease-repair.md"],"removed":[],"modified":[]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5679,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T14:01:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790158974
|
1790159030
|
0
|
1790158946
|
1790159031
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24383
|
fix(employment): separate business and Fact versio fix(employment): separate business and Fact versions...
|
76
|
5
|
governance.yml
|
118
|
5
|
0
|
refs/heads/main
|
5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"374f4749d6aeb24a49818a90b603dd60bd5e615a","after":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/374f4749d6aeb24a49818a90b603dd60bd5e615a...5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","commits":[{"id":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","message":"fix(employment): separate business and Fact versions\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T03:19:06-07:00","added":["apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts","docs/operations/employment-fact-real-delivery-acceptance-2026-09-23.md"],"removed":[],"modified":["packages/contracts/src/employment-projection.test.ts","packages/contracts/src/employment-projection.ts"]}],"total_commits":0,"head_commit":{"id":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","message":"fix(employment): separate business and Fact versions\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T03:19:06-07:00","added":["apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts","docs/operations/employment-fact-real-delivery-acceptance-2026-09-23.md"],"removed":[],"modified":["packages/contracts/src/employment-projection.test.ts","packages/contracts/src/employment-projection.ts"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95407,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-21T12:28:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790159046
|
1790159062
|
0
|
1790158955
|
1790159089
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24385
|
feat(product): upgrade juhai hr to 0.19.2
|
76
|
5
|
governance.yml
|
120
|
5
|
0
|
refs/heads/main
|
36fa967e51ba51623084fcf5a1a864bc6d313182
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","after":"36fa967e51ba51623084fcf5a1a864bc6d313182","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1...36fa967e51ba51623084fcf5a1a864bc6d313182","commits":[{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95423,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T18:22:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790161091
|
1790161181
|
0
|
1790161089
|
1790162302
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24388
|
test(governance): refresh release and runtime evid test(governance): refresh release and runtime evidence...
|
83
|
5
|
governance.yml
|
26
|
5
|
0
|
refs/heads/main
|
3828481b87e0bdd3010cefb5b098be2a548dc072
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7fc8eac049de96e596bb7211c6723eada19b5c6e","after":"3828481b87e0bdd3010cefb5b098be2a548dc072","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/7fc8eac049de96e596bb7211c6723eada19b5c6e...3828481b87e0bdd3010cefb5b098be2a548dc072","commits":[{"id":"3828481b87e0bdd3010cefb5b098be2a548dc072","message":"test(governance): refresh release and runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3828481b87e0bdd3010cefb5b098be2a548dc072","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T04:41:15-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-os-product-layer.mjs","scripts/governance-report.mjs"]},{"id":"a60edd33a5ea2c056c25809282d57ff326eb52ab","message":"feat(agent): connect HR product to OS control plane\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a60edd33a5ea2c056c25809282d57ff326eb52ab","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T04:21:43-07:00","added":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/transfer-service.d.mts","products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/bundle-index.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/distribution.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/manifest.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","docs/domain/os-product-layer-blueprint.md","docs/domain/owner-matrix.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-workbench.mjs","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-privacy.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-sql-runtime.rejected.json","reports/os-product-upgrade-candidate.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/audit-os-product-rebase-decision.mjs","scripts/audit-os-product-upgrade-candidate.mjs","scripts/check-os-product-host-runtime.mjs","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs","scripts/check-os-product-registration.mjs","scripts/lib/os-product-migration-governance.mjs","scripts/prepare-os-product-registration-candidate.mjs","scripts/serve-os-product-host.mjs"]}],"total_commits":0,"head_commit":{"id":"3828481b87e0bdd3010cefb5b098be2a548dc072","message":"test(governance): refresh release and runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3828481b87e0bdd3010cefb5b098be2a548dc072","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T04:41:15-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-os-product-layer.mjs","scripts/governance-report.mjs"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5693,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T18:22:26+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790163790
|
1790163845
|
0
|
1790163789
|
1790163847
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24390
|
chore(reports): record clean product acceptance ev chore(reports): record clean product acceptance evidence...
|
76
|
5
|
governance.yml
|
122
|
5
|
0
|
refs/heads/main
|
2e4dd56fc3955036939f7b88534761b69d535e6b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"36fa967e51ba51623084fcf5a1a864bc6d313182","after":"2e4dd56fc3955036939f7b88534761b69d535e6b","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/36fa967e51ba51623084fcf5a1a864bc6d313182...2e4dd56fc3955036939f7b88534761b69d535e6b","commits":[{"id":"2e4dd56fc3955036939f7b88534761b69d535e6b","message":"chore(reports): record clean product acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2e4dd56fc3955036939f7b88534761b69d535e6b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:00:30-07:00","added":[],"removed":[],"modified":["reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"2e4dd56fc3955036939f7b88534761b69d535e6b","message":"chore(reports): record clean product acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2e4dd56fc3955036939f7b88534761b69d535e6b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:00:30-07:00","added":[],"removed":[],"modified":["reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95564,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T18:58:10+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790164843
|
1790164852
|
0
|
1790164843
|
1790164866
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24393
|
feat(notification): route deliveries through platf feat(notification): route deliveries through platform...
|
82
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
7e2036be8923eff41481605454411a2291d5cc7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"601955837eb8caa25a91a2c2da96d9a06f8ea455","after":"7e2036be8923eff41481605454411a2291d5cc7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/601955837eb8caa25a91a2c2da96d9a06f8ea455...7e2036be8923eff41481605454411a2291d5cc7a","commits":[{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"43c911bff4123b2a3d62b2845249caec3b3235db","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-ai-work-order-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-ai-work-order-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/43c911bff4123b2a3d62b2845249caec3b3235db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1970,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-09-19T07:07:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790167643
|
1790167734
|
0
|
1790167548
|
1790167736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24396
|
fix(product): restore HR host workspace compositio fix(product): restore HR host workspace composition...
|
83
|
5
|
governance.yml
|
28
|
5
|
0
|
refs/heads/main
|
ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3828481b87e0bdd3010cefb5b098be2a548dc072","after":"ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/3828481b87e0bdd3010cefb5b098be2a548dc072...ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","commits":[{"id":"ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","message":"fix(product): restore HR host workspace composition\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:52:55-07:00","added":["reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/bundle-index.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/distribution.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/manifest.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration.rejected.json","reports/os-product-sql-runtime.latest.json","reports/os-product-upgrade-candidate.latest.json","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs"]}],"total_commits":0,"head_commit":{"id":"ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","message":"fix(product): restore HR host workspace composition\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:52:55-07:00","added":["reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/bundle-index.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/distribution.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/manifest.json","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/b0367788d216dbecc5f5ccc34142aed70afd89a1d9339cef70a495bd68898ffe/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration.rejected.json","reports/os-product-sql-runtime.latest.json","reports/os-product-upgrade-candidate.latest.json","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":6365,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T19:43:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790168695
|
1790168752
|
0
|
1790167985
|
1790168754
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24398
|
fix(product): upgrade juhai hr to 0.19.3
|
76
|
5
|
governance.yml
|
124
|
5
|
0
|
refs/heads/main
|
e9988b81fd6b438e28ca6164eb0b24d05cb244a8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e4dd56fc3955036939f7b88534761b69d535e6b","after":"e9988b81fd6b438e28ca6164eb0b24d05cb244a8","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/2e4dd56fc3955036939f7b88534761b69d535e6b...e9988b81fd6b438e28ca6164eb0b24d05cb244a8","commits":[{"id":"e9988b81fd6b438e28ca6164eb0b24d05cb244a8","message":"fix(product): upgrade juhai hr to 0.19.3\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e9988b81fd6b438e28ca6164eb0b24d05cb244a8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:58:15-07:00","added":[],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"e9988b81fd6b438e28ca6164eb0b24d05cb244a8","message":"fix(product): upgrade juhai hr to 0.19.3\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e9988b81fd6b438e28ca6164eb0b24d05cb244a8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:58:15-07:00","added":[],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95586,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T20:00:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790168768
|
1790168777
|
0
|
1790168309
|
1790168841
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24404
|
feat(notification): add platform delivery consumer
|
81
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
066afd0a04f4765ee9a8aefae9f2eb8272bb88b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","after":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd...066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","commits":[{"id":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T06:19:55-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"1cebe527600912193f7e672fb478ae39a84db7ae","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-after-sales-service-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-after-sales-service-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/1cebe527600912193f7e672fb478ae39a84db7ae","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T06:19:55-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3377,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-09-19T07:07:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790170637
|
1790170645
|
0
|
1790170042
|
1790170647
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24408
|
docs(notification): record real platform acceptanc docs(notification): record real platform acceptance...
|
81
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
3ece79dcc83c32531df95129cd9d687bb66fe66b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","after":"3ece79dcc83c32531df95129cd9d687bb66fe66b","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2...3ece79dcc83c32531df95129cd9d687bb66fe66b","commits":[{"id":"3ece79dcc83c32531df95129cd9d687bb66fe66b","message":"docs(notification): record real platform acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3ece79dcc83c32531df95129cd9d687bb66fe66b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:00:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]}],"total_commits":0,"head_commit":{"id":"3ece79dcc83c32531df95129cd9d687bb66fe66b","message":"docs(notification): record real platform acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3ece79dcc83c32531df95129cd9d687bb66fe66b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:00:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3409,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-09-23T21:27:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790172106
|
1790172115
|
0
|
1790172104
|
1790172115
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24410
|
fix(governance): finalize OS registration evidence
|
83
|
5
|
governance.yml
|
30
|
5
|
0
|
refs/heads/main
|
bb49b0dda626556f45a55c113fedb62dce8e2505
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c","after":"bb49b0dda626556f45a55c113fedb62dce8e2505","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/ae2ceea29ac0b40a2a74c5c1106e3783a350ea6c...bb49b0dda626556f45a55c113fedb62dce8e2505","commits":[{"id":"bb49b0dda626556f45a55c113fedb62dce8e2505","message":"fix(governance): finalize OS registration evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/bb49b0dda626556f45a55c113fedb62dce8e2505","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:14:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-upgrade-candidate.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/audit-os-product-release-readiness.mjs","scripts/check-outbox-multi-instance.mjs"]}],"total_commits":0,"head_commit":{"id":"bb49b0dda626556f45a55c113fedb62dce8e2505","message":"fix(governance): finalize OS registration evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/bb49b0dda626556f45a55c113fedb62dce8e2505","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:14:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-upgrade-candidate.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/audit-os-product-release-readiness.mjs","scripts/check-outbox-multi-instance.mjs"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":6760,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T20:53:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790172902
|
1790172959
|
0
|
1790172902
|
1790172960
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24412
|
docs(notification): bind final acceptance evidence
|
81
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
f9b7f72b3d2b5f187feed06c1b681fefb6466ab7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3ece79dcc83c32531df95129cd9d687bb66fe66b","after":"f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/3ece79dcc83c32531df95129cd9d687bb66fe66b...f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","commits":[{"id":"f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","message":"docs(notification): bind final acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:15:08-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]}],"total_commits":0,"head_commit":{"id":"f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","message":"docs(notification): bind final acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/f9b7f72b3d2b5f187feed06c1b681fefb6466ab7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:15:08-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3412,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-09-23T22:01:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790172975
|
1790172982
|
0
|
1790172929
|
1790172984
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24415
|
chore(reports): record juhai hr 0.19.3 evidence
|
76
|
5
|
governance.yml
|
126
|
5
|
0
|
refs/heads/main
|
0174a1a708bf9d52676fc92db9f4c552af22f50a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9988b81fd6b438e28ca6164eb0b24d05cb244a8","after":"0174a1a708bf9d52676fc92db9f4c552af22f50a","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/e9988b81fd6b438e28ca6164eb0b24d05cb244a8...0174a1a708bf9d52676fc92db9f4c552af22f50a","commits":[{"id":"0174a1a708bf9d52676fc92db9f4c552af22f50a","message":"chore(reports): record juhai hr 0.19.3 evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0174a1a708bf9d52676fc92db9f4c552af22f50a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:25:41-07:00","added":[],"removed":[],"modified":["reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"0174a1a708bf9d52676fc92db9f4c552af22f50a","message":"chore(reports): record juhai hr 0.19.3 evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0174a1a708bf9d52676fc92db9f4c552af22f50a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:25:41-07:00","added":[],"removed":[],"modified":["reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95653,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T20:58:29+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790173551
|
1790173560
|
0
|
1790173549
|
1790173575
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24419
|
fix(product): align host web extension types
|
83
|
5
|
governance.yml
|
32
|
5
|
0
|
refs/heads/main
|
8771ccea7f11bfccd375f0da3ed23cee22f72395
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bb49b0dda626556f45a55c113fedb62dce8e2505","after":"8771ccea7f11bfccd375f0da3ed23cee22f72395","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/bb49b0dda626556f45a55c113fedb62dce8e2505...8771ccea7f11bfccd375f0da3ed23cee22f72395","commits":[{"id":"8771ccea7f11bfccd375f0da3ed23cee22f72395","message":"fix(product): align host web extension types\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/8771ccea7f11bfccd375f0da3ed23cee22f72395","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:44:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.d.mts"]}],"total_commits":0,"head_commit":{"id":"8771ccea7f11bfccd375f0da3ed23cee22f72395","message":"fix(product): align host web extension types\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/8771ccea7f11bfccd375f0da3ed23cee22f72395","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:44:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.d.mts"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":7189,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T22:15:02+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790174696
|
1790175729
|
0
|
1790174696
|
1790175731
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24422
|
feat(notification): add platform delivery consumer
|
72
|
5
|
governance.yml
|
13
|
5
|
0
|
refs/heads/main
|
3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6908c19f9faf3b006d73054657b97c6cb8f945d9","after":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/6908c19f9faf3b006d73054657b97c6cb8f945d9...3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","commits":[{"id":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:56:12-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md","packages/notification-delivery/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/events/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"8cae1a58031ddc85848d02cff06cfd4d11083098","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-quotation-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-quotation-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/8cae1a58031ddc85848d02cff06cfd4d11083098","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:32-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T07:56:12-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md","packages/notification-delivery/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/events/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":35859,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":11,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-09-19T07:07:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790175940
|
1790175971
|
0
|
1790175423
|
1790175971
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24423
|
fix(product): register juhai hr 0.19.4
|
76
|
5
|
governance.yml
|
128
|
5
|
0
|
refs/heads/main
|
e12d0f25ca07d2a70a7bc7520b43a311940d35d5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0174a1a708bf9d52676fc92db9f4c552af22f50a","after":"e12d0f25ca07d2a70a7bc7520b43a311940d35d5","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/0174a1a708bf9d52676fc92db9f4c552af22f50a...e12d0f25ca07d2a70a7bc7520b43a311940d35d5","commits":[{"id":"e12d0f25ca07d2a70a7bc7520b43a311940d35d5","message":"fix(product): register juhai hr 0.19.4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e12d0f25ca07d2a70a7bc7520b43a311940d35d5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:00:41-07:00","added":[],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.d.mts","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"e12d0f25ca07d2a70a7bc7520b43a311940d35d5","message":"fix(product): register juhai hr 0.19.4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e12d0f25ca07d2a70a7bc7520b43a311940d35d5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:00:41-07:00","added":[],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/src/web-workspace.d.mts","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95675,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T22:25:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790175971
|
1790175980
|
0
|
1790175648
|
1790176006
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24425
|
chore(product): record juhai hr 0.19.4 registratio chore(product): record juhai hr 0.19.4 registration...
|
83
|
5
|
governance.yml
|
34
|
5
|
0
|
refs/heads/main
|
d8d6f4ba2e6f77ea62dd525137af892d016b8551
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8771ccea7f11bfccd375f0da3ed23cee22f72395","after":"d8d6f4ba2e6f77ea62dd525137af892d016b8551","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/8771ccea7f11bfccd375f0da3ed23cee22f72395...d8d6f4ba2e6f77ea62dd525137af892d016b8551","commits":[{"id":"d8d6f4ba2e6f77ea62dd525137af892d016b8551","message":"chore(product): record juhai hr 0.19.4 registration\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/d8d6f4ba2e6f77ea62dd525137af892d016b8551","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:11:34-07:00","added":["reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/bundle-index.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/distribution.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/manifest.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":["CLAUDE.md","docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/readiness.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-registration.rejected.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-upgrade-candidate.latest.json"]}],"total_commits":0,"head_commit":{"id":"d8d6f4ba2e6f77ea62dd525137af892d016b8551","message":"chore(product): record juhai hr 0.19.4 registration\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/d8d6f4ba2e6f77ea62dd525137af892d016b8551","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:11:34-07:00","added":["reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/bundle-index.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/distribution.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/manifest.json","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/0c7f655069e3b7ca0db8ad61a015548509974d6bad022ecf6172aea43a4f1d62/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":["CLAUDE.md","docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","docs/domain/os-product-layer-blueprint.md","products/juhai.hr/readiness.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-registration.rejected.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-upgrade-candidate.latest.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":7293,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T22:44:57+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790176926
|
1790177047
|
0
|
1790176297
|
1790177048
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24427
|
docs(deploy): record juhai hr 0.19.4 cutover
|
83
|
5
|
governance.yml
|
36
|
5
|
0
|
refs/heads/main
|
d338bf17fb78f3f187688413c617d03cfe737750
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d8d6f4ba2e6f77ea62dd525137af892d016b8551","after":"d338bf17fb78f3f187688413c617d03cfe737750","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/d8d6f4ba2e6f77ea62dd525137af892d016b8551...d338bf17fb78f3f187688413c617d03cfe737750","commits":[{"id":"d338bf17fb78f3f187688413c617d03cfe737750","message":"docs(deploy): record juhai hr 0.19.4 cutover\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/d338bf17fb78f3f187688413c617d03cfe737750","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:28:05-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md"]}],"total_commits":0,"head_commit":{"id":"d338bf17fb78f3f187688413c617d03cfe737750","message":"docs(deploy): record juhai hr 0.19.4 cutover\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/d338bf17fb78f3f187688413c617d03cfe737750","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:28:05-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":7681,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T23:11:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790177290
|
1790177366
|
0
|
1790177289
|
1790177366
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24429
|
chore(reports): record 0.19.4 final acceptance
|
83
|
5
|
governance.yml
|
38
|
5
|
0
|
refs/heads/main
|
ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d338bf17fb78f3f187688413c617d03cfe737750","after":"ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/d338bf17fb78f3f187688413c617d03cfe737750...ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","commits":[{"id":"ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","message":"chore(reports): record 0.19.4 final acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:37:24-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","message":"chore(reports): record 0.19.4 final acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:37:24-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":7686,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T23:28:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1790177855
|
1790177904
|
0
|
1790177854
|
1790177904
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24431
|
chore(reports): bind final governance provenance
|
83
|
5
|
governance.yml
|
40
|
5
|
0
|
refs/heads/main
|
ac658a37fe9dfe26c2a382c16f2f2ba76d17b453
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd","after":"ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/ade7e0c56c80d6d58fff7f4f3c7878fb8dc67bdd...ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","commits":[{"id":"ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","message":"chore(reports): bind final governance provenance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:38:06-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-layer.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","message":"chore(reports): bind final governance provenance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/ac658a37fe9dfe26c2a382c16f2f2ba76d17b453","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T08:38:06-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-layer.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":7731,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T23:37:35+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790177921
|
1790177977
|
0
|
1790177904
|
1790177979
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|