|
23465
|
feat: ship quotation fulfillment and quote center feat: ship quotation fulfillment and quote center parity...
|
72
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd4b413c9f284e33472f905c047eb4bbb99b2717","after":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/bd4b413c9f284e33472f905c047eb4bbb99b2717...fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","commits":[{"id":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","message":"feat: ship quotation fulfillment and quote center parity\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T20:56:44-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".dockerignore","apps/api-fastify/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-fastify/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-fastify/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-fastify/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-fastify/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-fastify/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/routes/fulfillment.ts","apps/api-nestjs/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-nestjs/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-nestjs/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-nestjs/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-nestjs/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-nestjs/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-nestjs/src/fulfillment/fulfillment.controller.ts","apps/api-nestjs/src/fulfillment/fulfillment.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/quotation/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/scripts/build-mobile.mjs","apps/web/src/app/fulfillment/[acceptanceToken]/page.tsx","apps/web/src/app/manifest.ts","apps/web/src/components/BusinessTraceTimeline.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/api/fulfillment-api.ts","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/components/PublicFulfillmentView.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","deploy/vm/nginx.conf","design-qa.md","docs/deployment/local-vm.md","docs/deployment/mobile-app.md","docs/domain/business-event-trace-blueprint.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/product-accessories-inventory-blueprint.md","docs/domain/role-permission-blueprint.md","packages/contracts/src/fulfillment.ts","reports/role-permissions.latest.json","scripts/check-role-permissions.mjs","scripts/vm-deploy.sh","sites/haizan-quote-center/.gitignore","sites/haizan-quote-center/.npmrc","sites/haizan-quote-center/.openai/hosting.json","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-001175b1.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-52306abf.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-875ccdd4.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-98bbbccb.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-ff2310f5.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/style.css","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-013b2f2f.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-0638449e.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44745446.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44e03052.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-971fb274.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-f6b33328.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/style.css","sites/haizan-quote-center/README.md","sites/haizan-quote-center/SYNC_SOURCE.md","sites/haizan-quote-center/app/admin-client.tsx","sites/haizan-quote-center/app/api/bootstrap/route.ts","sites/haizan-quote-center/app/api/contract-templates/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/approve/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/revise/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/sign/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/submit/route.ts","sites/haizan-quote-center/app/api/contracts/route.ts","sites/haizan-quote-center/app/api/images/[...key]/route.ts","sites/haizan-quote-center/app/api/operations/action/route.ts","sites/haizan-quote-center/app/api/operations/route.ts","sites/haizan-quote-center/app/api/orders/[id]/payments/route.ts","sites/haizan-quote-center/app/api/orders/[id]/steps/[stepId]/route.ts","sites/haizan-quote-center/app/api/orders/route.ts","sites/haizan-quote-center/app/api/payment-proofs/[...key]/route.ts","sites/haizan-quote-center/app/api/payments/[id]/review/route.ts","sites/haizan-quote-center/app/api/products/[id]/route.ts","sites/haizan-quote-center/app/api/products/image/route.ts","sites/haizan-quote-center/app/api/products/route.ts","sites/haizan-quote-center/app/api/public/catalog/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/sign/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/payments/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/route.ts","sites/haizan-quote-center/app/api/public/quick-quotes/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/confirm/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/requests/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/approve/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/claim/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/submit/route.ts","sites/haizan-quote-center/app/api/requests/[id]/review/route.ts","sites/haizan-quote-center/app/c/[token]/contract-public-client.tsx","sites/haizan-quote-center/app/c/[token]/page.tsx","sites/haizan-quote-center/app/catalog/catalog-client.tsx","sites/haizan-quote-center/app/catalog/page.tsx","sites/haizan-quote-center/app/chatgpt-auth.ts","sites/haizan-quote-center/app/contract-center.tsx","sites/haizan-quote-center/app/globals.css","sites/haizan-quote-center/app/layout.tsx","sites/haizan-quote-center/app/o/[token]/order-public-client.tsx","sites/haizan-quote-center/app/o/[token]/page.tsx","sites/haizan-quote-center/app/order-center.tsx","sites/haizan-quote-center/app/page.tsx","sites/haizan-quote-center/app/q/[token]/page.tsx","sites/haizan-quote-center/app/q/[token]/quote-public-client.tsx","sites/haizan-quote-center/app/supply-chain-center.tsx","sites/haizan-quote-center/db/contracts.ts","sites/haizan-quote-center/db/index.ts","sites/haizan-quote-center/db/operations.ts","sites/haizan-quote-center/db/orders.ts","sites/haizan-quote-center/db/queries.ts","sites/haizan-quote-center/db/runtime.ts","sites/haizan-quote-center/db/schema.ts","sites/haizan-quote-center/design-qa.md","sites/haizan-quote-center/drizzle.config.ts","sites/haizan-quote-center/drizzle/0000_lovely_captain_cross.sql","sites/haizan-quote-center/drizzle/0001_stiff_goblin_queen.sql","sites/haizan-quote-center/drizzle/0002_colossal_dust.sql","sites/haizan-quote-center/drizzle/0003_absent_mandarin.sql","sites/haizan-quote-center/drizzle/0004_wealthy_pretty_boy.sql","sites/haizan-quote-center/drizzle/0005_stale_polaris.sql","sites/haizan-quote-center/drizzle/meta/0000_snapshot.json","sites/haizan-quote-center/drizzle/meta/0001_snapshot.json","sites/haizan-quote-center/drizzle/meta/0002_snapshot.json","sites/haizan-quote-center/drizzle/meta/0003_snapshot.json","sites/haizan-quote-center/drizzle/meta/0004_snapshot.json","sites/haizan-quote-center/drizzle/meta/0005_snapshot.json","sites/haizan-quote-center/drizzle/meta/_journal.json","sites/haizan-quote-center/eslint.config.mjs","sites/haizan-quote-center/examples/d1/app/api/notes/route.ts","sites/haizan-quote-center/examples/d1/db/schema.ts","sites/haizan-quote-center/next.config.ts","sites/haizan-quote-center/package-lock.json","sites/haizan-quote-center/package.json","sites/haizan-quote-center/postcss.config.mjs","sites/haizan-quote-center/public/favicon.svg","sites/haizan-quote-center/public/file.svg","sites/haizan-quote-center/public/globe.svg","sites/haizan-quote-center/public/window.svg","sites/haizan-quote-center/qa/comparison-source-left-local-right.png","sites/haizan-quote-center/qa/implementation-local-1280x720.png","sites/haizan-quote-center/qa/implementation-local-mobile-390x844.png","sites/haizan-quote-center/qa/source-online-1280x720.png","sites/haizan-quote-center/scripts/build-verified.sh","sites/haizan-quote-center/scripts/install-ci.sh","sites/haizan-quote-center/scripts/sites-env.sh","sites/haizan-quote-center/scripts/validate-artifact.sh","sites/haizan-quote-center/tests/rendered-html.test.mjs","sites/haizan-quote-center/tsconfig.json","sites/haizan-quote-center/vite.config.ts","sites/haizan-quote-center/worker-configuration.d.ts","sites/haizan-quote-center/worker/index.ts"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/store/realtime.ts","apps/web/tsconfig.json","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","message":"feat: ship quotation fulfillment and quote center parity\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T20:56:44-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".dockerignore","apps/api-fastify/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-fastify/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-fastify/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-fastify/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-fastify/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-fastify/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/routes/fulfillment.ts","apps/api-nestjs/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-nestjs/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-nestjs/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-nestjs/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-nestjs/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-nestjs/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-nestjs/src/fulfillment/fulfillment.controller.ts","apps/api-nestjs/src/fulfillment/fulfillment.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/quotation/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/scripts/build-mobile.mjs","apps/web/src/app/fulfillment/[acceptanceToken]/page.tsx","apps/web/src/app/manifest.ts","apps/web/src/components/BusinessTraceTimeline.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/api/fulfillment-api.ts","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/components/PublicFulfillmentView.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","deploy/vm/nginx.conf","design-qa.md","docs/deployment/local-vm.md","docs/deployment/mobile-app.md","docs/domain/business-event-trace-blueprint.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/product-accessories-inventory-blueprint.md","docs/domain/role-permission-blueprint.md","packages/contracts/src/fulfillment.ts","reports/role-permissions.latest.json","scripts/check-role-permissions.mjs","scripts/vm-deploy.sh","sites/haizan-quote-center/.gitignore","sites/haizan-quote-center/.npmrc","sites/haizan-quote-center/.openai/hosting.json","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-001175b1.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-52306abf.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-875ccdd4.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-98bbbccb.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-ff2310f5.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/style.css","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-013b2f2f.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-0638449e.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44745446.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44e03052.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-971fb274.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-f6b33328.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/style.css","sites/haizan-quote-center/README.md","sites/haizan-quote-center/SYNC_SOURCE.md","sites/haizan-quote-center/app/admin-client.tsx","sites/haizan-quote-center/app/api/bootstrap/route.ts","sites/haizan-quote-center/app/api/contract-templates/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/approve/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/revise/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/sign/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/submit/route.ts","sites/haizan-quote-center/app/api/contracts/route.ts","sites/haizan-quote-center/app/api/images/[...key]/route.ts","sites/haizan-quote-center/app/api/operations/action/route.ts","sites/haizan-quote-center/app/api/operations/route.ts","sites/haizan-quote-center/app/api/orders/[id]/payments/route.ts","sites/haizan-quote-center/app/api/orders/[id]/steps/[stepId]/route.ts","sites/haizan-quote-center/app/api/orders/route.ts","sites/haizan-quote-center/app/api/payment-proofs/[...key]/route.ts","sites/haizan-quote-center/app/api/payments/[id]/review/route.ts","sites/haizan-quote-center/app/api/products/[id]/route.ts","sites/haizan-quote-center/app/api/products/image/route.ts","sites/haizan-quote-center/app/api/products/route.ts","sites/haizan-quote-center/app/api/public/catalog/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/sign/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/payments/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/route.ts","sites/haizan-quote-center/app/api/public/quick-quotes/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/confirm/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/requests/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/approve/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/claim/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/submit/route.ts","sites/haizan-quote-center/app/api/requests/[id]/review/route.ts","sites/haizan-quote-center/app/c/[token]/contract-public-client.tsx","sites/haizan-quote-center/app/c/[token]/page.tsx","sites/haizan-quote-center/app/catalog/catalog-client.tsx","sites/haizan-quote-center/app/catalog/page.tsx","sites/haizan-quote-center/app/chatgpt-auth.ts","sites/haizan-quote-center/app/contract-center.tsx","sites/haizan-quote-center/app/globals.css","sites/haizan-quote-center/app/layout.tsx","sites/haizan-quote-center/app/o/[token]/order-public-client.tsx","sites/haizan-quote-center/app/o/[token]/page.tsx","sites/haizan-quote-center/app/order-center.tsx","sites/haizan-quote-center/app/page.tsx","sites/haizan-quote-center/app/q/[token]/page.tsx","sites/haizan-quote-center/app/q/[token]/quote-public-client.tsx","sites/haizan-quote-center/app/supply-chain-center.tsx","sites/haizan-quote-center/db/contracts.ts","sites/haizan-quote-center/db/index.ts","sites/haizan-quote-center/db/operations.ts","sites/haizan-quote-center/db/orders.ts","sites/haizan-quote-center/db/queries.ts","sites/haizan-quote-center/db/runtime.ts","sites/haizan-quote-center/db/schema.ts","sites/haizan-quote-center/design-qa.md","sites/haizan-quote-center/drizzle.config.ts","sites/haizan-quote-center/drizzle/0000_lovely_captain_cross.sql","sites/haizan-quote-center/drizzle/0001_stiff_goblin_queen.sql","sites/haizan-quote-center/drizzle/0002_colossal_dust.sql","sites/haizan-quote-center/drizzle/0003_absent_mandarin.sql","sites/haizan-quote-center/drizzle/0004_wealthy_pretty_boy.sql","sites/haizan-quote-center/drizzle/0005_stale_polaris.sql","sites/haizan-quote-center/drizzle/meta/0000_snapshot.json","sites/haizan-quote-center/drizzle/meta/0001_snapshot.json","sites/haizan-quote-center/drizzle/meta/0002_snapshot.json","sites/haizan-quote-center/drizzle/meta/0003_snapshot.json","sites/haizan-quote-center/drizzle/meta/0004_snapshot.json","sites/haizan-quote-center/drizzle/meta/0005_snapshot.json","sites/haizan-quote-center/drizzle/meta/_journal.json","sites/haizan-quote-center/eslint.config.mjs","sites/haizan-quote-center/examples/d1/app/api/notes/route.ts","sites/haizan-quote-center/examples/d1/db/schema.ts","sites/haizan-quote-center/next.config.ts","sites/haizan-quote-center/package-lock.json","sites/haizan-quote-center/package.json","sites/haizan-quote-center/postcss.config.mjs","sites/haizan-quote-center/public/favicon.svg","sites/haizan-quote-center/public/file.svg","sites/haizan-quote-center/public/globe.svg","sites/haizan-quote-center/public/window.svg","sites/haizan-quote-center/qa/comparison-source-left-local-right.png","sites/haizan-quote-center/qa/implementation-local-1280x720.png","sites/haizan-quote-center/qa/implementation-local-mobile-390x844.png","sites/haizan-quote-center/qa/source-online-1280x720.png","sites/haizan-quote-center/scripts/build-verified.sh","sites/haizan-quote-center/scripts/install-ci.sh","sites/haizan-quote-center/scripts/sites-env.sh","sites/haizan-quote-center/scripts/validate-artifact.sh","sites/haizan-quote-center/tests/rendered-html.test.mjs","sites/haizan-quote-center/tsconfig.json","sites/haizan-quote-center/vite.config.ts","sites/haizan-quote-center/worker-configuration.d.ts","sites/haizan-quote-center/worker/index.ts"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/store/realtime.ts","apps/web/tsconfig.json","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"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":614,"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":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-07-31T03:51:09+08:00","updated_at":"2026-07-31T04:04:42+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
|
8
|
1785470840
|
1785470910
|
0
|
1785470839
|
1785470910
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23490
|
chore(reports): 刷新治理证据,绑定提交 b0d8e83
|
74
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
6b3be1dafc25b3d82703595f7542769eae6b7744
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"66f0513cfb65a0eb27fe77ff8b5bd158c0901623","after":"6b3be1dafc25b3d82703595f7542769eae6b7744","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/66f0513cfb65a0eb27fe77ff8b5bd158c0901623...6b3be1dafc25b3d82703595f7542769eae6b7744","commits":[{"id":"6b3be1dafc25b3d82703595f7542769eae6b7744","message":"chore(reports): 刷新治理证据,绑定提交 b0d8e83\n\n三级门禁在 b0d8e83 上重跑后的报告:\n- pnpm check exit 0(16 项静态门禁)\n- check:runtime passed:380 tests / 0 failures\n- check:ui passed:14 用例 / 0 失败\n\n诚实标注:provenance 的 worktreeDirty 仍为 true。原因不是本提交遗漏了文件,\n而是**同一工作区存在并发会话**,其在制品(CLAUDE.md、两端 approval-tickets.service、\nweb/src/lib/types.ts、check-order-concurrency-guard.mjs、check-owner-matrix.mjs)\n在重跑期间处于未提交状态,已刻意不纳入本提交。\n\n因此本组报告只能宣称「本地工作区(含上述并发在制品)在 2026-08-17 通过三级门禁」,\n不得外推为 clean checkout 通过、远端已发布或 CI 已拦截。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/6b3be1dafc25b3d82703595f7542769eae6b7744","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:16:17-07:00","added":["reports/outbox-lease.latest.json","reports/partner-truth.latest.json","reports/security-boundary.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/owner-matrix.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"b0d8e837396f6e0f15c0ceeb46b236f14f40f5c9","message":"feat: 合并提交长期未落库的批次——Finance Phase A、安全边界、outbox 租约与 crew 雇佣纵切\n\n本次是一次「补提交」:工作区此前累积了大量从未进入任何提交的成果,\n其中包含三个只存在于本地的门禁脚本(partner-truth / security-boundary /\noutbox-lease),clean checkout 根本跑不出当前的治理结论。一并落库。\n\n主要内容\n- Finance 对账 Phase A:12 个 model、双后端服务与 worker、/finance 工作面与 e2e\n- 应用安全边界(C21):显式 demo/signed 分界、principal 取 tenant/actor、\n 治理动作 RBAC、支付 webhook raw-body HMAC\n- Outbox 多实例租约(C22):CTE + FOR UPDATE SKIP LOCKED 原子领取、行锁 fencing、\n 租约过期崩溃恢复\n- crew 雇佣纵切(L7,新):crewEngagementMachine 落 contracts 单源,双后端对等写链\n (updateMany + stage/version 双前置条件,0 行即 409),两端迁移逐字一致,\n /team 的 employment 由写死的 UNKNOWN 变为 crew_engagements 真实阶段\n- 新门禁:check:partner-truth / check:security-boundary / check:outbox-lease /\n check:owner-matrix,并把 crew 写链接入 check:concurrency-guard(20→22 条)\n- a11y 与 Tailwind token 修复及其静默失效门禁\n\ncrew 纵切的两个设计要点\n- 无行即未雇佣,不设 NOT_HIRED 状态(与 TrustState 缺行=UNCONFIGURED 同构)\n- 实习期强制人审、转正后才准进入信任爬坡放行:商业分层直接就是授权分层,\n 实习期本质上是在攒 approval.decided 样本,转正把信任兑现为自治\n- PLANNED 的 SKU 不可雇佣,避免造出「实习中却没有任何工作面」的假雇佣事实\n\n验收(本地 dirty 工作区,2026-08-17;不得外推为远端已发布或生产就绪)\n- pnpm check exit 0(16 项静态门禁;新增并发写链守卫已做负向测试,确认会红)\n- check:runtime passed:380 tests / 0 failures(地板 355→380)\n- check:ui passed:14 用例 / 0 失败(地板 13→14)\n\n按 CLAUDE.md 提交纪律,baseline.json 的地板与支撑它的测试文件在同一提交内。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b0d8e837396f6e0f15c0ceeb46b236f14f40f5c9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:09:30-07:00","added":["apps/api-fastify/prisma/migrations/20260814233000_add_finance_reconciliation_phase_a/migration.sql","apps/api-fastify/prisma/migrations/20260815033000_add_outbox_dispatch_leases/migration.sql","apps/api-fastify/prisma/migrations/20260817090000_add_crew_engagement/migration.sql","apps/api-fastify/src/modules/crew/crew.service.ts","apps/api-fastify/src/modules/finance/errors.ts","apps/api-fastify/src/modules/finance/finance-jobs.service.ts","apps/api-fastify/src/modules/finance/finance-jobs.types.ts","apps/api-fastify/src/modules/finance/finance-json.ts","apps/api-fastify/src/modules/finance/finance-payment-transaction.ts","apps/api-fastify/src/modules/finance/finance-sweep.service.ts","apps/api-fastify/src/modules/finance/finance-transaction.ts","apps/api-fastify/src/modules/finance/finance.service.ts","apps/api-fastify/src/modules/finance/integrity.ts","apps/api-fastify/src/modules/security.ts","apps/api-fastify/src/plugins/finance-workers.ts","apps/api-fastify/src/routes/crew.ts","apps/api-fastify/src/routes/finance.ts","apps/api-fastify/test/crew.integration.test.ts","apps/api-fastify/test/finance-workers.integration.test.ts","apps/api-fastify/test/finance.integration.test.ts","apps/api-fastify/test/security.http.test.ts","apps/api-nestjs/prisma/migrations/20260814233000_add_finance_reconciliation_phase_a/migration.sql","apps/api-nestjs/prisma/migrations/20260815033000_add_outbox_dispatch_leases/migration.sql","apps/api-nestjs/prisma/migrations/20260817090000_add_crew_engagement/migration.sql","apps/api-nestjs/src/common/security/security.decorators.ts","apps/api-nestjs/src/common/security/security.guard.ts","apps/api-nestjs/src/common/security/security.module.ts","apps/api-nestjs/src/common/security/security.service.ts","apps/api-nestjs/src/crew/crew.controller.ts","apps/api-nestjs/src/crew/crew.module.ts","apps/api-nestjs/src/crew/crew.service.ts","apps/api-nestjs/src/finance/finance-jobs.service.ts","apps/api-nestjs/src/finance/finance-jobs.types.ts","apps/api-nestjs/src/finance/finance-json.ts","apps/api-nestjs/src/finance/finance-payment-transaction.ts","apps/api-nestjs/src/finance/finance-reconciliation.processor.ts","apps/api-nestjs/src/finance/finance-sweep.service.ts","apps/api-nestjs/src/finance/finance-transaction.ts","apps/api-nestjs/src/finance/finance-worker-lifecycle.ts","apps/api-nestjs/src/finance/finance.controller.ts","apps/api-nestjs/src/finance/finance.module.ts","apps/api-nestjs/src/finance/finance.service.ts","apps/api-nestjs/test/crew.integration.test.ts","apps/api-nestjs/test/finance-workers.integration.test.ts","apps/api-nestjs/test/finance.http.test.ts","apps/api-nestjs/test/finance.integration.test.ts","apps/api-nestjs/test/security.http.test.ts","apps/web/e2e/finance-p0.spec.ts","apps/web/public/haimate-mark.png","apps/web/src/app/finance/page.tsx","apps/web/src/app/team/page.tsx","apps/web/src/features/finance/api/finance-api.ts","apps/web/src/features/finance/components/FinanceCoveragePanel.tsx","apps/web/src/features/finance/components/FinanceDailyReportPanel.tsx","apps/web/src/features/finance/components/FinanceImportPanel.tsx","apps/web/src/features/finance/components/FinanceWorkspace.tsx","apps/web/src/features/finance/components/ReconciliationCasesPanel.tsx","apps/web/src/features/finance/components/ReconciliationPanel.tsx","apps/web/src/features/finance/components/finance-presenters.tsx","apps/web/src/features/finance/hooks/use-finance.ts","apps/web/src/features/finance/types/index.ts","apps/web/src/features/team/api/team-api.ts","apps/web/src/features/team/components/ConversationWorkspace.tsx","apps/web/src/features/team/components/EmployeeRoster.tsx","apps/web/src/features/team/components/EngagementPanel.tsx","apps/web/src/features/team/components/SecondaryEmployeePanel.tsx","apps/web/src/features/team/components/TeamInsights.tsx","apps/web/src/features/team/hooks/use-team-workspace.ts","apps/web/src/features/team/lib/presenters.ts","apps/web/src/features/team/types.ts","design-qa.md","docs/adr/0011-explicit-demo-and-signed-application-security.md","docs/domain/crew-substrate-blueprint.md","packages/contracts/dist/crew.d.ts","packages/contracts/dist/crew.d.ts.map","packages/contracts/dist/crew.js","packages/contracts/dist/crew.js.map","packages/contracts/dist/finance.d.ts","packages/contracts/dist/finance.d.ts.map","packages/contracts/dist/finance.js","packages/contracts/dist/finance.js.map","packages/contracts/dist/security.d.ts","packages/contracts/dist/security.d.ts.map","packages/contracts/dist/security.js","packages/contracts/dist/security.js.map","packages/contracts/src/finance.test.ts","packages/contracts/src/finance.ts","packages/contracts/src/security.test.ts","packages/contracts/src/security.ts","reports/design-qa/haimate-team-comparison-final.png","reports/design-qa/haimate-team-final-1440x1024.jpg","reports/design-qa/haimate-team-mobile-390x844.jpg","reports/design-qa/haimate-team-workspace-comparison-final.png","reports/owner-matrix.latest.json","scripts/check-outbox-lease.mjs","scripts/check-owner-matrix.mjs","scripts/check-partner-truth.mjs","scripts/check-security-boundary.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/bookings/booking-transaction.ts","apps/api-fastify/src/modules/bookings/bookings.service.ts","apps/api-fastify/src/modules/conversations/booking-effects.service.ts","apps/api-fastify/src/modules/conversations/conversation-transaction.ts","apps/api-fastify/src/modules/conversations/conversations.service.ts","apps/api-fastify/src/modules/conversations/room-unavailable.consumer.ts","apps/api-fastify/src/modules/payments/payments.service.ts","apps/api-fastify/src/modules/platform/approval-ticket-transaction.ts","apps/api-fastify/src/modules/platform/approval-tickets.service.ts","apps/api-fastify/src/modules/platform/http-support.ts","apps/api-fastify/src/modules/platform/knowledge.service.ts","apps/api-fastify/src/modules/platform/tool-gateway.service.ts","apps/api-fastify/src/modules/platform/trust.service.ts","apps/api-fastify/src/modules/ports/availability.service.ts","apps/api-fastify/src/modules/ports/payment.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/approval-tickets.ts","apps/api-fastify/src/routes/bookings.ts","apps/api-fastify/src/routes/conversations.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/src/routes/payments.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/tools.ts","apps/api-fastify/src/routes/trust.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/booking.http.test.ts","apps/api-fastify/test/booking.integration.test.ts","apps/api-fastify/test/booking.workers.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/platform.http.test.ts","apps/api-fastify/test/platform.integration.test.ts","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/availability/availability.service.ts","apps/api-nestjs/src/bookings/booking-transaction.ts","apps/api-nestjs/src/bookings/bookings.controller.ts","apps/api-nestjs/src/bookings/bookings.service.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/conversations/booking-effects.processor.ts","apps/api-nestjs/src/conversations/conversation-transaction.ts","apps/api-nestjs/src/conversations/conversations.controller.ts","apps/api-nestjs/src/conversations/conversations.service.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/payments/payment-port.service.ts","apps/api-nestjs/src/payments/payments.controller.ts","apps/api-nestjs/src/payments/payments.module.ts","apps/api-nestjs/src/payments/payments.service.ts","apps/api-nestjs/src/platform/approval-ticket-transaction.ts","apps/api-nestjs/src/platform/approval-tickets.controller.ts","apps/api-nestjs/src/platform/approval-tickets.service.ts","apps/api-nestjs/src/platform/knowledge.controller.ts","apps/api-nestjs/src/platform/knowledge.service.ts","apps/api-nestjs/src/platform/tool-gateway.controller.ts","apps/api-nestjs/src/platform/tool-gateway.service.ts","apps/api-nestjs/src/platform/tools.controller.ts","apps/api-nestjs/src/platform/trust.controller.ts","apps/api-nestjs/src/platform/trust.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/booking.http.test.ts","apps/api-nestjs/test/booking.integration.test.ts","apps/api-nestjs/test/booking.workers.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/platform-workers.integration.test.ts","apps/api-nestjs/test/platform.http.test.ts","apps/api-nestjs/test/platform.integration.test.ts","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/e2e/haimate-p0.spec.ts","apps/web/e2e/realtime-store.spec.ts","apps/web/package.json","apps/web/src/app/layout.tsx","apps/web/src/components/ApprovalsPanel.tsx","apps/web/src/components/BookingsPanel.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/ToolCallsPanel.tsx","apps/web/src/features/team/components/TeamLedgerBoard.tsx","apps/web/src/features/team/components/TeamWorkspace.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","docs/adr/0010-finance-money-source-completeness-and-event-identity.md","docs/adr/README.md","docs/domain/booking-reception-blueprint.md","docs/domain/finance-reconciliation-blueprint.md","docs/domain/haimate-p0-grill-alignment.md","docs/domain/owner-matrix.md","docs/domain/platform-core-blueprint.md","docs/governance-experience.md","docs/product/haimate-pricing-and-gtm.md","docs/product/haimate-strategy-corpus.md","package.json","packages/contracts/dist/approval.d.ts","packages/contracts/dist/approval.d.ts.map","packages/contracts/dist/approval.js","packages/contracts/dist/approval.js.map","packages/contracts/dist/booking.d.ts","packages/contracts/dist/booking.d.ts.map","packages/contracts/dist/booking.js","packages/contracts/dist/booking.js.map","packages/contracts/dist/conversation.d.ts","packages/contracts/dist/index.d.ts","packages/contracts/dist/index.d.ts.map","packages/contracts/dist/index.js","packages/contracts/dist/index.js.map","packages/contracts/dist/money.d.ts","packages/contracts/dist/money.d.ts.map","packages/contracts/dist/money.js","packages/contracts/dist/money.js.map","packages/contracts/dist/ports.d.ts","packages/contracts/dist/ports.d.ts.map","packages/contracts/dist/ports.js.map","packages/contracts/dist/quote.d.ts","packages/contracts/dist/quote.d.ts.map","packages/contracts/dist/quote.js","packages/contracts/dist/quote.js.map","packages/contracts/dist/realtime.d.ts","packages/contracts/dist/realtime.d.ts.map","packages/contracts/dist/realtime.js","packages/contracts/dist/realtime.js.map","packages/contracts/dist/tenant.d.ts","packages/contracts/dist/tenant.d.ts.map","packages/contracts/dist/tenant.js","packages/contracts/dist/tenant.js.map","packages/contracts/dist/tool.d.ts","packages/contracts/dist/tool.d.ts.map","packages/contracts/dist/tool.js","packages/contracts/dist/tool.js.map","packages/contracts/src/approval.ts","packages/contracts/src/booking.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/crew.test.ts","packages/contracts/src/crew.ts","packages/contracts/src/haimate-contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/money.ts","packages/contracts/src/ports.ts","packages/contracts/src/quote.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.ts","packages/contracts/src/tool.ts","pnpm-lock.yaml","reports/baseline.json","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-migrations.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"44fed27603c1bd264192d1ce05016c1cd5b1c8ea","message":"fix(a11y): 修复侧栏隐形导航 + 颜色 token 全面达标 AA,并新增 Tailwind 静默失效门禁\n\n根因:Tailwind 颜色类透明度修饰符只有落在预设刻度(5 的倍数)或方括号任意值\n才生成 CSS。侧栏写 text-white/68 属死类,文字回退继承 --hm-ink 压在深蓝\n--hm-nav 上,实测对比度 1.02——导航区在浏览器里等于隐形,而 TypeScript\n与 ESLint 均不报,只有量计算样式才暴露。\n\n- 侧栏 6 处非法透明度(/38 /58 /68 /78)改为合法刻度,导航项对比度 1.02 → 5.18~17.64,6/6 达标\n- 全站实测 187 个文本节点原有 45 处不达 AA,根因集中在 token 自身取值偏浅;\n 按 token 层修复(text-tertiary/warning/success/danger/ai),每个新值在白底与\n 各自浅色底双双达标才采用,注释写进 globals.css。结果 45 → 0\n- 新增 check:tailwind-tokens 绊网并接入 pnpm check 与棘轮(地板 0);\n 负向测试已验证:注入 text-white/68 即 exit 1,恢复即 exit 0\n- 团队总览按用户拍板退回外壳设计语言(--hm-* / 12px 圆角 / 无衬线),\n 补回此前被重构弄丢的「昨天那一页」与雇佣价目,触控目标统一 44px\n- 花名册单源 contracts CREW_ROSTER + deriveCrewStatus(计费跳档将复用同一口径)\n- e2e 重写为一条覆盖全模块的用例(旧两条因 testid 重命名已失效)\n- CLAUDE.md 基线表 + 治理经验库 ⑬ 回灌\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/44fed27603c1bd264192d1ce05016c1cd5b1c8ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T19:18:43-07:00","added":["apps/web/src/components/layout/HaiMateShell.tsx","apps/web/src/features/team/components/TeamLedgerBoard.tsx","apps/web/src/features/team/components/TeamWorkspace.tsx","packages/contracts/src/crew.test.ts","packages/contracts/src/crew.ts","reports/tailwind-tokens.latest.json","scripts/check-tailwind-tokens.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/haimate-p0.spec.ts","apps/web/src/app/globals.css","docs/governance-experience.md","package.json","packages/contracts/src/index.ts","reports/baseline.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"6b3be1dafc25b3d82703595f7542769eae6b7744","message":"chore(reports): 刷新治理证据,绑定提交 b0d8e83\n\n三级门禁在 b0d8e83 上重跑后的报告:\n- pnpm check exit 0(16 项静态门禁)\n- check:runtime passed:380 tests / 0 failures\n- check:ui passed:14 用例 / 0 失败\n\n诚实标注:provenance 的 worktreeDirty 仍为 true。原因不是本提交遗漏了文件,\n而是**同一工作区存在并发会话**,其在制品(CLAUDE.md、两端 approval-tickets.service、\nweb/src/lib/types.ts、check-order-concurrency-guard.mjs、check-owner-matrix.mjs)\n在重跑期间处于未提交状态,已刻意不纳入本提交。\n\n因此本组报告只能宣称「本地工作区(含上述并发在制品)在 2026-08-17 通过三级门禁」,\n不得外推为 clean checkout 通过、远端已发布或 CI 已拦截。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/6b3be1dafc25b3d82703595f7542769eae6b7744","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:16:17-07:00","added":["reports/outbox-lease.latest.json","reports/partner-truth.latest.json","reports/security-boundary.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/owner-matrix.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1121,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.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-15T06:22:30+08:00","updated_at":"2026-08-15T07:09:04+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
|
1787008617
|
1787009037
|
0
|
1787008617
|
1787009038
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23503
|
fix(ci): 验收 runner 前置 contracts 构建——干净 checkout 下 fix(ci): 验收 runner 前置 contracts 构建——干净 checkout 下 dist 不存在导致全量解析崩...
|
76
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
e17e315f20a61059ab3b48375897c5f5b6213bdc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"859edc397ed56d09cf7d370f11c40bc727ca62ea","after":"e17e315f20a61059ab3b48375897c5f5b6213bdc","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/859edc397ed56d09cf7d370f11c40bc727ca62ea...e17e315f20a61059ab3b48375897c5f5b6213bdc","commits":[{"id":"e17e315f20a61059ab3b48375897c5f5b6213bdc","message":"fix(ci): 验收 runner 前置 contracts 构建——干净 checkout 下 dist 不存在导致全量解析崩\n\nCI run 32341789171 判责:runtime job 从不 build contracts,vite 解析\n@repo/contracts 入口失败,NestJS 20 个测试文件加载即灭(本地永不复现,\n因 dist 常年存在——干净 worktree 复现实锤)。\n\n- check:runtime / check:ui 首步 contracts-build + dist/index.js 存在性断言\n- contracts build 改 tsc -b --force(composite 已就位)\n- 干净房验证:859edc3 + 本修复 → check:runtime 354/354 全绿\n (/tmp worktree + 全新 install + 专属 PG/Redis)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e17e315f20a61059ab3b48375897c5f5b6213bdc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:18:07-07:00","added":[],"removed":[],"modified":["packages/contracts/package.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"e17e315f20a61059ab3b48375897c5f5b6213bdc","message":"fix(ci): 验收 runner 前置 contracts 构建——干净 checkout 下 dist 不存在导致全量解析崩\n\nCI run 32341789171 判责:runtime job 从不 build contracts,vite 解析\n@repo/contracts 入口失败,NestJS 20 个测试文件加载即灭(本地永不复现,\n因 dist 常年存在——干净 worktree 复现实锤)。\n\n- check:runtime / check:ui 首步 contracts-build + dist/index.js 存在性断言\n- contracts build 改 tsc -b --force(composite 已就位)\n- 干净房验证:859edc3 + 本修复 → check:runtime 354/354 全绿\n (/tmp worktree + 全新 install + 专属 PG/Redis)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e17e315f20a61059ab3b48375897c5f5b6213bdc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:18:07-07:00","added":[],"removed":[],"modified":["packages/contracts/package.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]},"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":1110,"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":0,"watchers_count":1,"branch_count":2,"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-08-20T14:57: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
|
8
|
1787210290
|
1787210353
|
0
|
1787210290
|
1787210353
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23516
|
Refine training framework workflows and governance Refine training framework workflows and governance coverage...
|
75
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
5b6ffb2fd47829470408617bee019a0a3912b7b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"27a28dd5a5a8aabd88832337fd5ffbc1216dbbf8","after":"5b6ffb2fd47829470408617bee019a0a3912b7b7","compare_url":"https://gitea.g-hi.com/luoanwu/training-framework/compare/27a28dd5a5a8aabd88832337fd5ffbc1216dbbf8...5b6ffb2fd47829470408617bee019a0a3912b7b7","commits":[{"id":"5b6ffb2fd47829470408617bee019a0a3912b7b7","message":"Refine training framework workflows and governance coverage\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/5b6ffb2fd47829470408617bee019a0a3912b7b7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:29:00-07:00","added":["apps/web/src/app/recruitment/page.tsx","apps/web/src/components/ui/textarea.tsx","apps/web/src/features/recruitment/api/recruitment-api.ts","apps/web/src/features/recruitment/components/CoachingExplorer.tsx","apps/web/src/features/recruitment/components/RecruitmentOperations.tsx","apps/web/src/features/recruitment/components/RecruitmentWorkspace.tsx","apps/web/src/features/recruitment/components/TrainingExplorer.tsx","apps/web/src/features/recruitment/components/WorkflowExplorer.tsx","apps/web/src/features/recruitment/content.ts","apps/web/src/features/recruitment/hooks/use-recruitment.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/RecruitmentPanel.tsx","apps/web/src/lib/api.ts","docs/domain/recruitment-blueprint.md","packages/contracts/src/recruitment.ts","packages/contracts/src/user.ts","reports/append-only.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","招商培训工作流与业务流.md"]}],"total_commits":0,"head_commit":{"id":"5b6ffb2fd47829470408617bee019a0a3912b7b7","message":"Refine training framework workflows and governance coverage\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/5b6ffb2fd47829470408617bee019a0a3912b7b7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:29:00-07:00","added":["apps/web/src/app/recruitment/page.tsx","apps/web/src/components/ui/textarea.tsx","apps/web/src/features/recruitment/api/recruitment-api.ts","apps/web/src/features/recruitment/components/CoachingExplorer.tsx","apps/web/src/features/recruitment/components/RecruitmentOperations.tsx","apps/web/src/features/recruitment/components/RecruitmentWorkspace.tsx","apps/web/src/features/recruitment/components/TrainingExplorer.tsx","apps/web/src/features/recruitment/components/WorkflowExplorer.tsx","apps/web/src/features/recruitment/content.ts","apps/web/src/features/recruitment/hooks/use-recruitment.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/RecruitmentPanel.tsx","apps/web/src/lib/api.ts","docs/domain/recruitment-blueprint.md","packages/contracts/src/recruitment.ts","packages/contracts/src/user.ts","reports/append-only.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","招商培训工作流与业务流.md"]},"repository":{"id":75,"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":"training-framework","full_name":"luoanwu/training-framework","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":665,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/training-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/training-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/training-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/training-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/training-framework.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-16T12:03:11+08:00","updated_at":"2026-08-16T12:38: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
|
8
|
1787563749
|
1787563809
|
0
|
1787563748
|
1787563809
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23521
|
feat(image-edit): harden masked editing acceptance
|
57
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
7a7e42422a19f6ad4c86d4cd320119a7fc912885
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ba48645a4237735976c13184c3aac435bc868949","after":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ba48645a4237735976c13184c3aac435bc868949...7a7e42422a19f6ad4c86d4cd320119a7fc912885","commits":[{"id":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","message":"feat(image-edit): harden masked editing acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7a7e42422a19f6ad4c86d4cd320119a7fc912885","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:34:04-07:00","added":["apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/main.py"]}],"total_commits":0,"head_commit":{"id":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","message":"feat(image-edit): harden masked editing acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7a7e42422a19f6ad4c86d4cd320119a7fc912885","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:34:04-07:00","added":["apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/main.py"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":43836,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-24T22:16:47+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
|
4
|
1787675667
|
1787675695
|
0
|
1787675666
|
1787675695
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23533
|
feat(events): harden outbox delivery and map busin feat(events): harden outbox delivery and map business logic...
|
81
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
158a8d0a3ccc575be23117643ac664ec1b6f73dc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284","after":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284...158a8d0a3ccc575be23117643ac664ec1b6f73dc","commits":[{"id":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","message":"feat(events): harden outbox delivery and map business logic\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/158a8d0a3ccc575be23117643ac664ec1b6f73dc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:07:32-07:00","added":["apps/api-fastify/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-nestjs/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-nestjs/test/outbox.concurrency.test.ts","docs/domain/business-logic-map.md"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","message":"feat(events): harden outbox delivery and map business logic\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/158a8d0a3ccc575be23117643ac664ec1b6f73dc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:07:32-07:00","added":["apps/api-fastify/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-nestjs/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-nestjs/test/outbox.concurrency.test.ts","docs/domain/business-logic-map.md"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs"]},"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":2137,"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-08-26T09:52: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
|
4
|
0
|
1787711431
|
0
|
1787710066
|
1787711431
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23546
|
chore(governance): refresh gate reports after CI p chore(governance): refresh gate reports after CI provisioning...
|
91
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
e465f302d62150997d35782bfec2304043dd605d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e20004f4776df6413cdfa4d0b49afdd9bea5b69e","after":"e465f302d62150997d35782bfec2304043dd605d","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/e20004f4776df6413cdfa4d0b49afdd9bea5b69e...e465f302d62150997d35782bfec2304043dd605d","commits":[{"id":"e465f302d62150997d35782bfec2304043dd605d","message":"chore(governance): refresh gate reports after CI provisioning\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/e465f302d62150997d35782bfec2304043dd605d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:45:26-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.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-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"19e459216a9fd617ba77d9ae5242218d511bff0e","message":"feat(ci): provision Digital Employee OS source for check:os-product\n\nCI 的 os-product 门禁曾必然 fail-closed(runner 上无 OS 源码,G14 同族)。\n按拍板方案「提供 OS 源码」落地:\n\n- static-governance job 按 SHA 钉版(fcbd389,与本地验收口径一致)克隆\n 同实例私有仓 luoanwu/digital-employee-os 到 RUNNER_TEMP(工作区外,\n 防 naming/治理扫描误扫),frozen install + 构建 contracts 后跑 pnpm check\n- token 走 secrets.OS_CHECKOUT_TOKEN(GITEA_TOKEN 兜底)\n- 两 job Node 20→22(OS engines \u003e=22 与本仓 \u003e=20 取并集)\n\n冷启动配方已本地彩排(SHA 直取/安装/构建/check:os-product 绿),\n钉版负向已验(错 SHA → O0-SHA 红)。CI 首绿仍需仓库侧配置\nOS_CHECKOUT_TOKEN secret 与可用 runner。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/19e459216a9fd617ba77d9ae5242218d511bff0e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:45:03-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"e465f302d62150997d35782bfec2304043dd605d","message":"chore(governance): refresh gate reports after CI provisioning\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/e465f302d62150997d35782bfec2304043dd605d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:45:26-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.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-compat.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":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2955,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.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-30T09:20:06+08:00","updated_at":"2026-08-30T09:35:41+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
|
1788054332
|
1788054370
|
0
|
1788054330
|
1788054372
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23558
|
docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限
|
90
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
cc4fd9ff70eff1c23556db5da7ac36b0639383e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493","after":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493...cc4fd9ff70eff1c23556db5da7ac36b0639383e8","commits":[{"id":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","message":"docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限\n\n本机 diffusers 管线实查(modular_blocks_minimax_h3 _workflow_map):H3 实为\nt2va / fl2va / ref2va 三工作流。fl2va(首尾帧锚定)与 t2va 共用已缓存的 62G\ntransformer 分区、零下载可用;ref2va(全模态有序参考,\u003cPicture i\u003e/\u003cAudio j\u003e/\n\u003cVideo k\u003e 标签语义)需另下 ~62GB transformer_ref。UI 提示、README、契约注释、\n蓝图、CLAUDE.md 真源地图五处按实归因;e2e 锚定短语保持不变。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/cc4fd9ff70eff1c23556db5da7ac36b0639383e8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:23:45-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","docs/domain/storyboard-blueprint.md","packages/contracts/src/h3-storyboard.ts","packages/contracts/tsconfig.tsbuildinfo"]}],"total_commits":0,"head_commit":{"id":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","message":"docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限\n\n本机 diffusers 管线实查(modular_blocks_minimax_h3 _workflow_map):H3 实为\nt2va / fl2va / ref2va 三工作流。fl2va(首尾帧锚定)与 t2va 共用已缓存的 62G\ntransformer 分区、零下载可用;ref2va(全模态有序参考,\u003cPicture i\u003e/\u003cAudio j\u003e/\n\u003cVideo k\u003e 标签语义)需另下 ~62GB transformer_ref。UI 提示、README、契约注释、\n蓝图、CLAUDE.md 真源地图五处按实归因;e2e 锚定短语保持不变。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/cc4fd9ff70eff1c23556db5da7ac36b0639383e8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:23:45-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","docs/domain/storyboard-blueprint.md","packages/contracts/src/h3-storyboard.ts","packages/contracts/tsconfig.tsbuildinfo"]},"repository":{"id":90,"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":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":933,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.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-30T09:07:20+08:00","updated_at":"2026-08-30T11:15:47+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
|
4
|
0
|
1788060627
|
0
|
1788060230
|
1788060627
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23863
|
chore(reports): refresh clean static evidence @ 60 chore(reports): refresh clean static evidence @ 6054b44(含 migration-decs / caddy / facts 首份绑定报告;facts unresolved 14 待 CT-2)...
|
116
|
5
|
platform.yml
|
4
|
5
|
0
|
refs/heads/main
|
e332908c794bfa0f3afbc59886fdf8c89c0486c8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7ac162d74e994324b255dd7f0c2f2d991867b37e","after":"e332908c794bfa0f3afbc59886fdf8c89c0486c8","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/7ac162d74e994324b255dd7f0c2f2d991867b37e...e332908c794bfa0f3afbc59886fdf8c89c0486c8","commits":[{"id":"e332908c794bfa0f3afbc59886fdf8c89c0486c8","message":"chore(reports): refresh clean static evidence @ 6054b44(含 migration-decs / caddy / facts 首份绑定报告;facts unresolved 14 待 CT-2)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e332908c794bfa0f3afbc59886fdf8c89c0486c8","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-11T22:48:54-07:00","added":["reports/caddy.latest.json","reports/facts.latest.json"],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"6054b449e94cecfb2d4320b0d77a17797c9ad3e9","message":"feat(governance): check:migration-decs / check:facts / check:caddy 三项门禁 + CODEOWNERS(PF-06;开发计划 §3A G-4 / G-5 / G-6 / G-8)\n\n- check:migration-decs:runtime/modules/*/prisma/migrations 与 identity/apps/*/prisma/migrations 的 migration.sql 前 10 行须有\n `-- decision: DEC-NNN` 且该 DEC 已批准;state=shape 模块不得有迁移;identity 既有 24 个迁移逐条登记在\n governance/migration-decs.exceptions.json(解除条件 PF-07 阶段 2 ④),条件失效判 EXCEPTION_STALE。接入根 pnpm check。\n- check:facts:modules.json 声明的 Fact ⊆ contracts/catalogs/facts.json ∪ CHG-004 候选(候选须 pending-dec + blocked_by);\n 候选目录不可用时报 UNRESOLVED(fail-closed)。现报 14 个平台 Fact unresolved;接入根链前置 CT-2 材料落地,故只落脚本 + 测试。\n- check:caddy:modules.json 的 12 个 HTTP 契约经 governance/caddy-routes.json 映射前缀后须被 stack/caddy/Caddyfile 的 path 匹配器覆盖;\n /healthz、X-Request-Id 注入、{$PLATFORM_API_UPSTREAM} 必备;本机无 caddy 二进制时报告 validate=skipped(CHECK_CADDY_DOCKER=1 走 docker)。接入根 pnpm check。\n- .github/CODEOWNERS:设计 §23 路径 → 角色占位(每模块独立行),governance/test/codeowners.test.mjs 断言覆盖面;团队 slug 待平台负责人替换。\n- 三项检查并入 @juhai/governance:bin/cli.mjs 命令、package.json exports / files、README 命令表;governance 测试 30 → 49 例。\n- check-migration-decs.mjs / check-facts.mjs / migration-decs.exceptions.json 已随 5a6c12f 入库(并行会话提交扫入),本提交补齐其测试、接线与文档。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6054b449e94cecfb2d4320b0d77a17797c9ad3e9","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-11T22:47:54-07:00","added":[".github/CODEOWNERS","governance/caddy-routes.json","governance/check-caddy.mjs","governance/test/check-caddy.test.mjs","governance/test/check-facts.test.mjs","governance/test/codeowners.test.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","governance/README.md","governance/bin/cli.mjs","governance/package.json","package.json"]},{"id":"1ecc23198a34ec1ecbdc20ba7dd8b3c0985a6de7","message":"chore(reports): refresh clean static evidence @ 5a6c12f(含 fixtures 首份报告)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1ecc23198a34ec1ecbdc20ba7dd8b3c0985a6de7","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-11T22:41:57-07:00","added":["reports/fixtures.latest.json","reports/migration-decs.latest.json"],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"5a6c12f45277360802bf4f7bedcbb71e55ceb99c","message":"feat(governance): @juhai/governance 包化——CLI、check:fixtures 夹具运行器、JSON Schema 子集校验器、消费者 CI 模板(PF-06 / X01)\n\n- governance/package.json:@juhai/governance@1.0.0-rc.0,bin juhai-governance,零依赖,files/exports/publishConfig(未发布)\n- check:pins 重构为纯函数 + --require \u003cpkg\u003e(要求消费者至少一处 exact pin);--root 支持跨仓运行\n- check:fixtures:FixtureSuite 通用格式(schemas + cases ACCEPT/REJECT + reasons 前缀)与 dec-039 适配;lib/json-schema.mjs 支持 /oneOf/anyOf/allOf/format/数组与对象约束;套件 contracts 8 例 + DEC-039 25 例,接入根 check\n- bin/cli.mjs:命令分发(run 导出或直跑分支)、ci:template 输出 templates/consumer-governance.yml\n- 30 例测试;pnpm pack 18 文件,临时消费者 npm install 后 CLI 可运行;HR / OS check:pins 冒烟\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5a6c12f45277360802bf4f7bedcbb71e55ceb99c","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-11T22:41:46-07:00","added":["governance/README.md","governance/bin/cli.mjs","governance/check-facts.mjs","governance/check-fixtures.mjs","governance/check-migration-decs.mjs","governance/fixtures/contracts.suite.json","governance/fixtures/dec-039.suite.json","governance/lib/json-schema.mjs","governance/migration-decs.exceptions.json","governance/package.json","governance/templates/consumer-governance.yml","governance/test/check-migration-decs.test.mjs","governance/test/cli.test.mjs","governance/test/json-schema.test.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","governance/check-pins.mjs","governance/lib/schema-lite.mjs","governance/test/release-manifest.test.mjs","package.json"]},{"id":"63d0c12996d361d8dddd35d2ef22ac1170c26e5b","message":"chore(reports): refresh clean static evidence @ 05ae313(含 catalog:drift 首份绑定报告)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/63d0c12996d361d8dddd35d2ef22ac1170c26e5b","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-11T22:21:27-07:00","added":[],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"e332908c794bfa0f3afbc59886fdf8c89c0486c8","message":"chore(reports): refresh clean static evidence @ 6054b44(含 migration-decs / caddy / facts 首份绑定报告;facts unresolved 14 待 CT-2)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e332908c794bfa0f3afbc59886fdf8c89c0486c8","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-11T22:48:54-07:00","added":["reports/caddy.latest.json","reports/facts.latest.json"],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1520,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.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-09-11T07:33:25+08:00","updated_at":"2026-09-11T08:05: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
|
18
|
1789193196
|
1789193217
|
0
|
1789193195
|
1789193237
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23886
|
test(platform): keep dispatcher fixtures aligned w test(platform): keep dispatcher fixtures aligned with Redis client options...
|
83
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
c934bc46240daae849ad93cfacaa3b25c41b323f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df46b98835ff77c7f4675e043d0869799fbb8d08","after":"c934bc46240daae849ad93cfacaa3b25c41b323f","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/df46b98835ff77c7f4675e043d0869799fbb8d08...c934bc46240daae849ad93cfacaa3b25c41b323f","commits":[{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"]},{"id":"330a3287b5c0b68652d73af62cab45f99b0d5a84","message":"fix(platform): scope realtime channels for shared development Redis\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/330a3287b5c0b68652d73af62cab45f99b0d5a84","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-12T02:26:46-07:00","added":["docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"],"removed":[],"modified":[".gitignore","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","packages/contracts/src/realtime.ts"]}],"total_commits":0,"head_commit":{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.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":4021,"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":1,"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-12T16:53: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
|
6
|
1789206500
|
1789206529
|
0
|
1789206499
|
1789206529
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23974
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
82
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
7c4b197f018b02f5ed675758af3f5be5dbd1de02
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","after":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7...7c4b197f018b02f5ed675758af3f5be5dbd1de02","commits":[{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\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/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]}],"total_commits":0,"head_commit":{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\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/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},"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":1857,"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-15T10:54: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
|
1789458993
|
1789459020
|
0
|
1789458921
|
1789459022
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23975
|
chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处" chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处"文档漂移"是级联假象...
|
84
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"558e30bac2666ebe08fed4d2649e433638ead6c6","after":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/558e30bac2666ebe08fed4d2649e433638ead6c6...cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","commits":[{"id":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","message":"chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处\"文档漂移\"是级联假象\n\n上一轮只提交了静态面 17 份,刻意留下 backend-behavior-parity 与 docs-truth——\n前者无实例时会把\"跑不起来\"写成\"0 例通过\",后者被这个 0 带塌(CLAUDE.md 记 28 例\nvs 机器真源 0)。本轮补上实例把这条链跑通。\n\n按本目录\"每轮新建空验收库\"的口径,建独立库而不是用 dev 库:\n juhai_knowledge_cloud_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /13 号逻辑库,避开 .env 的 /12\n\n结果:\n- backend-behavior-parity 28 个 HTTP/DB/outbox 黑盒检查一致,负向探针 3/3\n ——28 正是 CLAUDE.md 记的数字,证实那个 0 纯粹是\"跑不起来\"的产物(U-36)\n- docs-truth 由 3 处漂移变为通过,**且数字负向探针由 7/9 升为 9/9**——此前它自己\n 报的\"门禁可能是假绿\"成立:parity 数字为 0 时两条探针是哑的,现在才真正有效\n- 静态 + 真实 DB 合计 19/19 全绿,19 份报告 provenance 全部绑定 558e30b 且\n worktreeDirty=false\n\n证据等级由\"静态\"提升到\"真实 DB\"(浏览器一级仍未做)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","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-15T00:45:32-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f77022f4abb4c9de6fc4d7214432480dc3a2cd6e","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 27 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于脏树,按证据\n纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (558e30b) 上重跑:静态面 17/17 全绿,17 份报告 provenance 全部\ngitSha=558e30b 且 worktreeDirty=false。\n\n刻意**不**提交两份:\n- backend-behavior-parity:实跑证实它需要 DATABASE_URL + REDIS_URL\n (test/backend.behavior.parity.test.ts:385 直接抛),属需实例门禁。无实例时它会\n 写出\"0 例\"的报告——把\"跑不起来\"记成\"0 例通过\",比留着旧报告更坏。\n- docs-truth:它的失败是上一条的级联——CLAUDE.md 记的 parity 是 28 例,而机器真源\n 被上一条写成 0,于是判文档漂移。根因消除前这份报告没有意义。\n\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级;那两条与 runtime / UI\n一起要另起一轮带实例的。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f77022f4abb4c9de6fc4d7214432480dc3a2cd6e","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-15T00:34:57-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","message":"chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处\"文档漂移\"是级联假象\n\n上一轮只提交了静态面 17 份,刻意留下 backend-behavior-parity 与 docs-truth——\n前者无实例时会把\"跑不起来\"写成\"0 例通过\",后者被这个 0 带塌(CLAUDE.md 记 28 例\nvs 机器真源 0)。本轮补上实例把这条链跑通。\n\n按本目录\"每轮新建空验收库\"的口径,建独立库而不是用 dev 库:\n juhai_knowledge_cloud_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /13 号逻辑库,避开 .env 的 /12\n\n结果:\n- backend-behavior-parity 28 个 HTTP/DB/outbox 黑盒检查一致,负向探针 3/3\n ——28 正是 CLAUDE.md 记的数字,证实那个 0 纯粹是\"跑不起来\"的产物(U-36)\n- docs-truth 由 3 处漂移变为通过,**且数字负向探针由 7/9 升为 9/9**——此前它自己\n 报的\"门禁可能是假绿\"成立:parity 数字为 0 时两条探针是哑的,现在才真正有效\n- 静态 + 真实 DB 合计 19/19 全绿,19 份报告 provenance 全部绑定 558e30b 且\n worktreeDirty=false\n\n证据等级由\"静态\"提升到\"真实 DB\"(浏览器一级仍未做)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","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-15T00:45:32-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1512,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.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:45:53+08:00","updated_at":"2026-09-15T10:54: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
|
1789459021
|
1789459046
|
0
|
1789458923
|
1789459047
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23976
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
80
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bda8349f3440331dc74da6a4a41880607201d63d","after":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/compare/bda8349f3440331dc74da6a4a41880607201d63d...50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","commits":[{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":80,"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-device-cloud","full_name":"luoanwu/juhai-device-cloud","description":"巨嗨设备云:永久设备身份、激活调拨、可信换板与授权治理","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":900,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-device-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud.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-25T23:52:33+08:00","updated_at":"2026-09-15T10:54: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
|
6
|
1789459046
|
1789459053
|
0
|
1789458924
|
1789459054
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23983
|
docs: scope-snapshot-blueprint 把 DEC-001—005 从" docs: scope-snapshot-blueprint 把 DEC-001—005 从"仍待裁决"改为"已裁定、权威 Resolver 未实现"...
|
106
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
f978ade7e90469ee1a0a8992c1073d4275b00b51
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","after":"f978ade7e90469ee1a0a8992c1073d4275b00b51","compare_url":"https://gitea.g-hi.com/luoanwu/tenant-scope/compare/0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11...f978ade7e90469ee1a0a8992c1073d4275b00b51","commits":[{"id":"f978ade7e90469ee1a0a8992c1073d4275b00b51","message":"docs: scope-snapshot-blueprint 把 DEC-001—005 从\"仍待裁决\"改为\"已裁定、权威 Resolver 未实现\"\n\n治理层 check-workspace-consistency L10 最后一条命中:DEC-001—005 已于 2026-09-12 批准,本文仍写作未决前置。\n改为\"卡在没做\"而不是\"卡在裁决\"(真源仓 runtime/modules/scope 仍 state=shape)。清扫后 L10 归零,工作区一致性 4 → 3 条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/f978ade7e90469ee1a0a8992c1073d4275b00b51","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-15T05:53:28-07:00","added":[],"removed":[],"modified":["docs/domain/scope-snapshot-blueprint.md"]}],"total_commits":0,"head_commit":{"id":"f978ade7e90469ee1a0a8992c1073d4275b00b51","message":"docs: scope-snapshot-blueprint 把 DEC-001—005 从\"仍待裁决\"改为\"已裁定、权威 Resolver 未实现\"\n\n治理层 check-workspace-consistency L10 最后一条命中:DEC-001—005 已于 2026-09-12 批准,本文仍写作未决前置。\n改为\"卡在没做\"而不是\"卡在裁决\"(真源仓 runtime/modules/scope 仍 state=shape)。清扫后 L10 归零,工作区一致性 4 → 3 条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/f978ade7e90469ee1a0a8992c1073d4275b00b51","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-15T05:53:28-07:00","added":[],"removed":[],"modified":["docs/domain/scope-snapshot-blueprint.md"]},"repository":{"id":106,"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":"tenant-scope","full_name":"luoanwu/tenant-scope","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3291,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope/languages","html_url":"https://gitea.g-hi.com/luoanwu/tenant-scope","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/tenant-scope.git","clone_url":"https://gitea.g-hi.com/luoanwu/tenant-scope.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:13+08:00","updated_at":"2026-09-15T12:11: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
|
10
|
1789539964
|
1789539986
|
0
|
1789539963
|
1789539996
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23991
|
chore(reports): 回绑 @ ff7d2f5——登记门禁读到带 provenance 的 chore(reports): 回绑 @ ff7d2f5——登记门禁读到带 provenance 的上一份报告后 9/9 通过...
|
117
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ff7d2f5f21e82dfae2a35ea0b09a14b075fdf6b3","after":"ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/ff7d2f5f21e82dfae2a35ea0b09a14b075fdf6b3...ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","commits":[{"id":"ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","message":"chore(reports): 回绑 @ ff7d2f5——登记门禁读到带 provenance 的上一份报告后 9/9 通过\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","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-16T07:50:27-07:00","added":[],"removed":[],"modified":["平台治理/基础/reports/基础目录统一审计.latest.json","平台治理/基础/reports/门禁消费.latest.json","平台治理/基础/reports/门禁运行.latest.json"]}],"total_commits":0,"head_commit":{"id":"ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","message":"chore(reports): 回绑 @ ff7d2f5——登记门禁读到带 provenance 的上一份报告后 9/9 通过\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","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-16T07:50:27-07:00","added":[],"removed":[],"modified":["平台治理/基础/reports/基础目录统一审计.latest.json","平台治理/基础/reports/门禁消费.latest.json","平台治理/基础/reports/门禁运行.latest.json"]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6719,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-16T22:49: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
|
1
|
4
|
1789570235
|
1789570250
|
0
|
1789570230
|
1789570250
|
|
|
0
|
Edit
Delete
|
|
24649
|
Fix Gitea host runner PostgreSQL connection and mi Fix Gitea host runner PostgreSQL connection and migration test DB...
|
121
|
5
|
kernel-ci.yml
|
4
|
5
|
0
|
refs/heads/main
|
b9ae9838a77688fb2e40e839c7416057071ca33a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b9c01e45eb5c807f7cbede70a6aebfbc8d0d60be","after":"b9ae9838a77688fb2e40e839c7416057071ca33a","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/b9c01e45eb5c807f7cbede70a6aebfbc8d0d60be...b9ae9838a77688fb2e40e839c7416057071ca33a","commits":[{"id":"b9ae9838a77688fb2e40e839c7416057071ca33a","message":"Fix Gitea host runner PostgreSQL connection and migration test DB\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/b9ae9838a77688fb2e40e839c7416057071ca33a","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-29T09:41:10-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]}],"total_commits":0,"head_commit":{"id":"b9ae9838a77688fb2e40e839c7416057071ca33a","message":"Fix Gitea host runner PostgreSQL connection and migration test DB\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/b9ae9838a77688fb2e40e839c7416057071ca33a","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-29T09:41:10-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29992,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:37: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
|
4
|
1790700077
|
1790700091
|
0
|
1790700075
|
1790700091
|
|
|
0
|
Edit
Delete
|
|
25583
|
Merge branch 'codex/infra-backup-split-2026101 Merge branch 'codex/infra-backup-split-20261011' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform...
|
133
|
5
|
infra.yml
|
4
|
5
|
0
|
refs/heads/main
|
9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d7c43296a9badda43811f5ea5eee052db562008","after":"9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/9d7c43296a9badda43811f5ea5eee052db562008...9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","commits":[{"id":"9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","message":"Merge branch 'codex/infra-backup-split-20261011' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:16:18-07:00","added":[],"removed":[],"modified":["model-center-pilot/Caddyfile","model-center-pilot/README.md"]},{"id":"0ff119bf7444dc18aa8c7fdbd29beeb787049664","message":"fix(backup): verify stored data and restore health without mutation\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/0ff119bf7444dc18aa8c7fdbd29beeb787049664","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:15:04-07:00","added":[],"removed":[],"modified":["README.md","backup/managed-backup.py","backup/test_managed_backup.py","provision/db.sh"]},{"id":"9997f1e98e94228b7e5ab9c78a05e46df9405f07","message":"fix(backup): fail closed on missing data and restore failures\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/9997f1e98e94228b7e5ab9c78a05e46df9405f07","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:14:56-07:00","added":[],"removed":[],"modified":["backup/managed-backup.py","backup/test_managed_backup.py"]},{"id":"270e41c31ba929fe0cb9a7fc24b7ab3de2a247f5","message":"fix(pilot): 将渠道与支付入口转到主控制面\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/270e41c31ba929fe0cb9a7fc24b7ab3de2a247f5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T06:29:00-07:00","added":[],"removed":[],"modified":["model-center-pilot/Caddyfile","model-center-pilot/README.md"]}],"total_commits":0,"head_commit":{"id":"9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","message":"Merge branch 'codex/infra-backup-split-20261011' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:16:18-07:00","added":[],"removed":[],"modified":["model-center-pilot/Caddyfile","model-center-pilot/README.md"]},"repository":{"id":133,"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":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":408,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.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-10-11T21:11:15+08:00","updated_at":"2026-10-11T22:33:08+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
|
1
|
6
|
1791760648
|
1791760675
|
0
|
1791760585
|
1791760675
|
|
|
0
|
Edit
Delete
|
|
25614
|
test: 修复集成测试应用的关闭顺序
|
125
|
16
|
security.yml
|
4
|
-2
|
356
|
refs/heads/main
|
4bda2cc02706e1c64d5cd23c233673a0b32d0a72
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"06556f73ea74b431979b8b819de8e85358843b49","after":"4bda2cc02706e1c64d5cd23c233673a0b32d0a72","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/06556f73ea74b431979b8b819de8e85358843b49...4bda2cc02706e1c64d5cd23c233673a0b32d0a72","commits":[{"id":"4bda2cc02706e1c64d5cd23c233673a0b32d0a72","message":"test: 修复集成测试应用的关闭顺序\n\n测试类的临时数据库和 Redis 会先于缓存中的应用回收,后台任务可能继续访问已回收资源。\n\n实现内容:\n- 为 BaselineIT 和 AccountsIT 声明 AFTER_CLASS 关闭并接入测试探针\n- 在容器仍存活时核对连接池、Redis、调度任务及所属执行器结束状态\n- 增加正常、异常回调及未关闭资源反例,保留原故障恢复和安全断言\n- 记录本地归因、首次失败、最终定向结果与完整检查的启动阻塞\n\n验证:\n- Java 25 离线 test-compile(含 Spotless)通过\n- 最终定向 29 项及 Baseline 独立最后应用 7 项通过\n- 完整 clean verify:169 项单测通过;集成 422 项通过、1 项启动错误、74 项跳过\n- ProtocolConsistencyIT 第二个应用因端口绑定失败启动不成功,占用者尚未确证;完整门禁未通过,未重跑\n- F0 36 场景全部拒绝,消费、新凭据和刷新成功事件为零\n- git diff --check 和 37 个文档相对链接/锚点检查通过\n\n仅修改测试及任务文档;不改变产品合同,不作为候选冻结或性能验收通过的证明。\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/4bda2cc02706e1c64d5cd23c233673a0b32d0a72","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:50:19-07:00","added":["iam-server/src/test/java/com/iam/server/ContextLifecycleIT.java","iam-server/src/test/java/com/iam/server/TestContextShutdownProbe.java"],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md","iam-server/src/test/java/com/iam/server/BaselineIT.java","iam-server/src/test/java/com/iam/server/accounts/AccountsIT.java"]},{"id":"b69ba6c8145d3b5bc8e67e37a9d2f26e8723222b","message":"feat(console): 合并控制台面向普通用户的文案改写\n\n控制台原先大量使用标识、版本、协议术语和后端状态原值,普通管理员难以理解。合并 feat/console-polish-next 分支,完成三个概览页重设计、导航改名,以及全部管理页面、个人中心、工作台与切换器的文案改写。\n\n实现内容:\n- 重新设计平台、企业、应用三个概览页,侧边栏模块按日常说法改名,并在 docs/console/design-system.md 记录新旧名称对照\n- 各管理页面改用日常说法,状态和角色显示中文,标识、版本、追踪编号收进默认收起的\"技术细节\"\n- 时间输入改用本地日期时间选择器,提交时仍为带时区的 ISO 时间;操作记录显示中文操作名称,并支持下拉筛选\n- \"秘密\"统一称\"密钥\",\"机器客户端/服务主体\"称\"程序客户端/程序身份\",\"IAM 会话\"称\"登录记录\"\n- 同步更新单元测试与验收脚本中的文案和定位,列表行增加 data-record-id 供脚本定位\n\n验证:\n- 分支上每批提交前运行 npm run check:format:check、lint、typecheck、build 通过,最后一次测试 203/203 通过\n- 各页面在浏览器中核对;程序接入详情、程序身份详情与启用新应用弹窗因演示环境缺数据或登录过期未核对\n- 验收脚本仅执行 node --check,未实际运行\n- 合并无冲突,main 上未单独重新运行检查\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/b69ba6c8145d3b5bc8e67e37a9d2f26e8723222b","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:34:48-07:00","added":["iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/pages/AppOverview.tsx","iam-admin-web/src/pages/PlatformOverview.tsx","iam-admin-web/src/pages/TenantOverview.tsx","iam-admin-web/src/test/app-overview.test.tsx","iam-admin-web/src/test/platform-overview.test.tsx","iam-admin-web/src/test/tenant-overview.test.tsx"],"removed":[],"modified":["docs/console/design-system.md","iam-admin-web/scripts/acceptance-group-lifecycle.mjs","iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/scripts/acceptance-p11-t04.mjs","iam-admin-web/scripts/acceptance-p11-t05.mjs","iam-admin-web/scripts/acceptance-p11-t07.mjs","iam-admin-web/scripts/acceptance-t02.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/scripts/acceptance-t05.mjs","iam-admin-web/scripts/acceptance-t06.mjs","iam-admin-web/scripts/acceptance.mjs","iam-admin-web/src/App.tsx","iam-admin-web/src/components/Layout.tsx","iam-admin-web/src/components/Management.tsx","iam-admin-web/src/data/pages.ts","iam-admin-web/src/lib/roles.ts","iam-admin-web/src/lib/t02-api.ts","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/EmailRecoveryPage.tsx","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/PersonalPage.tsx","iam-admin-web/src/pages/ScopePages.tsx","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationShared.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationGuard.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/DecisionCallersPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/shell/ContextSwitcher.tsx","iam-admin-web/src/shell/ContextTrail.tsx","iam-admin-web/src/shell/NavRail.tsx","iam-admin-web/src/styles/components.css","iam-admin-web/src/styles/pages.css","iam-admin-web/src/test/application-lifecycle.test.tsx","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx","iam-admin-web/src/test/group-editor.test.tsx","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx","iam-admin-web/src/test/management-integration.test.tsx","iam-admin-web/src/test/personal.test.tsx","iam-admin-web/src/test/service-principals.test.tsx","iam-admin-web/src/test/sidebar.test.tsx"]},{"id":"9339f14f94e988b7a3d898f11daa506446d75c44","message":"feat(console): 改写工作台与企业切换器文案\n\n工作台和顶部切换器仍使用\"管理上下文\"\"平台总入口仅限平台管理员\"\"全员准入\"\"企业已启用/应用正常\"双徽标等说法,工作台还直接展示账号标识。改为日常说法,并与应用开通页的\"使用情况\"保持一致。\n\n实现内容:\n- 工作台说明改为说明顶部一直显示正在管理的企业和应用;平台入口锁定提示改为\"只有平台管理员可以进入\",应用管理员入口改为\"进入应用接入\"\n- 右侧卡片改为\"我的账号\",显示名字、平台管理身份、登录方式与\"这台电脑保存了什么\",账号标识收进技术细节\n- 切换器标题改为\"切换企业或应用\"并改写说明;企业列表去掉恒为真的\"企业正常\"徽标,非正常状态显示中文状态\n- 应用列表改为\"应用(可选)\",用 appUsage 的单个\"使用情况\"徽标替代企业关系与全局状态两个徽标,可进入的应用显示\"所有成员可用/仅指定成员可用\";空状态、无权限与停用说明改写\n- 顶部路径的\"未选择管理上下文\"改为\"未选择企业\",相关 aria-label 同步改写\n- 平台与应用无法进入时的说明改为日常说法,应用停用原因复用 appUsage\n- 删除已无引用的 relationLabel、applicationStatusLabel、accessPolicyLabel\n- 同步更新 acceptance.mjs 中切换器标题、应用分组、停用说明与无权限提示的定位\n\n验证:\n- npm run check:format:check、lint、typecheck、build 通过,测试 203/203 通过\n- 浏览器核对工作台与切换器(选择企业后未进入)\n- 验收脚本仅执行 node --check,未实际运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/9339f14f94e988b7a3d898f11daa506446d75c44","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:27:50-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance.mjs","iam-admin-web/src/lib/roles.ts","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/ScopePages.tsx","iam-admin-web/src/shell/ContextSwitcher.tsx","iam-admin-web/src/shell/ContextTrail.tsx"]},{"id":"74debf18dda59db91112b09eb5a93214a0e18c52","message":"feat(console): 改写个人中心文案并把会话称为登录记录\n\n个人中心原先使用\"IAM 会话\"\"最近协议活动\"\"绝对截止\"\"期限类别\"\"管理上下文\"等术语,每条会话都重复一段说明并直接展示编号。改为\"登录记录\"等日常说法,编号收进技术细节。\n\n实现内容:\n- \"IAM 登录会话\"改为\"登录记录\",状态改为登录中/已过期/已退出/已失效;时间字段改为登录时间、最近使用、一直不用时自动退出于、最晚退出时间、登录有效期\n- 每条记录重复的说明合并到卡片说明中;登录编号收进技术细节;按钮改为\"退出当前登录\"\"退出这次登录\"\"确认退出\"\"刷新登录记录\"\n- 退出确认与成功提示改为\"登录\"说法,冲突与无权提示改写\n- \"我的身份\"改为\"我的账号\",显示名字与平台管理身份,账号标识收进技术细节;\"我的企业\"去掉恒为真的\"企业正常/有效成员\"徽标与成员标识,改为\"你的身份:所有者/普通成员\",按钮改为\"切换企业\"\n- 底部说明改为\"切换企业与退出登录有什么区别\"\n- 邮箱卡片中\"无法恢复丢失的全部 MFA 因素\"改为日常说明\n- 操作记录中的\"两步验证\"统一为与多因素验证页面一致的\"多因素验证\"\n- 同步更新 personal 测试与 acceptance-t05、acceptance-p11-t04/t05/t07 的按钮与标题定位(示例应用自身的\"退出当前 IAM 会话\"按钮未改)\n\n验证:\n- npm run check:format:check、lint、typecheck、build 通过,测试 203/203 通过\n- 浏览器核对个人中心各卡片与登录记录(未执行退出)\n- 验收脚本仅执行 node --check,未实际运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/74debf18dda59db91112b09eb5a93214a0e18c52","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:25:43-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p11-t04.mjs","iam-admin-web/scripts/acceptance-p11-t05.mjs","iam-admin-web/scripts/acceptance-p11-t07.mjs","iam-admin-web/scripts/acceptance-t05.mjs","iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/pages/EmailRecoveryPage.tsx","iam-admin-web/src/pages/PersonalPage.tsx","iam-admin-web/src/test/personal.test.tsx"]},{"id":"546f7184ef08dfa32fbd7610c8152fa6856d9ee4","message":"style(console): 格式化程序身份验收脚本中的负责人失效断言\n\n上一提交在运行 Prettier 之后又修改了 acceptance-p10-t01.mjs 的一行断言,导致该文件不符合 npm run format:check。\n\n实现内容:\n- 按 Prettier 规则折行负责人失效断言,不改变断言内容\n\n验证:\n- npx prettier --check scripts/acceptance-p10-t01.mjs:通过\n- node --check scripts/acceptance-p10-t01.mjs:通过;脚本未实际运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/546f7184ef08dfa32fbd7610c8152fa6856d9ee4","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:24:05-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t01.mjs"]}],"total_commits":0,"head_commit":{"id":"4bda2cc02706e1c64d5cd23c233673a0b32d0a72","message":"test: 修复集成测试应用的关闭顺序\n\n测试类的临时数据库和 Redis 会先于缓存中的应用回收,后台任务可能继续访问已回收资源。\n\n实现内容:\n- 为 BaselineIT 和 AccountsIT 声明 AFTER_CLASS 关闭并接入测试探针\n- 在容器仍存活时核对连接池、Redis、调度任务及所属执行器结束状态\n- 增加正常、异常回调及未关闭资源反例,保留原故障恢复和安全断言\n- 记录本地归因、首次失败、最终定向结果与完整检查的启动阻塞\n\n验证:\n- Java 25 离线 test-compile(含 Spotless)通过\n- 最终定向 29 项及 Baseline 独立最后应用 7 项通过\n- 完整 clean verify:169 项单测通过;集成 422 项通过、1 项启动错误、74 项跳过\n- ProtocolConsistencyIT 第二个应用因端口绑定失败启动不成功,占用者尚未确证;完整门禁未通过,未重跑\n- F0 36 场景全部拒绝,消费、新凭据和刷新成功事件为零\n- git diff --check 和 37 个文档相对链接/锚点检查通过\n\n仅修改测试及任务文档;不改变产品合同,不作为候选冻结或性能验收通过的证明。\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/4bda2cc02706e1c64d5cd23c233673a0b32d0a72","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-11T08:50:19-07:00","added":["iam-server/src/test/java/com/iam/server/ContextLifecycleIT.java","iam-server/src/test/java/com/iam/server/TestContextShutdownProbe.java"],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md","iam-server/src/test/java/com/iam/server/BaselineIT.java","iam-server/src/test/java/com/iam/server/accounts/AccountsIT.java"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":99686,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.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-10-08T17:04:24+08:00","updated_at":"2026-10-10T17:57: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"}}...
|
schedule
|
2
|
4
|
1791770416
|
1791770637
|
0
|
1791770415
|
1791770637
|
|
|
0
|
Edit
Delete
|
|
25665
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
e2e-cache.yml
|
4
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.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-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+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
|
116
|
1791845108
|
1791950475
|
0
|
1791844715
|
1791950477
|
|
|
0
|
Edit
Delete
|
|
25682
|
Fix outdated dependencies (#96)
|
138
|
5
|
codeql-analysis.yml
|
4
|
5
|
0
|
refs/tags/v2.1.0
|
ebad382c0953e8c6b4039e8d30dfd19ee7b2a862
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.0","bef {"ref":"refs/tags/v2.1.0","before":"0000000000000000000000000000000000000000","after":"ebad382c0953e8c6b4039e8d30dfd19ee7b2a862","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...ebad382c0953e8c6b4039e8d30dfd19ee7b2a862","commits":[],"total_commits":0,"head_commit":{"id":"ebad382c0953e8c6b4039e8d30dfd19ee7b2a862","message":"Fix outdated dependencies (#96)\n\n* Update outdated dependencies\r\n\r\n* Update more outdated dependencies","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/ebad382c0953e8c6b4039e8d30dfd19ee7b2a862","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-09T22:26:29+02:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.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-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38:47+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
|
4
|
1791849301
|
1791849391
|
0
|
1791844728
|
1791849391
|
|
|
0
|
Edit
Delete
|
|
25694
|
Upgrade @actions/core to 1.10.0 for v2 (#210)
|
139
|
5
|
test.yml
|
4
|
5
|
0
|
refs/tags/v2
|
cbed621e49e4c01b044d60f6c80ea4ed6328b281
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2","before& {"ref":"refs/tags/v2","before":"0000000000000000000000000000000000000000","after":"cbed621e49e4c01b044d60f6c80ea4ed6328b281","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...cbed621e49e4c01b044d60f6c80ea4ed6328b281","commits":[],"total_commits":0,"head_commit":{"id":"cbed621e49e4c01b044d60f6c80ea4ed6328b281","message":"Upgrade @actions/core to 1.10.0 for v2 (#210)\n\n* Upgrade @actions/core to 1.10.0\r\n\r\n* update dist/index.js","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/cbed621e49e4c01b044d60f6c80ea4ed6328b281","author":{"name":"Francesco Renzi","email":"rentziass@gmail.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2023-03-08T21:06:44Z","added":[],"removed":[],"modified":["dist/index.js","package-lock.json","package.json"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.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-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
6
|
1791854053
|
1791950481
|
0
|
1791844739
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
26051
|
docs: bind latest thing-cloud runtime UI and stati docs: bind latest thing-cloud runtime UI and static regression...
|
135
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
d820cc6f462a719ddbf43440d5a9b835e6fa09de
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dc5f62499f75ebd37d97e3af126dfc88196f20d8","after":"d820cc6f462a719ddbf43440d5a9b835e6fa09de","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/dc5f62499f75ebd37d97e3af126dfc88196f20d8...d820cc6f462a719ddbf43440d5a9b835e6fa09de","commits":[{"id":"d820cc6f462a719ddbf43440d5a9b835e6fa09de","message":"docs: bind latest thing-cloud runtime UI and static regression\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/d820cc6f462a719ddbf43440d5a9b835e6fa09de","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-17T16:23:49-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.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/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"d820cc6f462a719ddbf43440d5a9b835e6fa09de","message":"docs: bind latest thing-cloud runtime UI and static regression\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/d820cc6f462a719ddbf43440d5a9b835e6fa09de","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-17T16:23:49-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.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/validation-source.latest.json"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1924,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.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-10-12T21:14:44+08:00","updated_at":"2026-10-17T09:36: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
|
10
|
1792279754
|
1792279768
|
0
|
1792279452
|
1792279795
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
26658
|
docs(eios): 记录远端旧历史分支 eios/w0 待删
|
160
|
5
|
ci.yml
|
4
|
5
|
0
|
refs/heads/main
|
a7963ef1fa5c09c7fce284dd8b16c9a452b39949
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62e2d0e7cca21b7b692c1d494021adfaaf5cba07","after":"a7963ef1fa5c09c7fce284dd8b16c9a452b39949","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/62e2d0e7cca21b7b692c1d494021adfaaf5cba07...a7963ef1fa5c09c7fce284dd8b16c9a452b39949","commits":[{"id":"a7963ef1fa5c09c7fce284dd8b16c9a452b39949","message":"docs(eios): 记录远端旧历史分支 eios/w0 待删\n\nGitea 默认分支仍为 eios/w0,暂时无法删除;改为 main 后删除,期间不要往它推。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/a7963ef1fa5c09c7fce284dd8b16c9a452b39949","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T22:10:37-07:00","added":[],"removed":[],"modified":["docs/eios-transformation/README.md"]}],"total_commits":0,"head_commit":{"id":"a7963ef1fa5c09c7fce284dd8b16c9a452b39949","message":"docs(eios): 记录远端旧历史分支 eios/w0 待删\n\nGitea 默认分支仍为 eios/w0,暂时无法删除;改为 main 后删除,期间不要往它推。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/a7963ef1fa5c09c7fce284dd8b16c9a452b39949","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T22:10:37-07:00","added":[],"removed":[],"modified":["docs/eios-transformation/README.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102222,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T12:12:23+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
|
20
|
1793337066
|
1793340464
|
0
|
1793337047
|
1793340464
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23406
|
Add STARS line context planning
|
50
|
5
|
lyra-production-governance.yml
|
5
|
5
|
0
|
refs/heads/codex/p0-edge-governance
|
c51dc5edc2fdf269634a6cbbc50e18200230e42d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/codex/p0-edge-gover {"ref":"refs/heads/codex/p0-edge-governance","before":"00a617f128624eeadc28167b5f20da59a402fc2f","after":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/00a617f128624eeadc28167b5f20da59a402fc2f...c51dc5edc2fdf269634a6cbbc50e18200230e42d","commits":[{"id":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","message":"Add STARS line context planning\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/c51dc5edc2fdf269634a6cbbc50e18200230e42d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-07T05:26:41-07:00","added":["docs/stars-reconcile-pipeline.md","packages/contracts/src/stars-reconcile.test.ts","packages/contracts/src/stars-reconcile.ts","reports/stars-reconcile-spec.latest.json","scripts/check-stars-reconcile-spec.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/production/production.service.ts","apps/api-fastify/src/modules/production/subtitle-output.ts","apps/api-fastify/test/production.integration.test.ts","apps/api-fastify/test/subtitle-output.test.ts","docs/README.md","docs/model-boundaries.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/production.ts","reports/baseline.json","reports/governance.latest.json","scripts/governance-report.mjs"]},{"id":"8cc37a8f39c1c9f6fea631131e610e2003c59fb1","message":"Refine lyric alignment workflows and governance checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/8cc37a8f39c1c9f6fea631131e610e2003c59fb1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T00:43:00-07:00","added":["apps/api-fastify/prisma/migrations/20260702070000_alignment_model_selection/migration.sql","apps/api-fastify/src/modules/alignment/alignment-models.ts","apps/api-fastify/src/modules/alignment/mms-fa.service.ts","apps/api-fastify/src/modules/production/subtitle-output.ts","apps/api-fastify/test/mms-fa.service.test.ts","apps/api-fastify/test/subtitle-output.test.ts","apps/api-nestjs/prisma/migrations/20260702070000_alignment_model_selection/migration.sql","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","reports/codex-material-button-smoke/local-full_mix.wav","reports/codex-material-button-smoke/local-lyrics.txt","reports/ui-click-full_mix.wav","曲库/周杰伦-晴天(mtv)/对齐/alignment.validation.json"],"removed":[],"modified":[".env.example","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/alignment-runs/alignment-runs.service.ts","apps/api-fastify/src/modules/alignment/alignment-validation.ts","apps/api-fastify/src/modules/library/library.service.ts","apps/api-fastify/src/modules/production/production.service.ts","apps/api-fastify/src/plugins/alignment-queue.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/src/routes/alignment.ts","apps/api-fastify/test/alignment-queue.test.ts","apps/api-fastify/test/alignment-runs.integration.test.ts","apps/api-fastify/test/alignment-validation.test.ts","apps/api-fastify/test/alignment.route.test.ts","apps/api-fastify/test/production.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/lyra-data.ts","models/model-assets.v1.json","packages/contracts/src/alignment-run.ts","packages/contracts/src/alignment-validation.ts","packages/contracts/src/alignment.ts","packages/contracts/src/index.ts","packages/contracts/src/production.ts","reports/analysis-artifacts.latest.json","reports/deployment-readiness.latest.json","reports/experience-enhancements.latest.json","reports/frontend-contracts-sync.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/http-ui-acceptance.latest.json","reports/lyra-domain.latest.json","reports/migrations.latest.json","reports/model-acquisition.latest.json","reports/model-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/production-readiness.latest.json","reports/project-independence.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-deployment.latest.json","reports/stem-assets.latest.json","reports/ui-click-acceptance.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/acquire-model-assets.mjs","scripts/check-http-ui-acceptance.mjs","scripts/check-lyra-business.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-ui-click-acceptance.mjs","曲库/Codex-点击导入验收/song.manifest.json","曲库/Codex-点击导入验收/stem-comparison.latest.json","曲库/Codex-点击导入验收/拆解音轨/bs_polarformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/bs_roformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/htdemucs/stem-manifest.json","曲库/周杰伦-晴天(mtv)/song.manifest.json","曲库/周杰伦-晴天(mtv)/stem-comparison.latest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_roformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/htdemucs/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/song.manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/stem-comparison.latest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_polarformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_roformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/htdemucs/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/song.manifest.json","曲库/魏翔--时差(音乐缘计划)/stem-comparison.latest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_roformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/htdemucs/stem-manifest.json"]}],"total_commits":0,"head_commit":{"id":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","message":"Add STARS line context planning\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/c51dc5edc2fdf269634a6cbbc50e18200230e42d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-07T05:26:41-07:00","added":["docs/stars-reconcile-pipeline.md","packages/contracts/src/stars-reconcile.test.ts","packages/contracts/src/stars-reconcile.ts","reports/stars-reconcile-spec.latest.json","scripts/check-stars-reconcile-spec.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/production/production.service.ts","apps/api-fastify/src/modules/production/subtitle-output.ts","apps/api-fastify/test/production.integration.test.ts","apps/api-fastify/test/subtitle-output.test.ts","docs/README.md","docs/model-boundaries.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/production.ts","reports/baseline.json","reports/governance.latest.json","scripts/governance-report.mjs"]},"repository":{"id":50,"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":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257058,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+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
|
4
|
1783431503
|
1783431544
|
0
|
1783431501
|
1783431544
|
|
|
0
|
Edit
Delete
|
|
23415
|
C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出
|
60
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
2358c119b985d2797496bd76d8683556005f5998
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2454d24e46f12337b9574f9d677ddf051fb17005","after":"2358c119b985d2797496bd76d8683556005f5998","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2454d24e46f12337b9574f9d677ddf051fb17005...2358c119b985d2797496bd76d8683556005f5998","commits":[{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 check:runtime 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["reports/alignment-models.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 check:runtime 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["reports/alignment-models.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3835,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.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-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:24:45+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
|
4
|
0
|
1784011200
|
0
|
1784010778
|
1784011200
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23428
|
fix: harden microphone recording fallback
|
62
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
99c0c69becb251d64b434b6ab315d0562888ad8d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"32c70bb2198cf25b362a49e4f74387dd1a47768a","after":"99c0c69becb251d64b434b6ab315d0562888ad8d","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/32c70bb2198cf25b362a49e4f74387dd1a47768a...99c0c69becb251d64b434b6ab315d0562888ad8d","commits":[{"id":"99c0c69becb251d64b434b6ab315d0562888ad8d","message":"fix: harden microphone recording fallback\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/99c0c69becb251d64b434b6ab315d0562888ad8d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-15T21:03:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"99c0c69becb251d64b434b6ab315d0562888ad8d","message":"fix: harden microphone recording fallback\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/99c0c69becb251d64b434b6ab315d0562888ad8d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-15T21:03:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1195,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.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-07-15T08:42:42+08:00","updated_at":"2026-07-15T13:19:41+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
|
1784174640
|
1784174731
|
0
|
1784174638
|
1784174731
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23440
|
fix(governance): close G22 report provenance
|
64
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
49daee39ae62e162a700622733a58a3b0d5fb27c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40cf16918b6f6ee673e92651e5a0a5edb79d86dd","after":"49daee39ae62e162a700622733a58a3b0d5fb27c","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/40cf16918b6f6ee673e92651e5a0a5edb79d86dd...49daee39ae62e162a700622733a58a3b0d5fb27c","commits":[{"id":"49daee39ae62e162a700622733a58a3b0d5fb27c","message":"fix(governance): close G22 report provenance\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/49daee39ae62e162a700622733a58a3b0d5fb27c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:20:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"49daee39ae62e162a700622733a58a3b0d5fb27c","message":"fix(governance): close G22 report provenance\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/49daee39ae62e162a700622733a58a3b0d5fb27c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:20:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-ui-acceptance.mjs"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":815,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.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-07-22T14:37:12+08:00","updated_at":"2026-07-22T15:07:37+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
|
8
|
1784704847
|
1784704904
|
0
|
1784704846
|
1784704904
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23444
|
feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)
|
63
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bbe7744fc0df50ca87397478731523692d59a867","after":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/bbe7744fc0df50ca87397478731523692d59a867...7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","commits":[{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-validation-source.mjs"]}],"total_commits":0,"head_commit":{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-validation-source.mjs"]},"repository":{"id":63,"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":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29685,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.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-07-22T08:56:49+08:00","updated_at":"2026-07-22T12:35: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
|
8
|
1784706050
|
1784706127
|
0
|
1784706047
|
1784706127
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23450
|
chore(reports): refresh post-merge acceptance evid chore(reports): refresh post-merge acceptance evidence...
|
54
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
02a656716b10d2a5a4937ba01086cbd0a9ff4b85
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e109e80574304306c9a5911d5e923d2dc7e6c0f4","after":"02a656716b10d2a5a4937ba01086cbd0a9ff4b85","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/e109e80574304306c9a5911d5e923d2dc7e6c0f4...02a656716b10d2a5a4937ba01086cbd0a9ff4b85","commits":[{"id":"02a656716b10d2a5a4937ba01086cbd0a9ff4b85","message":"chore(reports): refresh post-merge acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/02a656716b10d2a5a4937ba01086cbd0a9ff4b85","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:34:39-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"02a656716b10d2a5a4937ba01086cbd0a9ff4b85","message":"chore(reports): refresh post-merge acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/02a656716b10d2a5a4937ba01086cbd0a9ff4b85","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:34:39-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":883,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.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-07-03T12:24:18+08:00","updated_at":"2026-07-22T16:33: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
|
8
|
1784709310
|
1784709362
|
0
|
1784709310
|
1784709362
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23452
|
feat(platforms): 增加真实 HTTP 数据连接验收
|
51
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
8be066d1f0c5db776932ea77d5e0ee292bb367dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0618a939c6a7f40d91e9160a083313befe7c157","after":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c0618a939c6a7f40d91e9160a083313befe7c157...8be066d1f0c5db776932ea77d5e0ee292bb367dd","commits":[{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},{"id":"a3fd0cc2636423df29dc9dc197c68effebc98908","message":"merge: 合并前端全局唯一性门禁分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a3fd0cc2636423df29dc9dc197c68effebc98908","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:14-07:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/scripts/test-static.mjs"]},{"id":"9167815cbbaae56a96573aeb4cce4af1e02d9ec6","message":"merge: 合并端到端 CI 工作流分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/9167815cbbaae56a96573aeb4cce4af1e02d9ec6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:09-07:00","added":[".github/workflows/e2e.yml"],"removed":[],"modified":[]},{"id":"ebee1953637ceabc41648708e598e9f88666935e","message":"merge: 合并嗨赞歌咏亭品类完整分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ebee1953637ceabc41648708e598e9f88666935e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:05:35-07:00","added":[".claude/skills/CONVENTIONS.md",".claude/skills/index.md",".claude/skills/ygg-fullstack-feature/SKILL.md",".claude/skills/ygg-governance-memory/SKILL.md",".claude/skills/ygg-honesty-boundary/SKILL.md",".claude/skills/ygg-seed-migration-guard/SKILL.md",".claude/skills/ygg-tenant-rbac-guard/SKILL.md",".claude/wf-premium-refresh.js","AGENTS.md","V1.1导航结构.md","docs/loop-engineering/README.md","docs/loop-engineering/acceptance-checklist.md","docs/loop-engineering/agent.md","docs/loop-engineering/all-projects-method.md","docs/loop-engineering/api-contract.md","docs/loop-engineering/implementation-plan.md","docs/reports/frontend-backend-integration-acceptance-2026-06-12.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/scripts/make-pdf.mjs","e2e/scripts/manual-screens.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-action-detail.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-ai-copy.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-cockpit.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-growth.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-stores.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-01.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-02.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-03.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-04.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-05.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-06.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-07.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-08.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-09.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-10.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/artifact-build-manifest.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/contact-sheet.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/yggdrasil-sales-deck.pptx","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/package.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-01.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-02.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-03.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-04.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-05.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-06.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-07.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-08.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-09.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-10.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/profile-plan.txt","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/deck.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-01.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-02.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-03.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-04.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-05.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-06.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-07.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-08.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-09.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-actionDetail.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-ai.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-briefing.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-content.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-funnel.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-growth.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-orders.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-private.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-reviews.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-roi.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-sku.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-tasks.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/claim-spine.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/contact-sheet-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/data.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/design-system.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-02.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-03.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-04.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-05.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-07.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-08.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-09.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-10.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-11.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-12.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/artifact-build-manifest.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/yggdrasil-sales-pro.pptx","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/package.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/contact-sheet.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-01.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-02.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-03.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-04.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-05.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-06.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-07.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-08.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-09.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-10.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-11.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-12.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/profile-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/qa/comeback-scorecard.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/reference-audit.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/deck.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-01.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-02.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-03.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-04.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-05.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-06.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-07.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-08.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-09.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-11.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-12.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/source-notes.txt","outputs/juhi-skills/PROJECT_SKILL_ANALYSIS.md","outputs/juhi-skills/juhi-ygg-api-contract/SKILL.md","outputs/juhi-skills/juhi-ygg-api-contract/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-attribution-pilot/SKILL.md","outputs/juhi-skills/juhi-ygg-attribution-pilot/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-backend-module/SKILL.md","outputs/juhi-skills/juhi-ygg-backend-module/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-frontend-screen/SKILL.md","outputs/juhi-skills/juhi-ygg-frontend-screen/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-governance-memory/SKILL.md","outputs/juhi-skills/juhi-ygg-governance-memory/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-index/SKILL.md","outputs/juhi-skills/juhi-ygg-index/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-mainline-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-mainline-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-prisma-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-prisma-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-runtime-acceptance/SKILL.md","outputs/juhi-skills/juhi-ygg-runtime-acceptance/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-truth-boundary/SKILL.md","outputs/juhi-skills/juhi-ygg-truth-boundary/agents/openai.yaml","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-01-today-briefing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-02-ops-workbench.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-03-ai-command.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-04-growth-loop.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-05-action-attribution.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-06-reviews.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-07-content-studio.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-08-sku-pricing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-09-subscription-value.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-10-chain-stores.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-11-data-center.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-01-home.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-02-ai-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-03-growth-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-04-fulfillment-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-http.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-open.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/claim-spine.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-01.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-02.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-03.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-04.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-05.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-06.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-07.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-08.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-09.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-10.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-11.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-12.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-13.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-14.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/artifact-build-manifest.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/contact-sheet.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/minimal-test.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/yggdrasil-tob-merchant-sales-2026-06.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/minimal-test.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-01.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-02.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-03.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-04.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-05.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-06.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-07.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-08.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-09.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-10.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-11.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-12.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-13.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-14.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/profile-plan.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/build-merchant-sales-deck.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/capture-screenshots.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/source-notes.txt","outputs/manual-screens/c-actionDetail.png","outputs/manual-screens/c-ai.png","outputs/manual-screens/c-audit.png","outputs/manual-screens/c-automation.png","outputs/manual-screens/c-behavior.png","outputs/manual-screens/c-briefing.png","outputs/manual-screens/c-calendar.png","outputs/manual-screens/c-competitor.png","outputs/manual-screens/c-compliance.png","outputs/manual-screens/c-content.png","outputs/manual-screens/c-data.png","outputs/manual-screens/c-dataCenter.png","outputs/manual-screens/c-decor.png","outputs/manual-screens/c-fulfillment.png","outputs/manual-screens/c-funnel.png","outputs/manual-screens/c-growth.png","outputs/manual-screens/c-marketing.png","outputs/manual-screens/c-onboarding.png","outputs/manual-screens/c-orders.png","outputs/manual-screens/c-plans.png","outputs/manual-screens/c-private.png","outputs/manual-screens/c-reviews.png","outputs/manual-screens/c-roi.png","outputs/manual-screens/c-sku.png","outputs/manual-screens/c-stores.png","outputs/manual-screens/c-tasks.png","outputs/manual-screens/k-briefing.png","outputs/manual-screens/k-decor.png","outputs/manual-screens/k-facility.png","outputs/manual-screens/k-fission.png","outputs/manual-screens/k-home.png","outputs/manual-screens/k-member.png","outputs/manual-screens/k-sku.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-action-detail.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-ai-copy.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-cockpit.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-growth.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-stores.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/claim-spine.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/contact-sheet-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/design-system.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-01.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-02.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-03.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-04.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-05.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-06.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-07.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-08.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-09.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-10.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/artifact-build-manifest.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/contact-sheet.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/yggdrasil-sales-rewrite.pptx","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/package.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-01.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-02.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-03.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-04.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-05.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-06.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-07.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-08.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-09.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-10.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/profile-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/deck.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-01.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-02.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-03.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-04.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-05.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-06.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-07.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-08.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-09.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-10.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/source-notes.txt","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit-rgb.png","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit.png","outputs/manual-ygg-sales/presentations/ygg-sales/package.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.css","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/尤克特拉品牌系统提取稿.md","outputs/moodboards/yggdrasil-campaign-trust/run/app.js","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/figma.svg","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/finder.png","outputs/moodboards/yggdrasil-campaign-trust/run/codex-theme.css","outputs/moodboards/yggdrasil-campaign-trust/run/data/runtime-config.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream-static.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/0f0e319bb822e52a9a5f6fb8dbb3a9c4.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/13b49db34415b421a99428f36778ac65.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/3946bbaa837631734bdd5f6f4763b9df.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/79ad9f72fd69f57db5518ab2df814080.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/83a2bf2bc49dd13c2fff7ebae69326c8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/89e9341bd957d2c93dcd2a50db56d748.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/aa8bd14eeefd1527b11be80a4caf5766.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/ab816a218b6a39f01fde317ca3c757b8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/codex-exec-image-results.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/d64effdd3a17068470cf60295a5cfb59.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/e3162d2ec9314428a25347350c209a72.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/edcea5c7563fe2e52d2888f575c55554.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/jobs.jsonl","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/preflight-result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/ai-top-three-cards.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/attribution-ledger.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/campaign-prep-materials.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/compliance-guardrail.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/growth-loop-still-life.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/ai-top-three-cards.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/attribution-ledger.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/campaign-prep-materials.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/compliance-guardrail.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/growth-loop-still-life.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/merchant-morning-proof.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/owner-decision-moment.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/premium-local-commerce.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/product-hero-device.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/service-detail-hands.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/storefront-threshold.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/merchant-morning-proof.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/owner-decision-moment.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/premium-local-commerce.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/product-hero-device.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/service-detail-hands.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/storefront-threshold.png","outputs/moodboards/yggdrasil-campaign-trust/run/index.html","outputs/moodboards/yggdrasil-campaign-trust/run/latest-action.json","outputs/moodboards/yggdrasil-campaign-trust/run/mood-board.html","outputs/moodboards/yggdrasil-campaign-trust/run/platform-icons.js","outputs/moodboards/yggdrasil-campaign-trust/run/run-state.json","outputs/moodboards/yggdrasil-campaign-trust/run/server.mjs","outputs/moodboards/yggdrasil-campaign-trust/run/styles.css","outputs/moodboards/yggdrasil-campaign-trust/run/theme.js","outputs/moodboards/yggdrasil-campaign-trust/spec.json","outputs/playwright/baseline-desktop.png","outputs/playwright/baseline-mobile.png","outputs/playwright/ui-refresh-desktop.png","outputs/playwright/ui-refresh-mobile.png","outputs/playwright/warm-orange-desktop.png","outputs/playwright/warm-orange-mobile.png","outputs/尤克特拉产品说明书.pdf","server/prisma/migrations/20260605061301_member_profile_segment_tags/migration.sql","server/prisma/migrations/20260605071116_behavior_event_telemetry/migration.sql","server/prisma/migrations/20260605075045_behavior_ops_dims/migration.sql","server/prisma/migrations/20260605081708_booking_source_platform/migration.sql","server/prisma/migrations/20260607021000_resources_state_runs/migration.sql","server/prisma/migrations/20260607093000_add_leads_crm/migration.sql","server/prisma/migrations/20260610015718_add_order_kind/migration.sql","server/src/adapters/platform/http.ts","server/src/lib/dates.ts","server/src/lib/fission.ts","server/src/lib/state-machine.ts","server/src/modules/automation-runner/service.ts","server/src/modules/behavior/routes.ts","server/src/modules/behavior/schema.ts","server/src/modules/behavior/service.ts","server/src/modules/leads/routes.ts","server/src/modules/leads/schema.ts","server/src/modules/leads/service.ts","server/src/modules/resources/routes.ts","server/src/modules/resources/schema.ts","server/src/modules/resources/service.ts","server/src/modules/resources/state.ts","server/src/modules/suggestions/schema.ts","server/src/modules/work-calendar/routes.ts","server/src/modules/work-calendar/service.ts","server/test/contract-schema.unit.test.ts","server/test/leads.unit.test.ts","server/test/platform-connection-truth.unit.test.ts","server/test/r23-work-calendar.test.ts","server/test/r24-behavior.test.ts","server/test/r25-member-resolve.test.ts","server/test/r26-content-rbac.test.ts","server/test/r27-restaurant-live-seed.test.ts","server/test/resource-state.unit.test.ts","业务工作流图谱.md","团购本地生活AI运营App/DESIGN-SPEC-v2.md","团购本地生活AI运营App/IOS.md","团购本地生活AI运营App/android/keystore.properties.example","团购本地生活AI运营App/ios/.gitignore","团购本地生活AI运营App/ios/App/App.xcodeproj/project.pbxproj","团购本地生活AI运营App/ios/App/App.xcworkspace/contents.xcworkspacedata","团购本地生活AI运营App/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","团购本地生活AI运营App/ios/App/App/AppDelegate.swift","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","团购本地生活AI运营App/ios/App/App/Base.lproj/LaunchScreen.storyboard","团购本地生活AI运营App/ios/App/App/Base.lproj/Main.storyboard","团购本地生活AI运营App/ios/App/App/Info.plist","团购本地生活AI运营App/ios/App/Podfile","团购本地生活AI运营App/ios/App/Podfile.lock","团购本地生活AI运营App/screens-behavior.jsx","团购本地生活AI运营App/screens-leads.jsx","团购本地生活AI运营App/scripts/android-deploy-check.mjs","团购本地生活AI运营App/scripts/generate-ios-assets.mjs","团购本地生活AI运营App/scripts/ios-deploy-check.mjs","团购本地生活AI运营App/设计令牌.md","尤克特拉产品说明书.md","尤克特拉项目销售手册.md","模块重复治理.md","真实链路与状态机审计矩阵.md","项目模块关系图谱.md"],"removed":["团购本地生活AI运营App/screens-home.jsx"],"modified":[".claude/launch.json",".github/workflows/ci.yml",".gitignore","e2e/tests/02-deep-flows.spec.ts","e2e/tests/03-role-matrix.spec.ts","e2e/utils/app.ts","server/.env.example","server/README.md","server/docker-compose.yml","server/docker-entrypoint.sh","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/platform/index.ts","server/src/adapters/platform/mock.ts","server/src/adapters/platform/types.ts","server/src/adapters/weather/index.ts","server/src/config/env.ts","server/src/lib/context.ts","server/src/lib/money.ts","server/src/lib/platform.ts","server/src/lib/prisma.ts","server/src/modules/actions/routes.ts","server/src/modules/actions/service.ts","server/src/modules/attribution/service.ts","server/src/modules/audit/routes.ts","server/src/modules/automation/routes.ts","server/src/modules/automation/service.ts","server/src/modules/booking/routes.ts","server/src/modules/booking/schema.ts","server/src/modules/booking/service.ts","server/src/modules/briefing/service.ts","server/src/modules/compliance/routes.ts","server/src/modules/content/routes.ts","server/src/modules/content/service.ts","server/src/modules/groupbuy/routes.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/merchant/routes.ts","server/src/modules/merchant/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/metrics/service.ts","server/src/modules/ops/routes.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/orders/routes.ts","server/src/modules/orders/service.ts","server/src/modules/periphery/routes.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/modules/pricing/service.ts","server/src/modules/referral/routes.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/schema.ts","server/src/modules/store/service.ts","server/src/modules/suggestions/routes.ts","server/src/modules/suggestions/service.ts","server/src/modules/tasks/routes.ts","server/src/modules/tasks/schema.ts","server/src/modules/tasks/service.ts","server/src/modules/wallet/routes.ts","server/src/modules/wallet/schema.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/competitor-scan.test.ts","server/test/db-url.ts","server/test/global-setup.ts","server/test/helpers.ts","server/test/platform-adapter.unit.test.ts","server/test/r0-r1-auth.test.ts","server/test/r11-review-care.test.ts","server/test/r12-profile.test.ts","server/test/r15-pricing.test.ts","server/test/r16-platforms.test.ts","server/test/r19-referral.test.ts","server/test/r2-ops.test.ts","server/test/r20-ops.test.ts","server/test/r21-platform-ingest.test.ts","server/test/r3-growth.test.ts","server/test/r4-trust.test.ts","server/test/r8-boundary-concurrency.test.ts","server/test/setup-env.ts","团购本地生活AI运营App/ANDROID.md","团购本地生活AI运营App/README.md","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/android/.gitignore","团购本地生活AI运营App/android/app/build.gradle","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/capacitor.config.json","团购本地生活AI运营App/diagnosis.js","团购本地生活AI运营App/eslint.config.mjs","团购本地生活AI运营App/index.html","团购本地生活AI运营App/merchant-profiles.js","团购本地生活AI运营App/package-lock.json","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-compliance.jsx","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-decor.jsx","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/screens-fulfillment.jsx","团购本地生活AI运营App/screens-growth.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/screens-tasks.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/tweaks-panel.jsx","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","团购本地生活AI运营App/产品诊断与优化方案.html","尤克特拉业务功能分析.md","尤克特拉商业化与融资一页纸.md"]},{"id":"734393621449932f6b8d21e09bf5f220ec998cc5","message":"fix(booking): verify 去除 validFrom 闸 — 修 r22「未来预约当场核销」被误拦\n\n5f3b333 在 verify 加了 `validFrom \u003e now → 尚未生效`,而券 validFrom=startAt。\nr22/r16 setup 对「明天的预约」当场核销时被此闸拦死 → booking 停 BOOKED、completeBooking 返回 409。\nmain verify 无此闸;去除后与 main 对齐,仅保留 validUntil 过期拦截。无测试依赖「尚未生效」。\ntsc / test:unit 通过;r22 集成待 CI 验证(本机无 DB/Docker)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/734393621449932f6b8d21e09bf5f220ec998cc5","author":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"committer":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-07-07T13:58:42+08:00","added":[],"removed":[],"modified":["server/src/modules/booking/service.ts"]}],"total_commits":0,"head_commit":{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6641,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-07-02T16:02:07+08:00","updated_at":"2026-07-14T15:54:47+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
|
8
|
1784712281
|
1784712493
|
0
|
1784712281
|
1784712493
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23466
|
feat: wire sales modules and adversarial governanc feat: wire sales modules and adversarial governance...
|
72
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
283f1bfb6b2f049b0476abb92698db0539bc832f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","after":"283f1bfb6b2f049b0476abb92698db0539bc832f","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a...283f1bfb6b2f049b0476abb92698db0539bc832f","commits":[{"id":"283f1bfb6b2f049b0476abb92698db0539bc832f","message":"feat: wire sales modules and adversarial governance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/283f1bfb6b2f049b0476abb92698db0539bc832f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T21:56:00-07:00","added":["artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-deep-audit.md","reports/module-integration.latest.json","scripts/check-module-integration.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","docs/domain/order-fulfillment-blueprint.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/quotation.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"283f1bfb6b2f049b0476abb92698db0539bc832f","message":"feat: wire sales modules and adversarial governance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/283f1bfb6b2f049b0476abb92698db0539bc832f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T21:56:00-07:00","added":["artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-deep-audit.md","reports/module-integration.latest.json","scripts/check-module-integration.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","docs/domain/order-fulfillment-blueprint.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/quotation.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]},"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":1830,"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":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-07-31T03:51:09+08:00","updated_at":"2026-07-31T12:07: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
|
8
|
1785473784
|
1785473852
|
0
|
1785473782
|
1785473852
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23491
|
chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bo chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound...
|
74
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
a369f4ee008c621f3ef5ada67880cb52a9ad7c9b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6b3be1dafc25b3d82703595f7542769eae6b7744","after":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/6b3be1dafc25b3d82703595f7542769eae6b7744...a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","commits":[{"id":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","message":"chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound\n\n本次刷新的三级证据 provenance 均为 gitSha=fe9a6ae + worktreeDirty=false,\n是本仓第一次在 clean 检出点上取得完整三级绿盘(此前所有轮次都是 dirty 工作区)。\n按发布口径表严格解读,可宣称「本地在 commit fe9a6ae 这一 clean 检出点通过三级门禁」,\n仍不可外推为「远端已发布」或「远端 CI 已拦截」(G14 仍 OPEN)。\n\n- 静态 pnpm check 23:37Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 23:38Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 23:39Z status=passed, 14 用例 / 0 unexpected (floor 14)\n- 门禁对抗探针 probe:gates 11/11 挡下,并用三项元测试反证该套件本身会失败\n\nCLAUDE.md 动态区同步:\n- 发布快照按实更正。本快照在一个 session 内过期四次\n (66f0513 → b0d8e83 → 6b3be1d → a0563c4 → fe9a6ae),并实测遇到远端 503 不可达——\n 据此补记:发布状态只能实时 ls-remote 判定,远端不可达时只能声明\n 「最后一次成功验证的时刻与结果」,不得含糊成「当前已对齐」。\n- 证据新鲜度段标注三级 clean-bound,并新增 probe:gates 一行。\n- 真源地图「状态迁移并发写入」条按实改为 22 条 updateMany + 10 条 raw SQL,\n 写明 raw SQL 是受检的逃生阀而非免检通道。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:41:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"fe9a6ae90e99138fc09be0f7b2e75971b51f1275","message":"feat(governance): 固化对抗探针 pnpm probe:gates,把三类攻破路径变成可重复执行\n\n手工做负向测试不可靠且不可重复。本次把对抗性验收当天用到的攻击手法固化为\n11 条探针(scripts/adversarial-probes.mjs),覆盖三类攻破路径:\n- negative:注入真违规,门禁必须报红(证明有牙)\n- vacuous :破坏门禁的输入定位(改表格列数 / 改被扫描的表名),\n 门禁必须报红而不是「检查了 0 项然后通过」(证明关不掉)\n- binding :用无关代码满足泛化断言(unrelated.length \u003e 0 / 注释里写符号名),\n 门禁必须仍然报红(证明断言绑定到被检查对象本身)\n\n设计取舍\n- 刻意不进 pnpm check:它会临时改写源文件,只适合按需运行;\n 结束时逐字节还原现场并还原 latest 报告,探针产生的污染报告不进证据链\n- 锚点失效单独报 ANCHOR-STALE 且 exit 1:源码重构后锚点对不上,\n 意味着该路径本次无人验证,不等于安全——不得当成通过\n\n实测:11 条全部 BLOCKED,被攻破 0、锚点失效 0;运行前后 git status 指纹一致。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/fe9a6ae90e99138fc09be0f7b2e75971b51f1275","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:32:54-07:00","added":["scripts/adversarial-probes.mjs"],"removed":[],"modified":["CLAUDE.md","package.json"]},{"id":"a0563c40434d93ba1535ce1de39141bdd2b7889a","message":"fix(governance): 门禁空转加固 + 移除审批工单死负载,并回灌空转测试纪律\n\n对抗性验收(2026-08-17)发现「负向测试通过」并不足以证明门禁有牙:\n门禁还可能被**静默关掉**——扫描出 0 项然后宣布通过。两处实测:\n- check:owner-matrix 改表格列数后报「0 行登记,校验通过」\n- check:concurrency-guard 改表名后 raw 写链从 10 条静默降到 5 条仍 exit 0\n两者都是当天刚做完负向测试的门禁。\n\n修复\n- check:owner-matrix 增加 BUILT 行数下溢守卫(地板 25),识别不足即红\n- check:concurrency-guard 的 raw「0 行拒绝」判据绑定到该语句自身的结果变量,\n 避免被无关的 `unrelated.length \u003e 0` 骗过\n- 移除 ApprovalTicket 查询中三处 `include: { toolCalls: true }` 死负载:\n 无组件消费、无测试断言,属白付 JOIN;ToolCall 的读模型消费方按 owner-matrix\n 登记只有 ToolCallsPanel,自行取数\n\n回灌 CLAUDE.md\n- 收尾清单新增「空转测试」与「断言绑定」两条:凡是「扫描出 N 项并逐项断言」的门禁,\n N 本身必须有地板,否则 N=0 是最容易伪造的绿\n- 真源地图补记 10 条 raw SQL 写链为「受检的逃生阀」而非免检通道\n- 发布快照更新至 6b3be1d,并明确区分「已发布」与「已验收」:\n 三级绿盘取自工作区,不等于该提交本身通过门禁\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a0563c40434d93ba1535ce1de39141bdd2b7889a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:24:24-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/platform/approval-tickets.service.ts","apps/api-nestjs/src/platform/approval-tickets.service.ts","apps/web/src/lib/types.ts","scripts/check-order-concurrency-guard.mjs","scripts/check-owner-matrix.mjs"]}],"total_commits":0,"head_commit":{"id":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","message":"chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound\n\n本次刷新的三级证据 provenance 均为 gitSha=fe9a6ae + worktreeDirty=false,\n是本仓第一次在 clean 检出点上取得完整三级绿盘(此前所有轮次都是 dirty 工作区)。\n按发布口径表严格解读,可宣称「本地在 commit fe9a6ae 这一 clean 检出点通过三级门禁」,\n仍不可外推为「远端已发布」或「远端 CI 已拦截」(G14 仍 OPEN)。\n\n- 静态 pnpm check 23:37Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 23:38Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 23:39Z status=passed, 14 用例 / 0 unexpected (floor 14)\n- 门禁对抗探针 probe:gates 11/11 挡下,并用三项元测试反证该套件本身会失败\n\nCLAUDE.md 动态区同步:\n- 发布快照按实更正。本快照在一个 session 内过期四次\n (66f0513 → b0d8e83 → 6b3be1d → a0563c4 → fe9a6ae),并实测遇到远端 503 不可达——\n 据此补记:发布状态只能实时 ls-remote 判定,远端不可达时只能声明\n 「最后一次成功验证的时刻与结果」,不得含糊成「当前已对齐」。\n- 证据新鲜度段标注三级 clean-bound,并新增 probe:gates 一行。\n- 真源地图「状态迁移并发写入」条按实改为 22 条 updateMany + 10 条 raw SQL,\n 写明 raw SQL 是受检的逃生阀而非免检通道。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:41:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5509,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.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-15T06:22:30+08:00","updated_at":"2026-08-18T07:16: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
|
3
|
8
|
1787010094
|
1787010157
|
0
|
1787010092
|
1787010157
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23504
|
fix(ci): tests-passing 解析器剥 ANSI——CI 彩色输出把 354 数成 fix(ci): tests-passing 解析器剥 ANSI——CI 彩色输出把 354 数成 0 触发地板假红...
|
76
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
6a3d263e9c83ec102cd45c7a7303926821bf02cf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e17e315f20a61059ab3b48375897c5f5b6213bdc","after":"6a3d263e9c83ec102cd45c7a7303926821bf02cf","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/e17e315f20a61059ab3b48375897c5f5b6213bdc...6a3d263e9c83ec102cd45c7a7303926821bf02cf","commits":[{"id":"6a3d263e9c83ec102cd45c7a7303926821bf02cf","message":"fix(ci): tests-passing 解析器剥 ANSI——CI 彩色输出把 354 数成 0 触发地板假红\n\nGITHUB_ACTIONS 下 vitest 强制彩色,`Tests` 与数字间夹 \\x1b[1m\\x1b[32m 序列,\n裸正则失配(run 32343375378:三步测试全绿、地板却报 got 0)。\n干净房以 GITHUB_ACTIONS=true CI=true FORCE_COLOR=1 复现并验证:剥色后 354/passed。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6a3d263e9c83ec102cd45c7a7303926821bf02cf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:33:52-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"6a3d263e9c83ec102cd45c7a7303926821bf02cf","message":"fix(ci): tests-passing 解析器剥 ANSI——CI 彩色输出把 354 数成 0 触发地板假红\n\nGITHUB_ACTIONS 下 vitest 强制彩色,`Tests` 与数字间夹 \\x1b[1m\\x1b[32m 序列,\n裸正则失配(run 32343375378:三步测试全绿、地板却报 got 0)。\n干净房以 GITHUB_ACTIONS=true CI=true FORCE_COLOR=1 复现并验证:剥色后 354/passed。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6a3d263e9c83ec102cd45c7a7303926821bf02cf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:33:52-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]},"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":1123,"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":0,"watchers_count":1,"branch_count":2,"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-08-20T15:18: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
|
6
|
1787211237
|
1787211658
|
0
|
1787211236
|
1787211659
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23522
|
fix(governance): make source fingerprints commit-s fix(governance): make source fingerprints commit-stable...
|
57
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
f094101357dc511e450e0e18fab5c91baaed9865
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","after":"f094101357dc511e450e0e18fab5c91baaed9865","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/7a7e42422a19f6ad4c86d4cd320119a7fc912885...f094101357dc511e450e0e18fab5c91baaed9865","commits":[{"id":"f094101357dc511e450e0e18fab5c91baaed9865","message":"fix(governance): make source fingerprints commit-stable\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f094101357dc511e450e0e18fab5c91baaed9865","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:40:28-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/lib/source-fingerprint.mjs"]}],"total_commits":0,"head_commit":{"id":"f094101357dc511e450e0e18fab5c91baaed9865","message":"fix(governance): make source fingerprints commit-stable\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f094101357dc511e450e0e18fab5c91baaed9865","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:40:28-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/lib/source-fingerprint.mjs"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":44400,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-26T00:34:27+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
|
1
|
4
|
1787676047
|
1787676095
|
0
|
1787676046
|
1787676095
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23534
|
feat(operations): govern event recovery and activa feat(operations): govern event recovery and activation leases...
|
81
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
fbedaf6d0398693dc8466b4b72b6265d2397d93c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","after":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/158a8d0a3ccc575be23117643ac664ec1b6f73dc...fbedaf6d0398693dc8466b4b72b6265d2397d93c","commits":[{"id":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","message":"feat(operations): govern event recovery and activation leases\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/fbedaf6d0398693dc8466b4b72b6265d2397d93c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:30:17-07:00","added":["apps/api-fastify/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-fastify/src/modules/service-operations/event-delivery.service.ts","apps/api-nestjs/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-nestjs/src/service-operations/event-delivery.service.ts","apps/web/src/features/service-operations/api/event-delivery-api.ts","apps/web/src/features/service-operations/components/EventDeliveryOperations.tsx","apps/web/src/features/service-operations/hooks/use-event-delivery.ts","packages/contracts/src/event-delivery.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/os-activation.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-fastify/test/service-operations.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/os-activation-dispatcher.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/api-nestjs/test/service-operations.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ServiceOperationsPanels.tsx","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/business-logic-map.md","docs/domain/owner-matrix.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-auth-source.mjs","scripts/check-dual-backend-parity.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","message":"feat(operations): govern event recovery and activation leases\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/fbedaf6d0398693dc8466b4b72b6265d2397d93c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:30:17-07:00","added":["apps/api-fastify/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-fastify/src/modules/service-operations/event-delivery.service.ts","apps/api-nestjs/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-nestjs/src/service-operations/event-delivery.service.ts","apps/web/src/features/service-operations/api/event-delivery-api.ts","apps/web/src/features/service-operations/components/EventDeliveryOperations.tsx","apps/web/src/features/service-operations/hooks/use-event-delivery.ts","packages/contracts/src/event-delivery.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/os-activation.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-fastify/test/service-operations.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/os-activation-dispatcher.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/api-nestjs/test/service-operations.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ServiceOperationsPanels.tsx","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/business-logic-map.md","docs/domain/owner-matrix.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-auth-source.mjs","scripts/check-dual-backend-parity.mjs","scripts/governance-report.mjs"]},"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":2236,"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-08-26T10:07: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
|
6
|
1787712441
|
1787712471
|
0
|
1787711431
|
1787712472
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23547
|
fix(ci): full-history checkout so F5 can verify re fix(ci): full-history checkout so F5 can verify report provenance...
|
91
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e465f302d62150997d35782bfec2304043dd605d","after":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/e465f302d62150997d35782bfec2304043dd605d...fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","commits":[{"id":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","message":"fix(ci): full-history checkout so F5 can verify report provenance\n\nCI run #4 实锤:actions/checkout 默认 depth-1 浅克隆只含当前提交,\nfork-readiness F5 校验验收报告 provenance.gitSha(166f9b3,真实祖先)\n时 git cat-file 查无此 commit,把本仓真证据误判为外仓伪证。两 job 均\nfetch-depth: 0(历史极小,零成本);不给 F5 加浅克隆豁免——豁免正是\n它要防的伪证通道。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:49:49-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","message":"fix(ci): full-history checkout so F5 can verify report provenance\n\nCI run #4 实锤:actions/checkout 默认 depth-1 浅克隆只含当前提交,\nfork-readiness F5 校验验收报告 provenance.gitSha(166f9b3,真实祖先)\n时 git cat-file 查无此 commit,把本仓真证据误判为外仓伪证。两 job 均\nfetch-depth: 0(历史极小,零成本);不给 F5 加浅克隆豁免——豁免正是\n它要防的伪证通道。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:49:49-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2985,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.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-30T09:20:06+08:00","updated_at":"2026-08-30T09:45: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
|
8
|
1788054595
|
1788054676
|
0
|
1788054593
|
1788054676
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23559
|
docs: H3 能力图谱固化(Context-to-AudioVideo 定位,证据分级)
|
90
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
8d38d4378b829970bdaf5ccb811e872883fb9d66
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","after":"8d38d4378b829970bdaf5ccb811e872883fb9d66","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/cc4fd9ff70eff1c23556db5da7ac36b0639383e8...8d38d4378b829970bdaf5ccb811e872883fb9d66","commits":[{"id":"8d38d4378b829970bdaf5ccb811e872883fb9d66","message":"docs: H3 能力图谱固化(Context-to-AudioVideo 定位,证据分级)\n\n用户研究简报 + 官方文档要点入库 docs/domain/h3-capability-map.md:\n- ✅ 本机已验证:三工作流 _workflow_map、ref2va 参考硬约束\n (图≤9/视频≤3含音轨/音频≤3不可单独/总≤12/顺序即语义/帧率必须随媒体)\n- 📄 官方引用:关系分级、运镜词表、多镜头 schema、声音四类、\n 完整系统(Context-IR/Regenerate-2K)≠开放权重 等\n- 路线图锚点:分镜段 → 可挂参考的音画生成单元(fl2va 先行、ref2va 随后)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/8d38d4378b829970bdaf5ccb811e872883fb9d66","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:29:02-07:00","added":["docs/domain/h3-capability-map.md"],"removed":[],"modified":["docs/domain/storyboard-blueprint.md"]}],"total_commits":0,"head_commit":{"id":"8d38d4378b829970bdaf5ccb811e872883fb9d66","message":"docs: H3 能力图谱固化(Context-to-AudioVideo 定位,证据分级)\n\n用户研究简报 + 官方文档要点入库 docs/domain/h3-capability-map.md:\n- ✅ 本机已验证:三工作流 _workflow_map、ref2va 参考硬约束\n (图≤9/视频≤3含音轨/音频≤3不可单独/总≤12/顺序即语义/帧率必须随媒体)\n- 📄 官方引用:关系分级、运镜词表、多镜头 schema、声音四类、\n 完整系统(Context-IR/Regenerate-2K)≠开放权重 等\n- 路线图锚点:分镜段 → 可挂参考的音画生成单元(fl2va 先行、ref2va 随后)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/8d38d4378b829970bdaf5ccb811e872883fb9d66","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:29:02-07:00","added":["docs/domain/h3-capability-map.md"],"removed":[],"modified":["docs/domain/storyboard-blueprint.md"]},"repository":{"id":90,"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":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":985,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.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-30T09:07:20+08:00","updated_at":"2026-08-30T11:23: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
|
6
|
1788060812
|
1788060842
|
0
|
1788060627
|
1788060844
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23604
|
Merge branch 'governance/consolidate-20260902& Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)...
|
67
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
03d95db096af66a1e7af7708a99156f194f2c702
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"205116d7e6e0ff602d1773c2ec986b02223b1e0e","after":"03d95db096af66a1e7af7708a99156f194f2c702","compare_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/compare/205116d7e6e0ff602d1773c2ec986b02223b1e0e...03d95db096af66a1e7af7708a99156f194f2c702","commits":[{"id":"03d95db096af66a1e7af7708a99156f194f2c702","message":"Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/03d95db096af66a1e7af7708a99156f194f2c702","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-02T16:39:01-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/src/lib/review-artifacts.ts","apps/web/src/lib/structure-mode.ts","apps/web/vitest.config.ts","config/structure-modes.v1.json","docs/domain/review-manual-timing-blueprint.md","reports/export-contract.freeze.json","reports/export-contract.latest.json","scripts/check-export-contract.mjs","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/lib/provenance.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/tests/test_cli_declared.py","services/structure_lyrics/tests/test_ffmpeg_resolution.py","services/structure_lyrics/tests/test_vocal_structure.py","workers/demucs/README.md","复核工作台.dc.html"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/song-name.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-pipeline-tests.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_phase2.py","services/structure_lyrics/tests/test_tokenize.py","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/run_mms_fa.py","workers/structure/README.md","workers/structure/run_structure.py"]},{"id":"7a871ea9c56ab4dfbb000e4f806a3759a5e962be","message":"治理: 整合三条工作线 + 关闭 C31–C36/G21/G30 + 手工合入 C29(第二台机器 runtime 93 / ui 12 首绿)\n\n整合:本分支基于 origin/governance/adversarial-audit-fixes-20260728(f77fe27),叠加\n2026-08-30 本地模型可移植性工作(models:download / models:verify / models:setup-workers /\nmodels:normalize-manifest;manifest 钉 revision 并剔除 .cache 条目;demucs 捆绑 imageio-ffmpeg;\nstructure worker HF_MODULES_CACHE),并按「不另立第二份查找」手工合入\nclaude/clever-morse-0c9e45(20f1c2e,C29):export-format.ts 纯函数层 + vitest,\nreview-paths.ts 收口进既有 review-artifacts.ts(resolveArtifactPath 泛化,audio 路由同用)。\n\n关闭:\n- C31 治理聚合器 fail-open:runGate() 要求子门禁报告本轮新鲜/可解析/带指标,否则 [gate-failed] 红;\n 禁 `?? -1`/`?? 0` 折算。负向:写报告前 throw、exit 0 不写报告 均精确红\n- C32 模型资产入棘轮(违规只降、资产/文件数只升)+ 磁盘→manifest 未登记即红 + 可复现下载 revision∨uri\n- C33 docs-truth 扩到全部面向人的文档与无反引号 prose,八类新断言;models/ 按 manifest+git 判定\n (防干净检出必红,同时覆盖 G30);首跑 60 处漂移全部逐条订正\n- C34 ffmpeg 解析单源 resolve_ffmpeg(系统 PATH→imageio-ffmpeg),check:pipeline 干净机器不再必红,\n pytest 地板 139→143\n- C35 /api/review/audio 无 Range 致跟播死锁:lib/audio-range.ts 单源,两条音频路由共用,6 例 vitest\n- C36 验收链宿主机污染四连:prisma:generate --concurrency=1 + 验收前置 prisma-generate;脚本钉空\n NEXT_PUBLIC_API_URL/AUTH_TOKEN;删多余 apps/web/pnpm-lock.yaml;Playwright --disable-audio-output\n- G21 多代理适配器同源:.claude/skills 唯一真源,sync:agent-skills 生成 .agents/skills,\n check:governance-docs 比对(缺失/多出/漂移即红);幽灵 PROJECT-PROFILE 引用与假调用文案订正\n- G30 由 C33 覆盖关闭\n\n证据(本地工作区,dirty 状态生成):pnpm check exit 0;check:pipeline 143/143;\ncheck:runtime 93/93(testsPassed 地板 56→93,含 apps/web vitest 37 例);check:ui 12/12\n(UI_WEB_PORT=3141 / UI_API_PORT=3247);MODEL_ASSETS_FULL_HASH=1 42 文件全量哈希绿;\nown-tests 14 / own-test-cases 106。所有负向测试见 docs/governance-experience.md 各条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/7a871ea9c56ab4dfbb000e4f806a3759a5e962be","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-02T16:38:59-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/vitest.config.ts","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/tests/test_ffmpeg_resolution.py","workers/demucs/README.md"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md","CLAUDE.md","README.md","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/review-artifacts.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-governance-docs.mjs","scripts/check-model-assets.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/requirements.txt","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/structure/README.md","workers/structure/run_structure.py"]},{"id":"f77fe276fc4f6336bb58132bef8e01e83b4c9ea1","message":"fix: 对抗验收 C30——键口径双源静默失败 / 导出与手改不同源 / 会计头幽灵声称;并补视图精度\n\n对刚落地的手改写链做对抗性验收(try-to-break-it),当场抓到三处、全部修复并接入回归:\n- C30①【数据完整性】编辑键口径双源:校验用 Number(\"01\")=1 找得到行、应用用\n String(line_id)=\"1\" 查不到该键 → \"01\" 判合法却不落盘(响应 ok:true/manualLines:0);\n 该行本已有手改时更会被 apply 当\"缺席\"**静默还原**(实测本意改 end=14.5、磁盘回退 13.2)。\n 修法:键统一 ^(0|[1-9]\\d*)$ fail closed,校验与应用共用同一把钥匙\n- C30②【双出口矛盾】export 只查 \u003csong\u003e_p2/ 而手改按两级查找写入 → cli 直跑产出的\n \u003csong\u003e/line_times.json 会「页面看得到手改、导出读不到」。修法:export 收口\n resolveLineTimesPath(与读/写路由同源)\n- C30③【幽灵声称】蓝图两处写 X-Export-Manual-Edits「M1 随做」实则从未实现 → 真加会计头\n- 视图精度(用户新需求):刻度加亚秒档(短歌 16× 从 0 个标签 → 56 个 0.1s 刻度)+\n 标签带小数;zoom-to-line 改「最接近目标占比 1/3」(长拖腔行 19%→38%);字条加刻度栅格\n + 走带上画字条窗口投影(两个时间视图互相定位);读数精度随每像素秒数自适应到 ms 级;\n 字条字块同步逐字高亮 + 播放头;修字条头部窄栏文案与读数交错换行\n- 验收:check:ui 12 用例全绿(新增导出一致性、走带精度两例 + 非规范化键负向断言),\n 地板 ui 10→12、ownTestCases 66→69;pnpm check 静态全链绿;负向测试实证:\n 退回键守卫缺陷形态即精确红在该断言、恢复复绿\n- 判读纪律实证入册:后台通知 exit code 被管道 tail 吞掉(通知 exit 0 / 报告 failed),\n 只认 runner report status 或显式 set -o pipefail\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/f77fe276fc4f6336bb58132bef8e01e83b4c9ea1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-08T11:32:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/manual-edits.ts","docs/domain/review-manual-timing-blueprint.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"3fdb4053791bac065674586a5173a8a41aa5a0c4","message":"feat: 复核工作台手改写链 M1——直改产物+留档+拖动/打点/快捷键;走带播放链路补齐机器验收\n\n- 手改(ManualTimingEdit,2026-08-08 六项拍板落地):编辑态(E)走带行区间双手柄拖动、\n 字时间编辑条(局部波形+字块拖动+联动边界+播放同步逐字高亮与播放头)、G29 null 字赋时、\n T 逐字打点(回补 100ms)、[ ] ; ' , . I O 微调与 ⌘Z/⌘S;保存=整卷 PUT 直改\n line_times.json + manual.original 留档(沿 clamped_from 纪律),指纹乐观锁 409 +\n 执行中 409(文件双写者显式登记);重跑 fail closed(409 MANUAL_EDITS_PRESENT →\n confirmDiscardManualEdits)+ 自动备份 .manual-backups/(永不自动套用);reconcile 单源\n lib/manual-edits.ts、产物定位单源 lib/review-artifacts.ts(读/写/守卫共用 _p2 优先);\n 蓝图 docs/domain/review-manual-timing-blueprint.md + owner-matrix 登记\n- 走带整曲播放链路(前一轮未提交部分随本提交入库):/api/review/full-audio(HTTP Range +\n 扩展名白名单,C28 收口)+ audio-source 单源 + audio-probe fixture + 真波形/seek/跟播/\n 双音源互斥 e2e + 深色三栏工作台改版余量\n- 验收:check:ui 10 用例全绿(新增手改用例:真实鼠标拖字块+真实键盘 [+落盘留档回读+\n 重跑 409+还原清 manual+指纹/非法/穿越负向矩阵),地板 ui 7→10、ownTestCases 62→66;\n pnpm check 静态全链绿;备份路径 live 实证(confirm→备份含手改值)\n- 教训入册(G18):浏览器面板按键注入不带 e.code,快捷键实测须真键盘/Playwright;\n 拖动手势收 buttons===0 悬停移动防\"粘手\"(pointerup 窗外丢失实锤)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3fdb4053791bac065674586a5173a8a41aa5a0c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-08T11:10:41-07:00","added":["apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.ts","docs/domain/review-manual-timing-blueprint.md","复核工作台.dc.html"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/review/page.tsx","apps/web/tsconfig.json","docs/domain/owner-matrix.md","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"88df9fddc74d13ebbc389e8ca265c8953c06bc22","message":"治理: /review 首个自动化验收——fixture 注入 + G29 null 字芯片用例,UI 地板 6→7\n\n- REVIEW_WORKDIR 注入点 + 仓内确定性 fixture(fixture-song,含 G29 null 时间字)\n- check:ui 第 7 例:字级时间面板渲染 / null 字禁用虚线芯片(title 无对齐证据)/\n 有证据字可点击试听\n- 负向测试:fixture 缺失整轮红且 e2e-results 显示仅新用例 ok:false(其余 6 绿)\n- 地板 uiTestsPassed 6→7、ownTestCases 62→63;报告绑定 gitSha 348939f5\n- 边界如实记:执行链路(C24 重跑刷新)仍无自动化,fixture 用例覆盖不到\n\ncheck / check:ui(7) 本机全绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/88df9fddc74d13ebbc389e8ca265c8953c06bc22","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-01T22:14:08-07:00","added":["apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"03d95db096af66a1e7af7708a99156f194f2c702","message":"Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/03d95db096af66a1e7af7708a99156f194f2c702","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-02T16:39:01-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/src/lib/review-artifacts.ts","apps/web/src/lib/structure-mode.ts","apps/web/vitest.config.ts","config/structure-modes.v1.json","docs/domain/review-manual-timing-blueprint.md","reports/export-contract.freeze.json","reports/export-contract.latest.json","scripts/check-export-contract.mjs","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/lib/provenance.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/tests/test_cli_declared.py","services/structure_lyrics/tests/test_ffmpeg_resolution.py","services/structure_lyrics/tests/test_vocal_structure.py","workers/demucs/README.md","复核工作台.dc.html"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/song-name.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-pipeline-tests.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_phase2.py","services/structure_lyrics/tests/test_tokenize.py","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/run_mms_fa.py","workers/structure/README.md","workers/structure/run_structure.py"]},"repository":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2585,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-28T14:19:19+08:00","updated_at":"2026-09-03T07:39: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
|
3
|
5
|
1788392344
|
1788392386
|
0
|
1788392344
|
1788392386
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23867
|
docs(reports): record clean candidate and restore docs(reports): record clean candidate and restore regression at 7b72ee9...
|
116
|
5
|
platform.yml
|
5
|
5
|
0
|
refs/heads/main
|
2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e332908c794bfa0f3afbc59886fdf8c89c0486c8","after":"2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/e332908c794bfa0f3afbc59886fdf8c89c0486c8...2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","commits":[{"id":"2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","message":"docs(reports): record clean candidate and restore regression at 7b72ee9\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","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-12T00:04:51-07:00","added":["docs/候选校验与恢复脚本修复记录-2026-09-12.md","reports/candidate-restore-regression.2026-09-12.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/facts.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json"]},{"id":"7b72ee95a3cb68cf2d0c620e6949ae81ef3edb0e","message":"fix(governance): reject incomplete candidate evidence and failed restore drills\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/7b72ee95a3cb68cf2d0c620e6949ae81ef3edb0e","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-12T00:03:45-07:00","added":["governance/test/restore-drill.test.mjs"],"removed":[],"modified":["governance/README.md","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs","stack/README.md","stack/backup/restore-drill.sh"]},{"id":"cfcf8b6bc620857e266cdf05d9ac72db4a6d7b77","message":"chore(reports): refresh clean static evidence @ dc1a52c(S-6/S-7 后:runtime 213 / UI 5 绑定 723699d;地板 213)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/cfcf8b6bc620857e266cdf05d9ac72db4a6d7b77","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-12T00:01:48-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"dc1a52c37af6b971f986bcfa5a7c2a92f88e84b5","message":"docs(runtime): record clean commit acceptance @ 723699d(runtime 213 / UI 5 / 差分 0,含 platform-tests 端口一致性夹具 14 例;地板收紧 testsPassed 213)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/dc1a52c37af6b971f986bcfa5a7c2a92f88e84b5","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-12T00:01:10-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]},{"id":"723699d09a76ae2fa9d22fb8d4672bf2a23ab6da","message":"feat(runtime): S-6 端口一致性共用夹具 + S-7 platform-tests 工作区包(e2e / chaos / ui 骨架,开发计划 §3A T-2—T-4)\n\n- runtime/test(`platform-tests`,进 pnpm-workspace 与 turbo test):port/platform-ports.conformance.ts 把框架 kernel/src/platform-ports.test.ts\n 参数化为 describePortConformance(label, factory, profile),不变量:四端口非空 name 且未配置 = 内核 fail-closed 对象;权限端口对任何输入只返回决策\n 永不抛错、拒绝带稳定 reasonCode;审计 / 事实出口 / 凭据未配置抛 PlatformPortNotConfiguredError、真实提供方拒畸形输入并返回契约形状;\n 内核 zod schema 拒绝缺上下文 / 原始载荷 / 越界 TTL。kernel-defaults.test.ts 先对 fail-closed 与 local 两束跑通(14 例)——模块 shape 提供方\n (Mx-2)与 @juhai/client-*(CL)接入后复用同一夹具。\n- e2e/mainline(6 段)、chaos/fail-closed(3 段)、ui/query-face(2 段)以 it.todo(\"pending-dec: …\") 登记(11 todo,机器可数),转实时删除 todo。\n- runtime 静态门禁 14 项 + lint + typecheck 通过(F7 无空目录)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/723699d09a76ae2fa9d22fb8d4672bf2a23ab6da","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-11T23:58:57-07:00","added":["runtime/test/README.md","runtime/test/chaos/fail-closed.test.ts","runtime/test/e2e/mainline.test.ts","runtime/test/package.json","runtime/test/port/kernel-defaults.test.ts","runtime/test/port/platform-ports.conformance.ts","runtime/test/tsconfig.json","runtime/test/ui/query-face.test.ts","runtime/test/vitest.config.ts"],"removed":[],"modified":["runtime/pnpm-lock.yaml","runtime/pnpm-workspace.yaml"]}],"total_commits":0,"head_commit":{"id":"2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","message":"docs(reports): record clean candidate and restore regression at 7b72ee9\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","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-12T00:04:51-07:00","added":["docs/候选校验与恢复脚本修复记录-2026-09-12.md","reports/candidate-restore-regression.2026-09-12.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/facts.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json"]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1723,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.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-09-11T07:33:25+08:00","updated_at":"2026-09-12T14:06: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
|
22
|
1789196750
|
1789196774
|
0
|
1789196750
|
1789196793
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23887
|
test(platform): keep dispatcher fixtures aligned w test(platform): keep dispatcher fixtures aligned with Redis client options...
|
83
|
5
|
platform-governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
c934bc46240daae849ad93cfacaa3b25c41b323f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df46b98835ff77c7f4675e043d0869799fbb8d08","after":"c934bc46240daae849ad93cfacaa3b25c41b323f","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/df46b98835ff77c7f4675e043d0869799fbb8d08...c934bc46240daae849ad93cfacaa3b25c41b323f","commits":[{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"]},{"id":"330a3287b5c0b68652d73af62cab45f99b0d5a84","message":"fix(platform): scope realtime channels for shared development Redis\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/330a3287b5c0b68652d73af62cab45f99b0d5a84","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-12T02:26:46-07:00","added":["docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"],"removed":[],"modified":[".gitignore","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","packages/contracts/src/realtime.ts"]}],"total_commits":0,"head_commit":{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.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":4021,"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":1,"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-12T16:53: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
|
1
|
8
|
1789206529
|
1789206583
|
0
|
1789206499
|
1789206583
|
|
|
0
|
Edit
Delete
|
|
23993
|
docs(决策): 决策批次 2026-09-16——31 项待裁事项一次签署并登记
|
117
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
c641151481665a321840ee8081e09101a3b74360
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc","after":"c641151481665a321840ee8081e09101a3b74360","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/ecc77d987dbd2cfd9e00a3655fdd68efcd994bcc...c641151481665a321840ee8081e09101a3b74360","commits":[{"id":"c641151481665a321840ee8081e09101a3b74360","message":"docs(决策): 决策批次 2026-09-16——31 项待裁事项一次签署并登记\n\n目录负责人经会话逐条签署:A 批 7 条登记与收口全部批准(CHG-007、CHG-002 → 003 → 006、CHG-001 追认、审批记录终态 merged、门禁脚本按 SHA 引用、permissions.json 离开 draft、CHG-004 阶段 2 分两批);B 批:单人代签长期化、CI 通道 B 案、19 个 PR 按登记顺序合并、Catalog 保持 proposed 到 staging 晋级;C 批:Q01—Q10 按收口方案采纳,X06 由 identity 作业编排,G-3 自建限流镜像、方法白名单回收入口层,prod 批准人必须 human,drift 升阻断,碰撞卷 dump 后删,内核一步升 0.22.0,订阅计费并入 C19,OpenBao dev 立即启用,OS 先接决策 API,嗨设允许自建,Alertmanager + 企业 IM;D 批:staging TLS 先 internal 再 ACME,§6 偏差六条按建议。五处改案及后果见批次 §1A。\n\n登记:待裁决架构事项 CHG-001 / N-02 / N-07 三行改为已裁决;开发计划 §8 新增变更记录(偏差 #5 / #23 / #31 随之关闭)。未做:DEC-010 附条件修订与 C19 范围改写各需一个 CHG。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/c641151481665a321840ee8081e09101a3b74360","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-16T16:08:02-07:00","added":["平台治理/doc/decisions/决策批次-2026-09-16.md"],"removed":[],"modified":["平台治理/doc/decisions/待裁决架构事项.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"c641151481665a321840ee8081e09101a3b74360","message":"docs(决策): 决策批次 2026-09-16——31 项待裁事项一次签署并登记\n\n目录负责人经会话逐条签署:A 批 7 条登记与收口全部批准(CHG-007、CHG-002 → 003 → 006、CHG-001 追认、审批记录终态 merged、门禁脚本按 SHA 引用、permissions.json 离开 draft、CHG-004 阶段 2 分两批);B 批:单人代签长期化、CI 通道 B 案、19 个 PR 按登记顺序合并、Catalog 保持 proposed 到 staging 晋级;C 批:Q01—Q10 按收口方案采纳,X06 由 identity 作业编排,G-3 自建限流镜像、方法白名单回收入口层,prod 批准人必须 human,drift 升阻断,碰撞卷 dump 后删,内核一步升 0.22.0,订阅计费并入 C19,OpenBao dev 立即启用,OS 先接决策 API,嗨设允许自建,Alertmanager + 企业 IM;D 批:staging TLS 先 internal 再 ACME,§6 偏差六条按建议。五处改案及后果见批次 §1A。\n\n登记:待裁决架构事项 CHG-001 / N-02 / N-07 三行改为已裁决;开发计划 §8 新增变更记录(偏差 #5 / #23 / #31 随之关闭)。未做:DEC-010 附条件修订与 C19 范围改写各需一个 CHG。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/c641151481665a321840ee8081e09101a3b74360","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-16T16:08:02-07:00","added":["平台治理/doc/decisions/决策批次-2026-09-16.md"],"removed":[],"modified":["平台治理/doc/decisions/待裁决架构事项.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6732,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-16T22:50: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
|
1
|
4
|
1789601258
|
1789601272
|
0
|
1789601223
|
1789601272
|
|
|
0
|
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
|
|
24650
|
Reach disposable PostgreSQL through runner Docker Reach disposable PostgreSQL through runner Docker gateway...
|
121
|
5
|
kernel-ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
a36511f3577f8c6e3b0198eed24ed3ebef756a15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b9ae9838a77688fb2e40e839c7416057071ca33a","after":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/b9ae9838a77688fb2e40e839c7416057071ca33a...a36511f3577f8c6e3b0198eed24ed3ebef756a15","commits":[{"id":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","message":"Reach disposable PostgreSQL through runner Docker gateway\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/a36511f3577f8c6e3b0198eed24ed3ebef756a15","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-29T09:42:53-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]}],"total_commits":0,"head_commit":{"id":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","message":"Reach disposable PostgreSQL through runner Docker gateway\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/a36511f3577f8c6e3b0198eed24ed3ebef756a15","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-29T09:42:53-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":30317,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:41:15+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
|
4
|
1790700179
|
1790700197
|
0
|
1790700178
|
1790700197
|
|
|
0
|
Edit
Delete
|
|
25587
|
Merge branch 'codex/chg036-stack-8173ef3f' Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform...
|
133
|
5
|
infra.yml
|
5
|
5
|
0
|
refs/heads/main
|
4a41adae67bcf5be2d98b33d6257c0a6de632d69
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","after":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8...4a41adae67bcf5be2d98b33d6257c0a6de632d69","commits":[{"id":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","message":"Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4a41adae67bcf5be2d98b33d6257c0a6de632d69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:22-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},{"id":"4bb16dec341c6ad983cb2fc4d473446aaeae9323","message":"fix(chg036): propagate compose parity failures and validate both overlay sets\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4bb16dec341c6ad983cb2fc4d473446aaeae9323","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:15-07:00","added":["test/compose-parity.test.mjs"],"removed":[],"modified":["docs/迁出方案.md","scripts/verify-compose-parity.sh"]},{"id":"90d82543c073535d2b92b5d0938efc9f7372eabc","message":"Merge Scope registration and candidate verification hardening\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/90d82543c073535d2b92b5d0938efc9f7372eabc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:16:26-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},{"id":"0e290b999c46c483dcaabdb6b9c3322ed99b0105","message":"fix(governance): register OS Scope and bind candidate reports to CI attempt\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/0e290b999c46c483dcaabdb6b9c3322ed99b0105","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:13:44-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]}],"total_commits":0,"head_commit":{"id":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","message":"Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4a41adae67bcf5be2d98b33d6257c0a6de632d69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:22-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},"repository":{"id":133,"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":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":441,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.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-10-11T21:11:15+08:00","updated_at":"2026-10-12T07:16:25+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
|
1791761287
|
1791761468
|
0
|
1791761287
|
1791761468
|
|
|
0
|
Edit
Delete
|
|
25633
|
feat(console): 合并控制台逐页布局与样式改造
|
125
|
16
|
verify.yml
|
5
|
16
|
0
|
refs/heads/main
|
faac5481c1cca66e4708222686b6588a43938150
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4bda2cc02706e1c64d5cd23c233673a0b32d0a72","after":"faac5481c1cca66e4708222686b6588a43938150","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/4bda2cc02706e1c64d5cd23c233673a0b32d0a72...faac5481c1cca66e4708222686b6588a43938150","commits":[{"id":"faac5481c1cca66e4708222686b6588a43938150","message":"feat(console): 合并控制台逐页布局与样式改造\n\n控制台各页面原先列表用「查看详情」按钮、详情是整张表单、弹窗操作区与空状态各不相同,常用信息和危险操作混在一起。合并 feat/console-layout 分支,按统一的列表、抽屉与弹窗约定逐页重排企业内、平台侧与应用内的管理页面。\n\n实现内容:\n- 列表统一为整行可点(OpenableRow 或同交互的专用行),名称为链接或按钮、末列右箭头,需要处理的状态用 cell-note 提示;空状态改为带图标、说明与操作的公共 EmptyList,无数据时不显示分页\n- 详情抽屉按「基本信息 / 业务分区 / 危险区」分区,修改就地展开且同一时间只进行一项;危险操作默认收起,展开后用单选卡片或确认勾选\n- 企业、应用接入改为带分区标签的详情页;新增只读组织架构图;成员、部门、用户组、所有账号、企业与平台管理员、应用开通、操作记录、权限清单、角色、角色分配、程序接入(密钥管理内嵌抽屉)与程序身份完成改造\n- 弹窗底部统一使用 FormActions「取消 + 主操作」,多步弹窗提供「重新选择」;权限统一以名称为主、代码为辅显示,勾选清单统一为带边框的列表\n- 同步更新各页面单元测试与相关验收脚本中的文案和定位\n\n验证:\n- 分支上每次提交前运行 npm run check:format:check、lint、typecheck、test、build 通过,最后一次 Vitest 26 个文件 223 项全部通过\n- 各页面在浏览器 1280 宽、375 窄屏及亮/暗色下核对;程序接入、程序身份等演示环境缺数据的页面以页面内临时改写接口响应检查,未提交写操作\n- 验收脚本仅执行 node --check,未实际运行\n- 合并无冲突,main 上未单独重新运行检查;平台权限查询接入、个人中心尚未改造\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/faac5481c1cca66e4708222686b6588a43938150","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:07:51-07:00","added":["iam-admin-web/src/pages/management/OrganizationChartPage.tsx","iam-admin-web/src/pages/management/PlatformTenantPage.tsx","iam-admin-web/src/test/organizations.test.tsx"],"removed":[],"modified":["iam-admin-web/scripts/acceptance-group-lifecycle.mjs","iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/scripts/acceptance-t02.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/scripts/acceptance-t06.mjs","iam-admin-web/src/App.tsx","iam-admin-web/src/components/Management.tsx","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationShared.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/application-lifecycle.test.tsx","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx","iam-admin-web/src/test/group-editor.test.tsx","iam-admin-web/src/test/group-lifecycle.test.tsx","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx","iam-admin-web/src/test/management-integration.test.tsx","iam-admin-web/src/test/service-principals.test.tsx"]},{"id":"3cf111b21a47760e5c71fc6b2fba96d882dbd3f1","message":"feat(console): 把程序身份详情改为分区抽屉并列出使用它的程序客户端\n\n程序身份详情是一张整体表单,改名、更换负责人和停用都要勾选确认并一起提交;负责人失效时改名会直接被后端拒绝,界面却没有提示;列表每行放「查看详情」按钮,页面顶部还有单独的说明框。按已定的列表与抽屉约定重排。\n\n实现内容:\n- 页面说明并入卡片描述;列表改为整行可点,负责人失效时在负责人下用 cell-note 提示;空列表使用「还没有程序身份」定制空状态\n- 详情抽屉分「基本信息 / 负责人 / 程序客户端 / 停用或恢复」:改名与更换负责人就地展开,不需要影响确认;停用或恢复在危险区展开并须确认;同一时间只进行一项修改,每项修改都带上其余字段的当前值提交到原有整体保存接口\n- 正常状态下负责人失效时禁用「修改名称」并提示先更换负责人,状态说明改为程序暂时不能获取令牌;已停用且负责人失效时恢复按钮不可用\n- 新增「程序客户端」分区:按身份代码搜索程序客户端后再按身份标识过滤(最多 100 个),链接到程序接入详情;没有客户端时给出前往程序接入的链接\n- 新建改为独立弹窗:名称、代码与平铺的负责人选择,底部使用 FormActions;负责人选择改为「选择 成员代码」按钮\n- 保存后焦点留在抽屉内;重写程序身份单元测试(更换负责人、停用确认、未知结果重试、冲突重读),同步 acceptance-p10-t01 中的详情等待、新建、状态变更、负责人失效、冲突重读与深链接步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 223 项全部通过\n- node --check 检查 acceptance-p10-t01:通过\n- 演示环境没有程序身份,浏览器中以页面内临时改写接口响应的方式检查列表、详情四区、更换负责人、停用确认、负责人失效与新建弹窗(1280 宽、375 窄屏及亮/暗色),未提交写操作\n- 验收脚本 acceptance-p10-t01:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/3cf111b21a47760e5c71fc6b2fba96d882dbd3f1","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:05:50-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/service-principals.test.tsx"]},{"id":"ba844f0abb4b7b64a50d2a5b617e87e33aac5a14","message":"feat(console): 把程序接入详情改为分区抽屉并内嵌密钥管理\n\n程序接入页顶部有一大段说明,列表每行放「查看详情」按钮;详情是一张整体表单,管理密钥要切换到另一个子视图,新建时在弹窗里同时套着两张选择卡片。按已定的列表与抽屉约定重排。\n\n实现内容:\n- 页头补「应用」徽标,原顶部说明并入页头与卡片描述,授权方式名称移到详情技术细节\n- 列表改为整行可点(客户端 ID 为按钮、程序身份与可调用操作为灰色说明),状态正常但暂时不能获取令牌时在状态下提示;空列表使用「还没有程序客户端」定制空状态\n- 详情抽屉分「基本信息 / 可调用的操作 / 密钥 / 停用或归档」:调整操作就地展开,无改动不能保存,改动后须确认;平台已不再批准的操作照常列出并注明不生效,取消勾选后不能再选回\n- 密钥改为抽屉内的常驻分区:逐份显示状态与时间,撤销确认在该行下方展开,成功后以提示条告知并重读记录;更换密钥仍显示一次性回执\n- 调整操作、密钥操作与状态变更互相锁定,写入结果不明或冲突时不能切换到其他修改;保存或撤销后焦点留在抽屉内\n- 新建改为两步:先选程序身份,再选服务并勾选操作,底部「重新选择程序身份 / 创建程序客户端」,不再要求影响确认\n- ScopeChoices 改为与权限勾选一致的边框清单,新增 unavailable、legendHidden、hint;平台「程序可调用的操作」弹窗使用平台场景的说明\n- 同步程序接入与密钥单元测试,以及 acceptance-p10-t02、t03、t04 中的详情等待、新建步骤、调整操作、密钥分区与空状态文案\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过;构建时 Vite 提示打包文件体积偏大,未核实是否为既有提示\n- node --check 检查 acceptance-p10-t02、t03、t04:通过\n- 演示环境没有程序客户端、可访问服务与程序身份,浏览器中以页面内临时改写接口响应的方式检查列表、详情四区、撤销与更换密钥表单、调整操作、新建两步与已归档只读状态(1280 宽、375 窄屏及亮/暗色),未提交写操作;平台「程序可调用的操作」弹窗打开查看未保存\n- 验收脚本 acceptance-p10-t02、t03、t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/ba844f0abb4b7b64a50d2a5b617e87e33aac5a14","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:57:52-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx"]},{"id":"91e187c7bfa1c897d22cd3fb7e5d30d7368a586d","message":"feat(console): 在角色分配中显示角色包含的权限并改用卡片选择分配对象\n\n角色分配页已随企业管理员改为分区抽屉,但业务模式下仍看不出一条分配实际给了哪些权限,分配对象名称下显示的是无意义的标识缩写,新建时用下拉框选择成员或用户组,页头徽标也与其他应用内页面不一致。\n\n实现内容:\n- 页头徽标改为「应用」,与权限清单、角色页一致\n- 分配对象说明:有与名称不同的成员代码或用户组代码时显示「类型 · 代码」,名称即代码时只显示类型,两者都没有才回退标识缩写;用户组不是正常状态时在名称下提示\n- 详情基本信息为角色补充灰色代码,新增「角色包含的权限」(按应用权限清单显示名称)\n- 分配弹窗第一步「分配给」改为横排的「成员 / 用户组」单选卡片;第二步选中角色后显示该角色包含的权限预览,读取失败不影响分配\n- BindingRecord 类型补充 group_code;同步 acceptance-t04 中选择分配对象类型的步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过;首次运行时 group-lifecycle 中一项焦点断言偶发失败,单独重跑 3 次及全量重跑均通过,与本次改动无关\n- node --check 检查 acceptance-t04:通过\n- 浏览器 1280 宽、375 窄屏及亮/暗色检查列表、详情抽屉与分配弹窗两步(切换成员/用户组、选择成员与角色、权限预览),未提交写操作;演示数据没有分给用户组的记录,用户组代码与归档提示未在页面上实际看到\n- 验收脚本 acceptance-t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/91e187c7bfa1c897d22cd3fb7e5d30d7368a586d","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:45:50-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/styles/authorization.css"]},{"id":"4a92a91f122f15d9c26a0ff0fc321e14b589777e","message":"feat(console): 把角色详情改为分区抽屉并重排权限清单\n\n角色详情原先是一张整体表单,改名、调整权限和停用归档混在一起,任何修改都要勾选影响确认;列表每行放「查看 X」按钮,权限清单页也没有筛选。按已定的列表与抽屉约定重排两页。\n\n实现内容:\n- 权限清单拆为独立组件:卡片说明给出权限总数与可放进角色的数量,加入本地名称/代码搜索与状态筛选、「去组合角色」链接,不能放进角色的原因用灰字说明,空清单使用公共空状态\n- 角色列表改用 OpenableRow 整行可点,并提供「还没有角色」定制空状态\n- 角色详情抽屉分「基本信息 / 包含的权限 / 停用或归档」三区:改名与调整权限就地展开,状态变更用单选卡片;同一时间只进行一项修改,每项修改都带上其余字段的当前值提交到原有整体保存接口\n- 改名不再要求影响确认;有分配记录时调整权限、以及任何状态变更仍须确认,草稿改动后确认失效;归档仍同时提交 revokeBindings\n- 基本信息显示分配记录数并提供「前往角色分配」链接;已归档角色只读,不提供修改入口\n- 新建角色改为独立弹窗,底部使用 FormActions「取消 / 创建角色」\n- 公共 PermissionPicker 改为带边框的勾选清单,显示「已选 N 项」,只在不可选的行注明原因,新增 legendHidden;企业管理员中「可分配的权限」随之生效\n- 重写角色相关单元测试(状态归档、改名、调整权限确认、归档只读、新建),同步 acceptance-t04 中的角色详情入口、状态变更与冲突复核步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过\n- node --check 检查 acceptance-t04:通过\n- 浏览器 1280 宽、375 窄屏及亮/暗色检查权限清单、角色列表、详情三区、新建弹窗与企业管理员可分配权限;已停用权限、需按数据范围分配的权限与已归档角色通过页面内临时改写响应查看,未做写操作\n- 验收脚本 acceptance-t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/4a92a91f122f15d9c26a0ff0fc321e14b589777e","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:39:38-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/authorization-management.test.tsx"]}],"total_commits":0,"head_commit":{"id":"faac5481c1cca66e4708222686b6588a43938150","message":"feat(console): 合并控制台逐页布局与样式改造\n\n控制台各页面原先列表用「查看详情」按钮、详情是整张表单、弹窗操作区与空状态各不相同,常用信息和危险操作混在一起。合并 feat/console-layout 分支,按统一的列表、抽屉与弹窗约定逐页重排企业内、平台侧与应用内的管理页面。\n\n实现内容:\n- 列表统一为整行可点(OpenableRow 或同交互的专用行),名称为链接或按钮、末列右箭头,需要处理的状态用 cell-note 提示;空状态改为带图标、说明与操作的公共 EmptyList,无数据时不显示分页\n- 详情抽屉按「基本信息 / 业务分区 / 危险区」分区,修改就地展开且同一时间只进行一项;危险操作默认收起,展开后用单选卡片或确认勾选\n- 企业、应用接入改为带分区标签的详情页;新增只读组织架构图;成员、部门、用户组、所有账号、企业与平台管理员、应用开通、操作记录、权限清单、角色、角色分配、程序接入(密钥管理内嵌抽屉)与程序身份完成改造\n- 弹窗底部统一使用 FormActions「取消 + 主操作」,多步弹窗提供「重新选择」;权限统一以名称为主、代码为辅显示,勾选清单统一为带边框的列表\n- 同步更新各页面单元测试与相关验收脚本中的文案和定位\n\n验证:\n- 分支上每次提交前运行 npm run check:format:check、lint、typecheck、test、build 通过,最后一次 Vitest 26 个文件 223 项全部通过\n- 各页面在浏览器 1280 宽、375 窄屏及亮/暗色下核对;程序接入、程序身份等演示环境缺数据的页面以页面内临时改写接口响应检查,未提交写操作\n- 验收脚本仅执行 node --check,未实际运行\n- 合并无冲突,main 上未单独重新运行检查;平台权限查询接入、个人中心尚未改造\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/faac5481c1cca66e4708222686b6588a43938150","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:07:51-07:00","added":["iam-admin-web/src/pages/management/OrganizationChartPage.tsx","iam-admin-web/src/pages/management/PlatformTenantPage.tsx","iam-admin-web/src/test/organizations.test.tsx"],"removed":[],"modified":["iam-admin-web/scripts/acceptance-group-lifecycle.mjs","iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/scripts/acceptance-t02.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/scripts/acceptance-t06.mjs","iam-admin-web/src/App.tsx","iam-admin-web/src/components/Management.tsx","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationShared.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/application-lifecycle.test.tsx","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx","iam-admin-web/src/test/group-editor.test.tsx","iam-admin-web/src/test/group-lifecycle.test.tsx","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx","iam-admin-web/src/test/management-integration.test.tsx","iam-admin-web/src/test/service-principals.test.tsx"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":100939,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.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-10-08T17:04:24+08:00","updated_at":"2026-10-11T23:51: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"}}...
|
push
|
2
|
4
|
1791818109
|
1791818322
|
0
|
1791818107
|
1791818322
|
|
|
0
|
Edit
Delete
|
|
25666
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
licensed.yml
|
5
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.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-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+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
|
4
|
1791846456
|
1791846456
|
0
|
1791844717
|
1791846456
|
|
|
0
|
Edit
Delete
|
|
25683
|
Correctly check symlinks (#103)
|
138
|
5
|
codeql-analysis.yml
|
5
|
5
|
0
|
refs/tags/v2.1.1
|
5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.1","bef {"ref":"refs/tags/v2.1.1","before":"0000000000000000000000000000000000000000","after":"5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","commits":[],"total_commits":0,"head_commit":{"id":"5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","message":"Correctly check symlinks (#103)\n\n","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-27T15:41:16+02:00","added":[],"removed":[],"modified":["dist/index.js","src/search.ts"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.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-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38:47+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
|
4
|
1791849391
|
1791850423
|
0
|
1791844728
|
1791850423
|
|
|
0
|
Edit
Delete
|
|
25695
|
V2 Download Artifact (#27)
|
139
|
5
|
test.yml
|
5
|
5
|
0
|
refs/tags/v2.0
|
1de1dea89c32dcb1f37183c96fe85cfe067b682a
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0","befor {"ref":"refs/tags/v2.0","before":"0000000000000000000000000000000000000000","after":"1de1dea89c32dcb1f37183c96fe85cfe067b682a","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...1de1dea89c32dcb1f37183c96fe85cfe067b682a","commits":[],"total_commits":0,"head_commit":{"id":"1de1dea89c32dcb1f37183c96fe85cfe067b682a","message":"V2 Download Artifact (#27)\n\n* V2 Preview (#19)\r\n\r\n* V2 Setup\r\n\r\n* Add end-to-end tests\r\n\r\n* Update tests\r\n\r\n* Update tests\r\n\r\n* Update tests\r\n\r\n* Update tests again\r\n\r\n* Misc Updates\r\n\r\n* Improve logs\r\n\r\n* Update release\r\n\r\n* Update README.md\r\n\r\n* @actions/artifact v0.2.0\r\n\r\n* Update to the latest version of the @actions/artifact package\r\n\r\n* Update @actions/artifact to 0.3.1\r\n\r\n* Misc Updates\r\n\r\n* Add .gitattributes\r\n\r\n* Update Readme\r\n\r\n* Update test YAML","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/1de1dea89c32dcb1f37183c96fe85cfe067b682a","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-04-28T15:45:21+02:00","added":[".eslintignore",".eslintrc.json",".gitattributes",".github/workflows/test.yml",".gitignore",".prettierignore",".prettierrc.json","dist/index.js","package-lock.json","package.json","src/constants.ts","src/download-artifact.ts","tsconfig.json"],"removed":[],"modified":["README.md","action.yml"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.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-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
6
|
1791854083
|
1791950481
|
0
|
1791844739
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
26085
|
feat(device): add isolated S2 connection and durab feat(device): add isolated S2 connection and durable command receipt loop...
|
135
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
4b39ba2e2da24a46314e9d171f4c3636d023290d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d820cc6f462a719ddbf43440d5a9b835e6fa09de","after":"4b39ba2e2da24a46314e9d171f4c3636d023290d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/d820cc6f462a719ddbf43440d5a9b835e6fa09de...4b39ba2e2da24a46314e9d171f4c3636d023290d","commits":[{"id":"4b39ba2e2da24a46314e9d171f4c3636d023290d","message":"feat(device): add isolated S2 connection and durable command receipt loop\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4b39ba2e2da24a46314e9d171f4c3636d023290d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:01:58-07:00","added":["docs/domain/s2-device-loop-blueprint.md","docs/evidence/2026-10-18-s2/rules.tap","docs/evidence/2026-10-18-s2/runtime-summary.json","docs/evidence/2026-10-18-s2/source-bindings.json","docs/s2-device-loop.md","ops/device-loop-candidate/contract.mjs","ops/device-loop-candidate/fixtures.mjs","ops/device-loop-candidate/http.mjs","ops/device-loop-candidate/manifest.json","ops/device-loop-candidate/rules.test.mjs","ops/device-loop-candidate/run-isolated.mjs","ops/device-loop-candidate/service.mjs","ops/device-loop-candidate/store.mjs","ops/device-loop-candidate/terminal.mjs","ops/device-loop-candidate/worker.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/domain/owner-matrix.md","package.json","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.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/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"4b39ba2e2da24a46314e9d171f4c3636d023290d","message":"feat(device): add isolated S2 connection and durable command receipt loop\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4b39ba2e2da24a46314e9d171f4c3636d023290d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:01:58-07:00","added":["docs/domain/s2-device-loop-blueprint.md","docs/evidence/2026-10-18-s2/rules.tap","docs/evidence/2026-10-18-s2/runtime-summary.json","docs/evidence/2026-10-18-s2/source-bindings.json","docs/s2-device-loop.md","ops/device-loop-candidate/contract.mjs","ops/device-loop-candidate/fixtures.mjs","ops/device-loop-candidate/http.mjs","ops/device-loop-candidate/manifest.json","ops/device-loop-candidate/rules.test.mjs","ops/device-loop-candidate/run-isolated.mjs","ops/device-loop-candidate/service.mjs","ops/device-loop-candidate/store.mjs","ops/device-loop-candidate/terminal.mjs","ops/device-loop-candidate/worker.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/domain/owner-matrix.md","package.json","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.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/validation-source.latest.json"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1998,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.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-10-12T21:14:44+08:00","updated_at":"2026-10-18T07:24:12+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
|
10
|
1792321333
|
1792321754
|
0
|
1792321332
|
1792321881
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
26166
|
docs(governance): bind five-tier kit acceptance an docs(governance): bind five-tier kit acceptance and cache evidence...
|
84
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
db93444d86694304ad66fc4d51864c6d89860f85
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","after":"db93444d86694304ad66fc4d51864c6d89860f85","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8...db93444d86694304ad66fc4d51864c6d89860f85","commits":[{"id":"db93444d86694304ad66fc4d51864c6d89860f85","message":"docs(governance): bind five-tier kit acceptance and cache evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/db93444d86694304ad66fc4d51864c6d89860f85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:50:18-07:00","added":["reports/governance-kit-migration.latest.json","reports/governance-kit.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7dca797205498ab32b6e83194fabe504b541bea6","message":"fix(build): share installed pnpm content store with production deploy steps\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/7dca797205498ab32b6e83194fabe504b541bea6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:42:25-07:00","added":[],"removed":[],"modified":["Dockerfile","docs/governance-kit-027-migration.md","docs/production-operations.md"]},{"id":"936ef652cb5709c6e94875f715b664dd102282bb","message":"docs(governance): reconcile actual acceptance, build config and DR preparation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/936ef652cb5709c6e94875f715b664dd102282bb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-kit-027-migration.md","docs/production-operations.md"]},{"id":"9c0c03e889a5e76e72c9a298a5cb6f153f8a213c","message":"docs: align container secret negative-probe count\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/9c0c03e889a5e76e72c9a298a5cb6f153f8a213c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:09:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"048d19d40a2291350efeb798f0d040e4cd02794b","message":"fix(governance): wire private kit into container and CI installs\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/048d19d40a2291350efeb798f0d040e4cd02794b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:08:15-07:00","added":[],"removed":[],"modified":[".dockerignore",".github/workflows/governance.yml","Dockerfile","compose.production.yml","docs/governance-kit-027-migration.md","docs/production-operations.md","scripts/check-container-acceptance.mjs","scripts/check-production-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"db93444d86694304ad66fc4d51864c6d89860f85","message":"docs(governance): bind five-tier kit acceptance and cache evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/db93444d86694304ad66fc4d51864c6d89860f85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:50:18-07:00","added":["reports/governance-kit-migration.latest.json","reports/governance-kit.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1536,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.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:45:53+08:00","updated_at":"2026-09-15T15:55:23+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
|
1792482649
|
1792482662
|
0
|
1792482649
|
1792482664
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|