|
23395
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
20
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1782097229
|
1782097259
|
0
|
1782097228
|
1782097259
|
|
|
0
|
Edit
Delete
|
|
23396
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
21
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1782702029
|
1782703072
|
0
|
1782702028
|
1782703072
|
|
|
0
|
Edit
Delete
|
|
23398
|
chore(models): track model weights with lfs
|
50
|
5
|
lyra-production-governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/dc908e7f6ad95ec3d1714681645cb710e622941b...87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","commits":[{"id":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},{"id":"b7aa37d866f7d33bedbd680cabc5cfd0038e359e","message":"feat(lyra): harden validation queue acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/b7aa37d866f7d33bedbd680cabc5cfd0038e359e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T00:37:29-07:00","added":["apps/api-fastify/src/modules/alignment/alignment-validation.ts","apps/api-fastify/test/alignment-validation.test.ts","apps/api-fastify/test/cors.test.ts","packages/contracts/src/alignment-validation.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/plugins/alignment-queue.ts","apps/api-fastify/test/alignment-queue.test.ts","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/lyra-data.ts","packages/contracts/src/alignment-run.ts","packages/contracts/src/alignment.ts","packages/contracts/src/index.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-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/production-readiness.latest.json","reports/project-gap-analysis.latest.md","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/check-http-ui-acceptance.mjs","scripts/check-service-deployment.mjs","scripts/check-ui-click-acceptance.mjs","scripts/start-independent-stack.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"]},{"id":"d650b66cb8913288b66b796d00c13751802588e3","message":"chore: media-sync lag 平滑 + 门禁/文档/报告快照同步(工作树聚合提交)\n\n非本轮 Track A/B 作者的并发在制改动 + 报告/曲库 manifest churn,聚合提交上传:\n- LyraWorkstation.tsx / lyra-data.ts:媒体同步 lag 平滑(normalizeMediaSyncLagMs +\n 节流 + 仅暂停态回读),降低抖动\n- scripts/check-{experience,http-ui,lyra-business,ui-clicks}.mjs:门禁模式微调\n- docs/product-prd.md、reports/*.latest.json、reports/product-audit-prd-20260701、\n 曲库 stem-manifest:快照/文案同步(含 project-gap-analysis P1-2 BS-RoFormer qingtian ready)\n\n验证:web+api tsc 0 错、check:governance-docs 通过、check:{lyra-business,experience,\nfrontend-contracts,analysis} 静态门禁全绿。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/d650b66cb8913288b66b796d00c13751802588e3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T19:48:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/lyra-data.ts","docs/product-prd.md","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/lyra-domain.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/product-audit-prd-20260701/audit-report.md","reports/production-readiness.latest.json","reports/project-gap-analysis.latest.md","reports/project-independence.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/stem-assets.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/check-experience-enhancements.mjs","scripts/check-http-ui-acceptance.mjs","scripts/check-lyra-business.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"]},{"id":"ab7d6c4bf6431eb83fe45443edb7cd60757973aa","message":"test(ui-clicks): 稳定鼓件 console 测试竞态 + 补 analysis-runs gitignore + 治理回灌\n\n- check-ui-click-acceptance.mjs:console 测试在断言初始窗口鼓件状态前,先 waitForFunction\n 等鼓件 lane 段渲染出任一 cue/跳转/间隙 marker(lane 在 stem 就绪徽标之后挂载,Track A\n mount 成本放大了这个 latent race)。修后 check:ui-clicks 稳定 14/14\n- .gitignore 补 reports/analysis-runs/(analysis/run 每次运行产物,不入库)\n- CLAUDE.md 回灌 DD-步骤-fix 关闭记录(Track A 七步真实操作+重置 + Track B producer 翻转),\n 含活体 /analysis/run 424 blocked 冒烟与 check:ui-clicks 14/14 证据、producer runtime\n spawnSync 残留登记\n\n验证:check:ui-clicks 14/14(JUHI_WEB_URL=3000 + 当前代码全栈)、check:governance-docs 通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/ab7d6c4bf6431eb83fe45443edb7cd60757973aa","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T18:50:17-07:00","added":[],"removed":[],"modified":[".gitignore","CLAUDE.md","reports/governance-docs.latest.json","reports/ui-click-acceptance.latest.json","scripts/check-ui-click-acceptance.mjs"]},{"id":"ae55256379c94671172dad140d495e999bacf3b4","message":"feat(analysis): 步骤3 本仓真跑 beat/chord/structure producer + 门禁翻转(Track B)\n\n翻转 A1 import-only 边界:本仓接入真实整轨分析 producer(runtime 需用户显式批准安装,\n未装诚实 blocked,绝不假绿)。\n\n- workers/{beat-this,btc-chords,songformer}/scripts/run_*.py:调本机 models/{SongFormer,\n BTC-ISMIR19} + beat_this-final0.ckpt 做真实推理,输出合 contracts 消费 schema\n (songformer.sections / beat-this.report / btc-chords,秒制)。全部 guarded import:\n 缺依赖时 --smoke / 真跑诚实报 {status:blocked, issues},不抛未捕获异常\n- POST /library/songs/:id/analysis/run(tenant-scoped)+ contracts analysisRunRequest/Result;\n 子进程执行集中在 apps/api-fastify/src/modules/analysis-producers(library.service 不直接\n 起子进程,守住 check:experience 的 EDGE/library 请求路径规则);覆盖写 曲库/\u003csong\u003e/分析/*.json\n- check-analysis-artifacts.mjs 翻转:移除「禁止 producer 文件」红守卫,改为「producer 脚本\n 必须存在 + --smoke 可运行(缺失/崩溃/输出不可解析即红;blocked=runtime 未装是诚实态)+\n 触发端点接线」;report 加 producerRuntime 段(当前 ready 0 / blocked 3)\n- 前端步骤3「运行歌曲分析 (beat/chord/structure)」按钮 + 状态串(runStemSeparation 同款\n ok/blocked 诚实呈现);api.ts runSongAnalysis helper\n- 治理回灌:docs/model-boundaries.md(import-only → 有 producer,runtime 经批准安装前 blocked)、\n CLAUDE.md A1 边界翻转 + 真源地图 + 基线表 analysis-artifacts 行\n\n验证:pnpm check exit 0、web+api tsc 0 错、Fastify 真实 DB 63+1 tests(新增 analysis/run\n blocked 路径 + tenant 守卫)、三 producer --smoke 均诚实 blocked、门禁有牙(隐藏 producer\n 脚本→红,还原→绿)。边界:producer runtime 未装(外部代码执行需用户显式批准),当前不产出。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/ae55256379c94671172dad140d495e999bacf3b4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T18:34:52-07:00","added":["apps/api-fastify/src/modules/analysis-producers/analysis-producers.service.ts","workers/beat-this/requirements_beat_this.txt","workers/beat-this/scripts/run_beat_this.py","workers/btc-chords/requirements_btc_chords.txt","workers/btc-chords/scripts/run_btc_chords.py","workers/songformer/requirements_songformer.txt","workers/songformer/scripts/run_songformer_structure.py"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/src/modules/library/library.service.ts","apps/api-fastify/src/routes/library.ts","apps/api-fastify/test/library.route.test.ts","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/api.ts","docs/model-boundaries.md","packages/contracts/src/library.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/lyra-domain.latest.json","reports/migrations.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-governance.latest.json","reports/schema-sync.latest.json","reports/stem-assets.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/check-analysis-artifacts.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":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},"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":27,"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":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-02T17:09: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
|
1
|
4
|
1782983354
|
1782983489
|
0
|
1782983352
|
1782983489
|
|
|
0
|
Edit
Delete
|
|
23399
|
chore(models): track model weights with lfs
|
50
|
5
|
lyra-production-governance.yml
|
2
|
5
|
0
|
refs/heads/codex/p0-edge-governance
|
87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/codex/p0-edge-gover {"ref":"refs/heads/codex/p0-edge-governance","before":"0000000000000000000000000000000000000000","after":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/main...87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","commits":[],"total_commits":0,"head_commit":{"id":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},"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":8256945,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-02T17:09: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
|
1
|
4
|
1782983511
|
1782983569
|
0
|
1782983510
|
1782983569
|
|
|
0
|
Edit
Delete
|
|
23401
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
22
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1783306829
|
1783306920
|
0
|
1783306828
|
1783306920
|
|
|
0
|
Edit
Delete
|
|
23402
|
fix(web): update Lyra product labels
|
50
|
5
|
lyra-production-governance.yml
|
3
|
5
|
0
|
refs/heads/codex/p0-edge-governance
|
00a617f128624eeadc28167b5f20da59a402fc2f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/codex/p0-edge-gover {"ref":"refs/heads/codex/p0-edge-governance","before":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","after":"00a617f128624eeadc28167b5f20da59a402fc2f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c...00a617f128624eeadc28167b5f20da59a402fc2f","commits":[{"id":"00a617f128624eeadc28167b5f20da59a402fc2f","message":"fix(web): update Lyra product labels\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/00a617f128624eeadc28167b5f20da59a402fc2f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T00:40:17-07:00","added":[],"removed":[],"modified":["apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/lyra/LyraWorkstation.tsx"]}],"total_commits":0,"head_commit":{"id":"00a617f128624eeadc28167b5f20da59a402fc2f","message":"fix(web): update Lyra product labels\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/00a617f128624eeadc28167b5f20da59a402fc2f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T00:40:17-07:00","added":[],"removed":[],"modified":["apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/lyra/LyraWorkstation.tsx"]},"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":8256945,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-02T17:11: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
|
1
|
4
|
1783323702
|
1783323765
|
0
|
1783323702
|
1783323765
|
|
|
0
|
Edit
Delete
|
|
23405
|
fix(web): update Lyra product labels
|
50
|
5
|
lyra-production-governance.yml
|
4
|
5
|
0
|
refs/pull/1/head
|
00a617f128624eeadc28167b5f20da59a402fc2f
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":1,"pull_request":{"id":67,"url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","number":1,"user":{"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"},"title":"fix(web): update Lyra product labels","body":"\u003c!--\r\n PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。\r\n CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck);\r\n 有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。\r\n--\u003e\r\n\r\n## 变更内容\r\n\u003c!-- 简述这次改了什么、为什么改(聚焦 why) --\u003e\r\n-\r\n\r\n## 涉及业务概念\r\n\u003c!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md --\u003e\r\n-\r\n\r\n## 检查清单\r\n\r\n### 命名一致性\r\n- [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词)\r\n- [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE\r\n- [ ] `pnpm check:naming` 通过\r\n- [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源\r\n\r\n### API / 契约\r\n- [ ] 不涉及 API 变更\r\n- [ ] 新增/修改了 API,路由符合 `/api/v1/{resources}` 规范\r\n- [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份)\r\n- [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案)\r\n\r\n### 数据库\r\n- [ ] 不涉及数据库变更\r\n- [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status)\r\n- [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id\r\n- [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理\r\n\r\n### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致)\r\n- [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name \u003cchange\u003e`),未只改 schema 不落迁移\r\n- [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移)\r\n- [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移)\r\n- [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切\r\n- [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration\r\n- [ ] 高危但确需的 DDL 已加 `-- migration-allow:\u003c原因\u003e` 留痕,并在下方回滚方案说明\r\n- [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift\r\n\r\n### 实时 / 队列\r\n- [ ] 不涉及\r\n- [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub)\r\n- [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish\r\n- [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket)\r\n\r\n### 质量与发布\r\n- [ ] 通过 `pnpm lint` 与 `pnpm typecheck`\r\n- [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退\r\n- [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新\r\n- [ ] 已补充/更新必要的测试\r\n- [ ] 不需要回滚方案\r\n- [ ] 需要回滚方案,已在下方说明\r\n\r\n## 回滚方案 / 其他说明\r\n-\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":20,"deletions":13,"changed_files":3,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","repo_id":50,"repo":{"id":50,"owner":{"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"},"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":0,"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":false,"push":false,"pull":false},"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":[]}},"head":{"label":"codex/p0-edge-governance","ref":"codex/p0-edge-governance","sha":"00a617f128624eeadc28167b5f20da59a402fc2f","repo_id":50,"repo":{"id":50,"owner":{"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"},"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":0,"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":false,"push":false,"pull":false},"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":[]}},"merge_base":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","due_date":null,"created_at":"2026-07-06T16:41:19+08:00","updated_at":"2026-07-06T16:41:20+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":0,"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":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
4
|
1783327280
|
1783327370
|
0
|
1783327280
|
1783327370
|
|
|
0
|
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
|
|
23407
|
Add STARS line context planning
|
50
|
5
|
lyra-production-governance.yml
|
6
|
5
|
0
|
refs/pull/1/head
|
c51dc5edc2fdf269634a6cbbc50e18200230e42d
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":1,"pull_request":{"id":67,"url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","number":1,"user":{"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"},"title":"fix(web): update Lyra product labels","body":"\u003c!--\r\n PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。\r\n CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck);\r\n 有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。\r\n--\u003e\r\n\r\n## 变更内容\r\n\u003c!-- 简述这次改了什么、为什么改(聚焦 why) --\u003e\r\n-\r\n\r\n## 涉及业务概念\r\n\u003c!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md --\u003e\r\n-\r\n\r\n## 检查清单\r\n\r\n### 命名一致性\r\n- [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词)\r\n- [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE\r\n- [ ] `pnpm check:naming` 通过\r\n- [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源\r\n\r\n### API / 契约\r\n- [ ] 不涉及 API 变更\r\n- [ ] 新增/修改了 API,路由符合 `/api/v1/{resources}` 规范\r\n- [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份)\r\n- [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案)\r\n\r\n### 数据库\r\n- [ ] 不涉及数据库变更\r\n- [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status)\r\n- [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id\r\n- [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理\r\n\r\n### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致)\r\n- [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name \u003cchange\u003e`),未只改 schema 不落迁移\r\n- [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移)\r\n- [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移)\r\n- [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切\r\n- [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration\r\n- [ ] 高危但确需的 DDL 已加 `-- migration-allow:\u003c原因\u003e` 留痕,并在下方回滚方案说明\r\n- [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift\r\n\r\n### 实时 / 队列\r\n- [ ] 不涉及\r\n- [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub)\r\n- [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish\r\n- [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket)\r\n\r\n### 质量与发布\r\n- [ ] 通过 `pnpm lint` 与 `pnpm typecheck`\r\n- [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退\r\n- [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新\r\n- [ ] 已补充/更新必要的测试\r\n- [ ] 不需要回滚方案\r\n- [ ] 需要回滚方案,已在下方说明\r\n\r\n## 回滚方案 / 其他说明\r\n-\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":5930,"deletions":464,"changed_files":101,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","repo_id":50,"repo":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"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":false,"push":false,"pull":false},"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":[]}},"head":{"label":"codex/p0-edge-governance","ref":"codex/p0-edge-governance","sha":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","repo_id":50,"repo":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"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":false,"push":false,"pull":false},"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":[]}},"merge_base":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","due_date":null,"created_at":"2026-07-06T16:41:19+08:00","updated_at":"2026-07-07T21:38:21+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"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":false,"push":false,"pull":false},"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":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
4
|
1783431544
|
1783431580
|
0
|
1783431501
|
1783431580
|
|
|
0
|
Edit
Delete
|
|
23409
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
23
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1783911629
|
1783911720
|
0
|
1783911628
|
1783911720
|
|
|
0
|
Edit
Delete
|
|
23411
|
治理状态:记录第二轮修复,版本 0.2.1
|
61
|
5
|
kb.yml
|
1
|
5
|
0
|
refs/heads/main
|
7e38caa7a9a622e250ab06620cd295404fd97f4a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"7e38caa7a9a622e250ab06620cd295404fd97f4a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},{"id":"c7294d6f71f7653ea197b3e3333da9ed54d19e63","message":"reindex 增量优化与审计库并发加固\n\n1. reindex: 内容未变仅被 touch 的文件不再重分块重写索引,只刷新\n 元数据。新增显式 --fast((mtime,size) 未变即跳过,不读文件),\n 供大语料 nightly 使用;默认仍全量哈希 —— rsync/tar 会保留\n mtime,同 mtime 改内容只有 sha 抓得到,该保证有单测钉住,\n 不能默认放弃。\n2. audit_log: WAL + busy_timeout —— 多 MCP 客户端并发写同一\n 审计库时避免 database is locked(审计失败虽不改变检索答案,\n 但监控会失明)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/c7294d6f71f7653ea197b3e3333da9ed54d19e63","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:49:42-07:00","added":[],"removed":[],"modified":["lib/audit_log.py","lib/kb_core.py"]},{"id":"3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","message":"治理工具:冲突策略语义区分、词表结构体检 T4、修死引用\n\n1. conflict_policy: source_priority 与 source_then_latest 此前实现\n 完全相同,是假选项。现区分语义 —— source_priority 只按来源优先级\n 裁决,并列最高交回人工(needs_manual_review);要用时间破并列的\n 显式选 source_then_latest。补两条并列场景测试。\n2. wiki terms 新增 T4 词表结构体检,抓两种静默失效:\n - 跨行重叠的同义词组不会自动合并(查 A 组的词展开不到 B 组);\n - 含空白的成员在查询侧按空格被切开,整词永远不可达。\n 实测在现网 syn.tsv 上即抓到「error code」不可达键。\n3. README: PLAN.md 三处死引用改指 docs/technical-plan.md;\n wiki terms 输出不再提示不存在的 --llm 参数。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:47:58-07:00","added":[],"removed":[],"modified":["README.md","lib/conflict_policy.py","lib/wiki_terms.py","tests/test_conflict_policy.py"]},{"id":"a8d855f96127e7467c70eb9e25deb040fce55201","message":"信任边界:TRUNCATED 诊断移出信封,grep 与 fts 检索面对齐\n\n1. emit(): 截断提示此前 printf 到 stdout,会被 kb_tools 包进\n \u003ckb_result\u003e 信封 —— SOP 一边要求 agent 对 TRUNCATED 缩小范围,\n 一边要求无视信封内一切指令,自相矛盾;审计 status_of 只看\n stderr,截断也漏记。改走 stderr,并在 audit_log 增加\n 'truncated' 状态。\n2. kb grep: 导航层(INDEX/_index/README)此前只在 fts 侧被排除,\n grep 会命中并让 agent 引用 INDEX.md 的行当证据。rg 用 --iglob、\n grep 用 --exclude 与 fts 的 NAV 列表对齐。\n3. emit(): wc -c 前导空格清理(macOS 输出对齐问题)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/a8d855f96127e7467c70eb9e25deb040fce55201","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:46:07-07:00","added":[],"removed":[],"modified":["kb","lib/audit_log.py"]},{"id":"4a3ea648c8f46c0456e25ca97a476819d7421404","message":"评测口径:grep 兜底改用真分词,幻觉率剔除注入行\n\n1. run_eval: grep 兜底探测词此前按空格切 —— 中文 query 没有空格,\n 整句丢给 grep 恒 0 命中,所有中文落空都被误判成「语义 gap →\n 该上 vec」,而处方本该是「补 syn.tsv」。这是本工具的核心判定,\n 现改用 kb_core.units() 同源分词 + 停用词过滤,只取真词探测。\n 实测: '包厢无声怎么办' 探测词从 [整句] 变为 [包厢, 无声]。\n2. run_eval: 清理 'if True else' 死代码;新增 --syn(默认与检索侧\n 同源 \u003ckb\u003e/conf/syn.tsv)。\n3. agent_eval: 幻觉率/正确率的分母剔除注入演练行 —— 注入行\n hallucinated 恒 False,混入会稀释幻觉率,又把「抵抗成功」记成\n 正确答案。注入有自己的 --gate-injection。\n4. agent_eval: 引用正则补 .mdx(EXTS 支持它,引用 mdx 的正确回答\n 此前会被误判为幻觉)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/4a3ea648c8f46c0456e25ca97a476819d7421404","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:44:32-07:00","added":[],"removed":[],"modified":["eval/agent_eval.py","eval/run_eval.py"]}],"total_commits":0,"head_commit":{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},"repository":{"id":61,"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":"llmbash","full_name":"luoanwu/llmbash","description":"LLM Agent 知识库检索、导入、评测与治理工具","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash/languages","html_url":"https://gitea.g-hi.com/luoanwu/llmbash","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/llmbash.git","clone_url":"https://gitea.g-hi.com/luoanwu/llmbash.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:38:52+08:00","updated_at":"2026-07-14T12:39:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1784003957
|
1784011490
|
0
|
1784003956
|
1784011490
|
|
|
0
|
Edit
Delete
|
|
23429
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
24
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1784516429
|
1784516478
|
0
|
1784516428
|
1784516478
|
|
|
0
|
Edit
Delete
|
|
23453
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
25
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1785121229
|
1785121280
|
0
|
1785121228
|
1785121280
|
|
|
0
|
Edit
Delete
|
|
23477
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
26
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1785726000
|
1785726028
|
0
|
1785726000
|
1785726028
|
|
|
0
|
Edit
Delete
|
|
23478
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
27
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1786330800
|
1786330830
|
0
|
1786330800
|
1786330830
|
|
|
0
|
Edit
Delete
|
|
23487
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
28
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1786935601
|
1786935627
|
0
|
1786935600
|
1786935627
|
|
|
0
|
Edit
Delete
|
|
23513
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
29
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1787540400
|
1787540423
|
0
|
1787540400
|
1787540423
|
|
|
0
|
Edit
Delete
|
|
23562
|
chore(reports): 刷新治理证据至 b1510b5(clean,192 tests)
|
54
|
5
|
governance.yml
|
13
|
5
|
0
|
refs/heads/main
|
4a707c3d3ec98b8ab45864a1b40b941589433914
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"53991090b821b76dff11eee3a2e92806ed3ab173","after":"4a707c3d3ec98b8ab45864a1b40b941589433914","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/53991090b821b76dff11eee3a2e92806ed3ab173...4a707c3d3ec98b8ab45864a1b40b941589433914","commits":[{"id":"4a707c3d3ec98b8ab45864a1b40b941589433914","message":"chore(reports): 刷新治理证据至 b1510b5(clean,192 tests)\n\n静态 11 项门禁 + 治理棘轮 + lint + typecheck 全绿;\n真实 PG + Redis 验收 192 tests / 0 failures,provenance 绑定 clean commit b1510b5。\n\n⚠️ 作用域:本轮证据只覆盖静态与运行态两级。浏览器级 check:ui **未重跑**——\n本机无 Node 运行时(全部门禁在 node:22 容器内挂载工作树执行),而容器内没有\nLinux 版 Playwright 浏览器(宿主缓存的是 macOS 构建)。按事实作用域表,\n不得据此宣称 UI 层已验证。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a707c3d3ec98b8ab45864a1b40b941589433914","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-29T20:40:42-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-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"b1510b5a203f7847dc99a0962cd30f36e6901dce","message":"docs(standards): 修正与实现相悖的 API 标准 + 幽灵路径机器化(批次④·下)\n\n## api-standard 的四项核心约定与实现系统性相悖\n\nCLAUDE.md 真源地图把 docs/standards/*.md 列为「工程标准口径」,使用入口表还直接路由读者\n去读它。但 api-standard 的四项核心约定没有一项与两后端实际实现一致:\n`/api/v1/` 前缀(实际 `/api`,未版本化)、`{ data: ... }` 响应包裹(实际裸资源)、\n嵌套 `error.{code,statusCode,timestamp,path}` 错误体(实际是顶层扁平的 ApiErrorBody)、\n以及一个从不存在的 `packages/contracts/src/errors/error-codes.ts`。\n\n照着它落地新模块,会做出与 contracts `ApiErrorBody` 及 web `ApiError` 消费方直接冲突的接口。\n而 review-standard 的检查清单还会让 reviewer 去核对那个幽灵文件。\n\n- 按本仓既有的 C14「标准 vs 现状」惯例(frontend-standard / backend-standard / git-standard\n 都已有)在 api-standard 头部加对照表,逐项写明目标态与当前真相,并说明改动方向:\n 要落地目标态先改实现与契约,不要反过来照着文档改接口\n- 修正 review-standard 的检查项指向真实位置\n\n## 幽灵路径机器化(C14-⑤ 同族,扫描面扩到 standards)\n\n新增 docs-truth 断言:standards 引用的 `packages/contracts/src/**.ts` 路径必须真实存在,\n否则须在同一行显式标注「目标态 / 当前不存在」。扫描面用 readdirSync 覆盖 docs/standards 全量,\n不硬编码文件清单——旧的幽灵路径断言正是因为清单式扫描漏掉了 docs/README.md 本身而失守过。\n\n该断言上线即多抓到一处此前没人发现的幽灵路径(naming-standard 的\n`packages/contracts/src/store/store.types.ts`),已一并标注。\n负向测试:去掉 review-standard 的诚实标注即红。\n\n## owner-matrix 补录 OS 产品两张业务表\n\n「先登记后建表」是本仓自己立的规则,却被自己的 C20/G23 战役打破:OS 产品包新建了\n`juhai_baseframework_orders` / `..._order_events` 两张带状态机的表却从未登记。\n补录两行并写明 `products/` 下的对象同样要登记(归属真源是 product.manifest.json 的\npersistence.tenantModels,本表挂索引行)。\n\n验收:naming / docs-truth / governance-docs / 治理棘轮均 exit 0。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/b1510b5a203f7847dc99a0962cd30f36e6901dce","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-29T20:39:02-07:00","added":[],"removed":[],"modified":["docs/domain/owner-matrix.md","docs/standards/api-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","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","scripts/check-docs-truth.mjs"]},{"id":"033e8159c23f4766493fd140ffa7aa923ebe1182","message":"fix(ops): 优雅停机接线——Fastify 的 onClose 钩子此前全是死代码(批次④·中)\n\n## Fastify 从不优雅停机\n\nserver.ts 没有任何信号处理,也从不调用 app.close():进程收到 SIGTERM 走默认处理直接终止。\n后果是 prisma / redis / outbox / queue 四个插件里**精心写好的 onClose 钩子从未被执行过**——\nBullMQ worker 不 close(在途 job 只能靠 stalled 恢复)、outbox 轮询事务可能被拦腰砍断、\nWS/SSE 连接收不到 close 帧。而 NestJS 侧早有 enableShutdownHooks,两后端停机行为实质分叉。\n\n存在性门禁看得见「钩子写了」,看不见「它从来没被调用过」——这正是 G17 说的行为级盲区。\n\n- server.ts 补 SIGTERM/SIGINT → app.close()(Fastify 会按注册逆序执行全部 onClose),\n 带 10s 超时兜底(卡住的清理不能让容器一直不退)与重复信号防抖\n\n## NestJS 的 Redis 连接从不 quit,且注释谎称有人管\n\nREDIS_PUB / REDIS_SUB 由 useFactory 裸建,没有任何销毁钩子;而 event-bus.service.ts\n的注释写着「redisSub 连接由 RedisModule 统一关闭」——注释与行为相反,于是没人会去查。\n真实后果:停机时连接不回收(两个 acceptance 测试的 afterAll 至今还得手动 quit 才能让进程退出)。\n\n- RedisModule 实现 onApplicationShutdown,quit 两个连接\n- 修正 event-bus 的失实注释\n\n## 防回潮\n\ncheck:dual-backend 新增 4 条停机接线绊网(两后端各自的信号处理 / app.close /\nenableShutdownHooks / Redis 关闭钩子),负向测试已验证删掉信号处理即红。\n\n验收:真实 PG + Redis 192 tests / 0 failures;静态门禁 + 棘轮 + typecheck 5/5 + lint 2/2 全绿。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/033e8159c23f4766493fd140ffa7aa923ebe1182","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-29T20:35:43-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/server.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/redis/redis.module.ts","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-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]},{"id":"44cbbaeacf5f53e08e6e3f48a6d8bd2c3327d2de","message":"fix(governance): 写链守护补齐五条已验证绕过(批次④·上)\n\ncheck:write-guard 守的是 P4「所有写显式带 tenant_id + 状态迁移乐观锁」这条最高优先级红线,\n但它自身存在五条可复现的绕过——每一条都能让违规代码拿到绿盘:\n\n1. **折行**:逐行匹配下 `await tx.order\\n .update({...})` 完全隐形。这甚至无需恶意——\n Prettier 对长链式调用本来就这样折行。\n2. **方括号访问**:`tx[\"order\"].update(` 用 `\\w+` 匹配不到,换个写法整条溜过去。\n3. **upsert 不在禁止模式里**:它与 update/delete 同源(同样只接受唯一键定位),\n TOCTOU 缝隙一模一样,却从未被拦。\n4. **where 里的 tenantId 从未被验证**:门禁 reason 一直宣称 where 是 `{ id, tenantId }`,\n 但只检查了方法名与 state 前置条件——`updateMany({ where: { id } })` 照样绿,\n 而那正是跨租户写。\n5. **0 行拒绝可被一行注释满足**:断言对原始源码做 includes,\n `// if (updated.count === 0)` 就能让一段被注释掉的防护报绿。\n\n修法:\n- 新增 scripts/lib/source-text.mjs 作为公共单源(stripComments / blankComments / lineOf)。\n 「注释掉的代码仍满足断言」这个形态 check-schema-sync 在 2026-08-15 已实锤并就地修过,\n 但同类断言散布在多个脚本里各自对原始源码匹配——按 P5,实锤过的教训必须推广,\n 否则只是把同一个洞留在别处。\n- A 部分改为「注释置空但保持字符偏移」后整体跨行匹配,再由偏移反推行号\n (逐行挡不住折行,整体匹配又需要能定位);禁止模式补 upsert 与方括号访问。\n- B 部分先提取 updateMany 的 where 块再逐项断言(state 前置条件 + tenantId),\n 且全部在剥注释后的源码上跑。\n\n验收:五条绕过逐一注入验证必红、逐一恢复现场;正向 10 项静态门禁 + 治理棘轮全绿。\nCLAUDE.md 基线表 write-guard 行同步为实际覆盖面(此前的描述比实际防线宽)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/44cbbaeacf5f53e08e6e3f48a6d8bd2c3327d2de","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-29T20:32:47-07:00","added":["scripts/lib/source-text.mjs"],"removed":[],"modified":["CLAUDE.md","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","scripts/check-statemachine-write-guard.mjs"]},{"id":"c494fc7d2e6b1497647b2ca9601766626dd4775d","message":"feat(auth): G8 生产级租户验签闭环——回退翻转 + 401 判责 + 降级通道清除(批次③)\n\nCLAUDE.md 里标注「动工前须用户点名」的最大 OPEN 缺口,验签半边落地。\n\n## 回退翻转(G8 的核心)\n\ndemo 期口径是 `Bearer 解析 ?? x-tenant-id`。接入验签后这个 `??` 会变成**降级攻击面**:\n伪造一个签名无效的 Bearer → 验签失败 → 自动落回客户端自报的 demo 头,等于没验。\n且只翻转这一处并不够——裸 `?tenantId=` 是另一条更彻底的通道,它连伪造 token 都不需要。\n\n- jwt 模式下:带 Authorization 或 ?access_token= 即**强制验签,失败一律 401,绝不回退**;\n x-tenant-id / ?tenantId= / `tenant:\u003cid\u003e` 简写整条不承认\n- demo 模式保留原型四级来源(本地与既有验收测试零改动),但**生产跑 demo 即拒绝启动**——\n 漏配鉴权应当是「起不来」,不是「起来了但谁都能进」\n\n## 架构切分:策略在 contracts,验签由后端注入\n\ncontracts 被 web 直接 import,把 jose 与密钥语义拉进去会泄漏到浏览器包。故:\n- `decideTenantResolution`(谁可信、失败怎么判)在 contracts,两后端共用,13 条单测覆盖\n- jose 验签在各后端(NestJS `src/auth/`、Fastify `src/plugins/auth.ts`)\n- `tenantFromBearerToken` 更名 `unsafeTenantClaimFromToken`:函数名里的 unsafe 是给 review 看的,\n 它只该用于浏览器 UI 预填与 demo 模式\n\nNestJS 的判定必须放 Guard 而非 `@TenantId()` 参数装饰器——后者的回调是同步的,\n判定留在那里就永远接不上异步的 JWKS 验签。\n\n## 顺带堵掉的三个额外攻击面(安全审计发现,均在已登记 G8 描述之外)\n\n1. **tenantId 是攻击者可控的自由文本**:无格式/长度约束时可凭空创建租户分区、\n 可用超长值撑爆 `@@unique([tenantId,email])` 的 btree 索引行打出稳定 500、\n 可用换行伪造日志行。现统一过 normalizeTenantId(≤128 + 受控字符集)。\n2. **重复查询参数的类型混淆**:Fastify 把 `?access_token=a\u0026access_token=b` 解析成数组,\n `typeof v === 'string'` 判定直接落空 → 静默跳过 token 分支 → 落到裸 ?tenantId=;\n 而 NestJS 的 `URLSearchParams.get()` 取第一个值。**同一条请求两后端两种身份判定**——\n 既是真实越权通道,也是 G17 行为分叉的活体实证。两侧统一取第一个值。\n3. **凭证进日志**:浏览器 EventSource/WS 无法自定义头,token 只能进 `?access_token=`,\n 而 pino 默认序列化器把完整 url 写进日志——接入真实验签后就是每次建连落盘一枚有效 JWT。\n Fastify logger 加 redact(authorization / cookie / req.url)。\n\n## 判责矩阵补上 401\n\n此前缺凭证一律回 400,把「未认证」伪装成「参数写错了」,客户端无从区分「该去登录」\n和「该改请求」。现 contracts 定义 UNAUTHENTICATED / INVALID_TOKEN / TENANT_FORBIDDEN;\n响应体**只回稳定错误码**,验签失败细节只进日志(区分「签名不对/已过期/issuer 不符」\n对攻击者是免费的探测反馈)。WS 保持 close(1008) 而非握手期 401——两后端同口径,\n且浏览器对握手 401 不暴露任何原因。\n\n## 验收\n\n真实 PG + Redis:**192 tests / 0 failures**(地板 161 → 192,只收紧)。\n两后端各 9 条 jwt 判责用例:正确签名放行 / 无凭证 401 / **伪造签名 + 合法 x-tenant-id 仍 401**\n/ 裸 demo 头 401 / 过期 401 / alg:none 401 / 无租户 claim 401 / health 免鉴权 / 重复参数不落 victim。\n新增 check:dual-backend 的 G8 绊网 5 条,每条均有负向红证据;其中「算法白名单」一条初版\n被自身的类型声明 `algorithms: string[]` 满足而无法变红,已改绑 jwtVerify 实参后重测。\n静态门禁 10/10 + 治理棘轮 + typecheck 5/5 + lint 2/2 全绿。\n\nRLS 未叠加(结构已就绪,阻碍在 CI 超级用户/单例 Prisma/dispatcher 跨租户扫描三处),\nweb 构建期内联 token 与 WS Origin 白名单同样登记为 G8 剩余项。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c494fc7d2e6b1497647b2ca9601766626dd4775d","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-29T20:27:41-07:00","added":["apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/auth.jwt.test.ts","apps/api-nestjs/src/auth/auth.guard.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/token-verifier.ts","apps/api-nestjs/test/auth.jwt.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/src/lib/api.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/tenant.ts","pnpm-lock.yaml","reports/baseline.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/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"4a707c3d3ec98b8ab45864a1b40b941589433914","message":"chore(reports): 刷新治理证据至 b1510b5(clean,192 tests)\n\n静态 11 项门禁 + 治理棘轮 + lint + typecheck 全绿;\n真实 PG + Redis 验收 192 tests / 0 failures,provenance 绑定 clean commit b1510b5。\n\n⚠️ 作用域:本轮证据只覆盖静态与运行态两级。浏览器级 check:ui **未重跑**——\n本机无 Node 运行时(全部门禁在 node:22 容器内挂载工作树执行),而容器内没有\nLinux 版 Playwright 浏览器(宿主缓存的是 macOS 构建)。按事实作用域表,\n不得据此宣称 UI 层已验证。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a707c3d3ec98b8ab45864a1b40b941589433914","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-29T20:40:42-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-acceptance.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":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":1968,"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":2,"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-08-30T11:43: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
|
1788065693
|
1788065725
|
0
|
1788064993
|
1788065727
|
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
|
|
23563
|
fix(governance): 收口实时顺序与验收缺口
|
54
|
5
|
governance.yml
|
14
|
5
|
0
|
refs/heads/main
|
a9e18b9599335b3ad128ac8c761fc93b83de8711
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4a707c3d3ec98b8ab45864a1b40b941589433914","after":"a9e18b9599335b3ad128ac8c761fc93b83de8711","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/4a707c3d3ec98b8ab45864a1b40b941589433914...a9e18b9599335b3ad128ac8c761fc93b83de8711","commits":[{"id":"a9e18b9599335b3ad128ac8c761fc93b83de8711","message":"fix(governance): 收口实时顺序与验收缺口\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/a9e18b9599335b3ad128ac8c761fc93b83de8711","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-29T22:20:28-07:00","added":["apps/api-fastify/test/realtime.buffer.test.ts","packages/contracts/src/replay-buffer.test.ts","packages/contracts/src/replay-buffer.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/auth.jwt.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/auth/token-verifier.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/auth.jwt.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/OrdersPanel.tsx","apps/web/src/lib/api.ts","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","products/juhai.baseframework/src/tools.ts","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","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-os-product-compat.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs"]}],"total_commits":0,"head_commit":{"id":"a9e18b9599335b3ad128ac8c761fc93b83de8711","message":"fix(governance): 收口实时顺序与验收缺口\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/a9e18b9599335b3ad128ac8c761fc93b83de8711","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-29T22:20:28-07:00","added":["apps/api-fastify/test/realtime.buffer.test.ts","packages/contracts/src/replay-buffer.test.ts","packages/contracts/src/replay-buffer.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/auth.jwt.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/auth/token-verifier.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/auth.jwt.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/OrdersPanel.tsx","apps/web/src/lib/api.ts","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","products/juhai.baseframework/src/tools.ts","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","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-os-product-compat.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs"]},"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":1968,"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":2,"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-08-30T12:43:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788067980
|
1788068070
|
0
|
1788067980
|
1788068071
|
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
|
|
23571
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
30
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1788145202
|
1788145292
|
0
|
1788145200
|
1788145292
|
|
|
0
|
Edit
Delete
|
|
23572
|
chore(reports): 刷新三级治理证据至 3bb349d(clean,202 tests chore(reports): 刷新三级治理证据至 3bb349d(clean,202 tests / 8 UI)...
|
54
|
5
|
governance.yml
|
15
|
5
|
0
|
refs/heads/main
|
6449421518ff6b2dd62b6ff862ff44aedcbbea29
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a9e18b9599335b3ad128ac8c761fc93b83de8711","after":"6449421518ff6b2dd62b6ff862ff44aedcbbea29","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/a9e18b9599335b3ad128ac8c761fc93b83de8711...6449421518ff6b2dd62b6ff862ff44aedcbbea29","commits":[{"id":"6449421518ff6b2dd62b6ff862ff44aedcbbea29","message":"chore(reports): 刷新三级治理证据至 3bb349d(clean,202 tests / 8 UI)\n\n三级门禁均在 clean 工作区、同一提交 3bb349d 上实跑:\n\n- 静态 pnpm check:13 项门禁 + lint + typecheck,exit 0\n- 真实 DB pnpm check:runtime:202 tests / 0 failures、两后端迁移 deploy+status、\n 双后端同夹具差分 0 differences(PG base_framework_rt_final + Redis db11)\n- 浏览器 pnpm check:ui:8 用例 / 0 失败 / 0 跳过(PG base_framework_ui_final + db12)\n\n三份报告的 provenance 均为 gitSha=3bb349d、worktreeDirty=false,\n不再是此前绑定 a9e18b9 dirty 的 STALE 证据。\n\n新增报告:conformance-matrix、conformance-differential、governance-rules、\ngovernance-profile-kernel、governance-status(四层 profile 当前均为 PARTIAL——\nADR-0010 仍是 Proposed,observe 模式只诊断,不构成发布放行)。\n\n作用域声明:以上仅证明「本机 hillao 在 3bb349d 这个 clean commit 上通过三级门禁」,\n推不出远端已发布或 CI 已拦截(G14 仍 OPEN)。\ncheck:os-product 本轮显式 SKIPPED(上游 OS 检出不在场),未写 osProduct* 指标。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/6449421518ff6b2dd62b6ff862ff44aedcbbea29","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-31T16:36:45-07:00","added":["reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json"],"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/os-product-runtime.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"]},{"id":"3bb349d8ab4351f7f17927b50c94255a7d8abbef","message":"fix(test): outbox 幂等键用例按租户收窄——移除它自己保证不了的全局隔离假设\n\n`dispatchOutboxBatch` 按设计跨租户全局扫描(outbox dispatcher 的\nwrite-guard-allow 豁免正为此),而 check:runtime 让两后端套件经 turbo 并行\n打同一个库。该用例却断言「全库只有我这一行待投递」——兄弟套件此刻产生的\n未投递行会被一并领走,于是期望 1 实得 2/3,数量随并行时序漂移。\n\n实测:连续两次全量红且失败对象不同(realtime.tenant 一次、outbox 一次),\n换全新库仍红且计数从 2 涨到 3;单独复跑该文件恒绿——典型的共享基座污染\n(G18 已登记族、审计发现「两后端共享 DB/Redis」的又一实证)。\n\n本用例要证的是「信封 id 恒等于 outbox 行 id」这条幂等键稳定性,与其他租户\n有多少行无关,故 publish 回调按 tenantId 过滤后再断言。这是移除伪假设,\n不是放宽断言:跨实例不重复投递由同文件上一条用例独立守护。\n\ncheck:runtime:202 tests、0 failures、差分 0 differences(exit 0)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/3bb349d8ab4351f7f17927b50c94255a7d8abbef","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-31T16:34:17-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/outbox.concurrency.test.ts"]},{"id":"886537eae83f56d3b662e070575ddf3d9a72307f","message":"feat(governance): ADR-0010 阶段一/二——治理分层与同 SHA 证据模型\n\n把「一堆各自为政的门禁 + 最近一次运行的报告」升级为分层规则与可聚合证据。\nADR-0010 当前为 Proposed,本批只落 observe 模式的实现,不改变现行放行口径。\n\n规则生命周期\n- governance.rules.json + schema:16 条规则,每条带 owner、作用域、严重度、\n 证据映射、profile 归属、ADR 引用与例外期限;check:governance-rules 校验\n 规则无主/入口缺失/例外过期/profile 循环依赖,registryVersion=3。\n\n四层 profile 入口\n- check:kernel / check:production / check:conformance / check:extension,\n 经 check-governance-profile.mjs 统一编排(非 Kernel 的 profile 先跑 Kernel)。\n- governance:status 生成同 SHA 状态清单:缺失、陈旧、dirty、跨 SHA 或未绑定\n registryVersion 的证据一律不产出 VERIFIED,当前四层均为 PARTIAL——\n 这正是它没在拿旧证据冒充绿盘的证明。\n\n双后端行为身份\n- conformance.matrix.json 锁 8 cases × 2 backends 的 case 身份;\n- check:conformance:differential 用**同一夹具**逐字段比较两端 HTTP/DB/outbox\n 的 7 个 checkpoint。存在性门禁看不见语义漂移,差分才看得见。\n\n证据来源加固\n- report-provenance 增加 registryVersion / run URL / artifact 身份;\n- 验收 runner(check:runtime / check:ui)拒绝 GOV_REPORT_* 覆盖变量并 exit 2\n ——此前可用它们一行伪造出「clean@HEAD 通过」的验收报告;\n- governance-report 的缺失指标改 fail-closed:预期指标 key 消失时不再落到\n `?? -1`/`?? 0` 被当成「变好」静默过闸(C18 同族,发生在 current 侧)。\n\n其他\n- runtime-governance 审计与验收基座守卫抽到 scripts/lib,供多入口复用;\n- check 链移出 check:os-product(它依赖仓外 OS 检出,会让静态门禁不自包含、\n GitHub CI 结构性必红);缺失时显式 SKIPPED,要真实校验用 check:full;\n- governance.yml 改三段 artifact 汇总;\n- baseline 仅收紧:ownTests 24→28、ownTestCases 146→197、testsPassed 192→202、\n uiTestsPassed 4→8,另加 5 项新地板,无任何放宽。\n\npnpm check:13 项静态门禁 + lint + typecheck 全绿(exit 0)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/886537eae83f56d3b662e070575ddf3d9a72307f","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-31T16:28:40-07:00","added":["apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/vitest.conformance.config.ts","conformance.matrix.json","docs/adr/0010-governance-layering-and-evidence-model.md","governance.rules.json","governance.rules.schema.json","scripts/check-conformance-differential.mjs","scripts/check-conformance-matrix.mjs","scripts/check-governance-profile.mjs","scripts/check-governance-rules.mjs","scripts/check-runtime-governance.mjs","scripts/generate-governance-status.mjs","scripts/lib/acceptance-base-guard.mjs","scripts/lib/runtime-governance-audit.mjs"],"removed":[],"modified":[".agents/skills/derived-project-framework-sync/SKILL.md",".agents/skills/derived-project-framework-sync/references/migration-protocol.md",".agents/skills/derived-project-framework-sync/scripts/plan-migration.mjs",".github/workflows/governance.yml","CLAUDE.md","README.md","docs/adr/README.md","docs/migration-playbook.md","package.json","reports/baseline.json","scripts/check-docs-truth.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]},{"id":"ec489eae037f3a7bc6b027898804a8b1bde0fc23","message":"fix(app): 404 不泄露资源 id + 前端断网桥接\n\n两处由治理证据实锤出来的产品缺陷:\n\n1. NestJS 订单 404 回显了资源 id(`Order \u003cid\u003e not found`),跨租户探测据此\n 可确认某 id 是否存在——404 的意义正是不泄露存在性。同时 Nest 默认异常体\n 带 statusCode/error 元数据,与 Fastify 的 `{message}` 形成两套对外契约。\n 现统一为稳定 ApiErrorBody `{ message: \"Order not found\" }`。\n\n2. useRealtime 缺 offline/online 桥接:WS/SSE 的 close/error 只在 TCP 真正\n 断开时触发,而「网络没了但连接还挂着」(拔网线、飞行模式、Playwright\n setOffline)不会立刻断 TCP,服务端 30s 心跳也只是数据帧——状态徽章会停在\n Connected 假绿。现监听 window offline/online:offline 主动断开并入既有退避\n 重连路径;online 清退避定时器立即重连,但不直接置 open——navigator.onLine\n 只有 false 是确定的,恢复后仍由真实连接结果决定状态。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/ec489eae037f3a7bc6b027898804a8b1bde0fc23","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-31T16:28:00-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/src/orders/orders.service.ts","apps/web/src/hooks/useRealtime.ts"]}],"total_commits":0,"head_commit":{"id":"6449421518ff6b2dd62b6ff862ff44aedcbbea29","message":"chore(reports): 刷新三级治理证据至 3bb349d(clean,202 tests / 8 UI)\n\n三级门禁均在 clean 工作区、同一提交 3bb349d 上实跑:\n\n- 静态 pnpm check:13 项门禁 + lint + typecheck,exit 0\n- 真实 DB pnpm check:runtime:202 tests / 0 failures、两后端迁移 deploy+status、\n 双后端同夹具差分 0 differences(PG base_framework_rt_final + Redis db11)\n- 浏览器 pnpm check:ui:8 用例 / 0 失败 / 0 跳过(PG base_framework_ui_final + db12)\n\n三份报告的 provenance 均为 gitSha=3bb349d、worktreeDirty=false,\n不再是此前绑定 a9e18b9 dirty 的 STALE 证据。\n\n新增报告:conformance-matrix、conformance-differential、governance-rules、\ngovernance-profile-kernel、governance-status(四层 profile 当前均为 PARTIAL——\nADR-0010 仍是 Proposed,observe 模式只诊断,不构成发布放行)。\n\n作用域声明:以上仅证明「本机 hillao 在 3bb349d 这个 clean commit 上通过三级门禁」,\n推不出远端已发布或 CI 已拦截(G14 仍 OPEN)。\ncheck:os-product 本轮显式 SKIPPED(上游 OS 检出不在场),未写 osProduct* 指标。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/6449421518ff6b2dd62b6ff862ff44aedcbbea29","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-31T16:36:45-07:00","added":["reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json"],"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/os-product-runtime.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":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":2145,"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":2,"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-08-30T13:33:00+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
|
1788219424
|
1788219454
|
0
|
1788219424
|
1788219464
|
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
|
|
23573
|
docs(governance): 动态区回灌至 clean @ 3bb349d + 把「动态区与报 docs(governance): 动态区回灌至 clean @ 3bb349d + 把「动态区与报告同步」机器化...
|
54
|
5
|
governance.yml
|
16
|
5
|
0
|
refs/heads/main
|
a9bf41341677134557538182b87a1339aa7b7616
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6449421518ff6b2dd62b6ff862ff44aedcbbea29","after":"a9bf41341677134557538182b87a1339aa7b7616","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/6449421518ff6b2dd62b6ff862ff44aedcbbea29...a9bf41341677134557538182b87a1339aa7b7616","commits":[{"id":"a9bf41341677134557538182b87a1339aa7b7616","message":"docs(governance): 动态区回灌至 clean @ 3bb349d + 把「动态区与报告同步」机器化\n\n回灌\n- 三级证据新鲜度从 `dirty @ a9e18b9` 更正为 **clean @ `3bb349d`**(静态 exit 0、\n runtime 202 tests / 差分 0 differences、UI 8 用例),并记录本轮实际基座库名与端口覆盖;\n- G0 余项(clean commit 三级重跑)标记完成;\n- 基线表 6 行「本地 dirty」改为 clean 绑定;\n- OS 两级本轮 SKIPPED / 未实跑,诚实标为 🟡 STALE——不随其他行一起蹭 clean。\n\n机器化(P5:机器门禁 \u003e 手册条目 \u003e 口头经验)\ncheck:docs-truth 新增 freshness-sha-runtime / freshness-sha-ui 两条断言:\n动态区声明的 SHA 必须等于对应 latest 报告的 provenance.gitSha。\n\n实锤依据:连续两轮报告刷新提交都没回灌动态区(报告 clean @ 3bb349d,\n动态区仍写 dirty @ a9e18b9);而 CLAUDE.md 自己规定「判定治理状态只认动态区 + reports」,\n两份真源打架时该规矩直接失效。同一轮人工回灌时我又把「本轮根本没跑」的 OS 行\n误标成 clean——人肉同步不可靠,正是 P5 要求机器化的形态。\n\n刻意不含静态级:governance.latest.json 每次 pnpm check 都重新生成并绑定当时 HEAD,\n对它断言等价于「每次提交都必须改文档」、提交报告后必红,那是会误杀的门禁。\nruntime/UI 报告只有显式跑真实验收才会变,「报告动了而文档没跟上」才是真信号。\n\n负向测试(收尾清单要求):\n① 把 runtime 行 SHA 篡改为 a9e18b9 → freshness-sha-runtime 精确红;\n② 删掉 UI 行的 SHA 声明 → freshness-sha-ui 精确红;\n两次均恢复现场后复跑转绿。pnpm check exit 0。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/a9bf41341677134557538182b87a1339aa7b7616","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-31T17:00:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","scripts/check-docs-truth.mjs"]}],"total_commits":0,"head_commit":{"id":"a9bf41341677134557538182b87a1339aa7b7616","message":"docs(governance): 动态区回灌至 clean @ 3bb349d + 把「动态区与报告同步」机器化\n\n回灌\n- 三级证据新鲜度从 `dirty @ a9e18b9` 更正为 **clean @ `3bb349d`**(静态 exit 0、\n runtime 202 tests / 差分 0 differences、UI 8 用例),并记录本轮实际基座库名与端口覆盖;\n- G0 余项(clean commit 三级重跑)标记完成;\n- 基线表 6 行「本地 dirty」改为 clean 绑定;\n- OS 两级本轮 SKIPPED / 未实跑,诚实标为 🟡 STALE——不随其他行一起蹭 clean。\n\n机器化(P5:机器门禁 \u003e 手册条目 \u003e 口头经验)\ncheck:docs-truth 新增 freshness-sha-runtime / freshness-sha-ui 两条断言:\n动态区声明的 SHA 必须等于对应 latest 报告的 provenance.gitSha。\n\n实锤依据:连续两轮报告刷新提交都没回灌动态区(报告 clean @ 3bb349d,\n动态区仍写 dirty @ a9e18b9);而 CLAUDE.md 自己规定「判定治理状态只认动态区 + reports」,\n两份真源打架时该规矩直接失效。同一轮人工回灌时我又把「本轮根本没跑」的 OS 行\n误标成 clean——人肉同步不可靠,正是 P5 要求机器化的形态。\n\n刻意不含静态级:governance.latest.json 每次 pnpm check 都重新生成并绑定当时 HEAD,\n对它断言等价于「每次提交都必须改文档」、提交报告后必红,那是会误杀的门禁。\nruntime/UI 报告只有显式跑真实验收才会变,「报告动了而文档没跟上」才是真信号。\n\n负向测试(收尾清单要求):\n① 把 runtime 行 SHA 篡改为 a9e18b9 → freshness-sha-runtime 精确红;\n② 删掉 UI 行的 SHA 声明 → freshness-sha-ui 精确红;\n两次均恢复现场后复跑转绿。pnpm check exit 0。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/a9bf41341677134557538182b87a1339aa7b7616","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-31T17:00:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","scripts/check-docs-truth.mjs"]},"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":2335,"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":2,"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-09-01T07:37: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
|
10
|
1788220856
|
1788220879
|
0
|
1788220856
|
1788220888
|
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
|
|
23574
|
chore(os-product): OS 两级验收在 clean commit 上重跑并回灌动态区
|
54
|
5
|
governance.yml
|
17
|
5
|
0
|
refs/heads/main
|
742f865d0672599ba182b16012b7671b114f273f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a9bf41341677134557538182b87a1339aa7b7616","after":"742f865d0672599ba182b16012b7671b114f273f","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/a9bf41341677134557538182b87a1339aa7b7616...742f865d0672599ba182b16012b7671b114f273f","commits":[{"id":"742f865d0672599ba182b16012b7671b114f273f","message":"chore(os-product): OS 两级验收在 clean commit 上重跑并回灌动态区\n\n上一轮 OS 两级因上游检出未显式提供而 SKIPPED,动态区据实标为 STALE。\n本轮显式给 DIGITAL_EMPLOYEE_OS_ROOT 后重跑,两级均绿:\n\n- check:os-product(静态兼容):juhai.baseframework@0.1.0 / protocol 1.3.0\n / 2 migrations / 1 acceptance suite,0 违规\n- check:os-product:runtime(双宿主真实验收):NestJS + Fastify / 8 cases / 0 failures\n (DB base_framework_os_product_a9bf413 + Redis db13,Node 22.23.2)\n\n证据绑定:本仓 clean @ a9bf413;上游 OS 本机检出源码 clean @ 89b2ade。\n\n关于上游 clean 的判定依据(不接受「报告说 clean 就是 clean」):\n上游工作树 git status 有 24 个变更,但已逐条核实全部匹配 reports/*.latest.json;\nreport-provenance 的 worktreeDirty 按文档化语义刻意排除该模式(报告是运行产物,\n前一个门禁刷新它们不应被后续门禁误判为「被验收源码 dirty」)。\n用同一排除规则跑 `git status --porcelain=v1 -- ':(exclude)reports/*.latest.json'`\n结果为空——源码确实 clean,dirty=false 不是假绿。\n\npnpm check exit 0;check:docs-truth 的动态区 SHA 断言仍绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/742f865d0672599ba182b16012b7671b114f273f","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-31T17:04:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"742f865d0672599ba182b16012b7671b114f273f","message":"chore(os-product): OS 两级验收在 clean commit 上重跑并回灌动态区\n\n上一轮 OS 两级因上游检出未显式提供而 SKIPPED,动态区据实标为 STALE。\n本轮显式给 DIGITAL_EMPLOYEE_OS_ROOT 后重跑,两级均绿:\n\n- check:os-product(静态兼容):juhai.baseframework@0.1.0 / protocol 1.3.0\n / 2 migrations / 1 acceptance suite,0 违规\n- check:os-product:runtime(双宿主真实验收):NestJS + Fastify / 8 cases / 0 failures\n (DB base_framework_os_product_a9bf413 + Redis db13,Node 22.23.2)\n\n证据绑定:本仓 clean @ a9bf413;上游 OS 本机检出源码 clean @ 89b2ade。\n\n关于上游 clean 的判定依据(不接受「报告说 clean 就是 clean」):\n上游工作树 git status 有 24 个变更,但已逐条核实全部匹配 reports/*.latest.json;\nreport-provenance 的 worktreeDirty 按文档化语义刻意排除该模式(报告是运行产物,\n前一个门禁刷新它们不应被后续门禁误判为「被验收源码 dirty」)。\n用同一排除规则跑 `git status --porcelain=v1 -- ':(exclude)reports/*.latest.json'`\n结果为空——源码确实 clean,dirty=false 不是假绿。\n\npnpm check exit 0;check:docs-truth 的动态区 SHA 断言仍绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/742f865d0672599ba182b16012b7671b114f273f","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-31T17:04:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/os-product-runtime.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":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":2394,"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":2,"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-09-01T08:00:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788221066
|
1788221486
|
0
|
1788221065
|
1788221496
|
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
|
|
23575
|
chore(reports): 刷新三级证据至 cb2a1f0(clean)+ 动态区同步回灌
|
54
|
5
|
governance.yml
|
18
|
5
|
0
|
refs/heads/main
|
75189f8787bc51f9cf16ba7b2fdcb735aea2ec15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"742f865d0672599ba182b16012b7671b114f273f","after":"75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/742f865d0672599ba182b16012b7671b114f273f...75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","commits":[{"id":"75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","message":"chore(reports): 刷新三级证据至 cb2a1f0(clean)+ 动态区同步回灌\n\n结构化日志接线后在 clean commit 上重跑取证:\n- 静态 pnpm check:exit 0\n- 真实 DB check:runtime:202 tests / 0 failures、差分 0 differences\n (PG base_framework_rt_cb2a1f0 + Redis db15)\n- 浏览器 check:ui:8 用例 / 0 失败 / 0 跳过\n (PG base_framework_ui_cb2a1f0 + Redis db12,端口经 UI_WEB_PORT/UI_API_PORT 覆盖)\n\n三份报告 provenance 均为 gitSha=cb2a1f0、worktreeDirty=false,动态区同步更新。\n本轮回灌由上一提交新增的 freshness-sha-runtime / freshness-sha-ui 断言强制——\n报告动了而文档没跟上会直接红,不再依赖人肉记得。\n\n作用域不变:仅证明「本机在 cb2a1f0 这个 clean commit 上通过三级门禁」,\n推不出远端已发布或 CI 已拦截(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","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-31T17:21:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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"]},{"id":"cb2a1f09fde2e86e3a4263b59e3565efaed5b104","message":"feat(observability): NestJS 接结构化日志,与 Fastify 拉平(G20 第一子项)\n\n此前 Fastify 侧是 pino 结构化 JSON,NestJS 全程默认 ConsoleLogger 输出彩色纯文本——\n同一套写链在两后端产出两种不可对齐的日志格式,生产上无法用同一条查询捞两边。\ncheck:dual-backend 是存在性门禁,看不见这层格式差异(G17 行为级盲区的又一实例)。\nG20「无可观测性」里性价比最高的一半其实早就免费存在,只差把另一半接上。\n\n- 新增 common/logger.ts:pino 支撑的 Nest LoggerService,口径与 api-fastify/src/app.ts\n 逐条对齐(同一个 LOG_LEVEL、同样的凭证脱敏路径、production 单行 JSON);\n Nest 传入的 context(类名)映射为结构化字段而非拼进消息串——拼进去就又要靠正则解析。\n- 在 create-app.ts 这个装配单源接线,测试与 bootstrap 共用同一份(禁止 main.ts 另起一套);\n- main.ts 的 4 行 console.log 改走 Logger,否则启动横幅纯文本、其余日志 JSON,同进程两种格式;\n bootstrap catch 保留 console.error 兜底(此时应用可能尚未装配成功)。\n\n顺带修掉一个两后端都有的启动崩溃模式:pino-pretty 是 devDependency,用\n`pnpm install --prod` 部署且 NODE_ENV 未设 production 时它不存在,pino 解析不到\ntransport target 会直接抛错——为一个开发期美化依赖把服务搞得起不来。\n两侧均改为先探测可用性、不可用则降级为 JSON。\n\n验证:\n- production:单行 JSON,context 为结构化字段,Error 序列化为 err{type,message,stack}\n- 开发态:pino-pretty 正常着色\n- 负向:临时移走 node_modules 里的 pino-pretty → 降级输出 JSON 而非崩溃,恢复后复原\n- pnpm check exit 0;pnpm check:runtime exit 0(202 tests、差分 0 differences)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/cb2a1f09fde2e86e3a4263b59e3565efaed5b104","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-31T17:18:41-07:00","added":["apps/api-nestjs/src/common/logger.ts"],"removed":[],"modified":["apps/api-fastify/src/app.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/main.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","message":"chore(reports): 刷新三级证据至 cb2a1f0(clean)+ 动态区同步回灌\n\n结构化日志接线后在 clean commit 上重跑取证:\n- 静态 pnpm check:exit 0\n- 真实 DB check:runtime:202 tests / 0 failures、差分 0 differences\n (PG base_framework_rt_cb2a1f0 + Redis db15)\n- 浏览器 check:ui:8 用例 / 0 失败 / 0 跳过\n (PG base_framework_ui_cb2a1f0 + Redis db12,端口经 UI_WEB_PORT/UI_API_PORT 覆盖)\n\n三份报告 provenance 均为 gitSha=cb2a1f0、worktreeDirty=false,动态区同步更新。\n本轮回灌由上一提交新增的 freshness-sha-runtime / freshness-sha-ui 断言强制——\n报告动了而文档没跟上会直接红,不再依赖人肉记得。\n\n作用域不变:仅证明「本机在 cb2a1f0 这个 clean commit 上通过三级门禁」,\n推不出远端已发布或 CI 已拦截(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","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-31T17:21:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":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":2448,"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":2,"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-09-01T08:04: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
|
10
|
1788222066
|
1788222486
|
0
|
1788222064
|
1788222578
|
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
|
|
23576
|
fix(ci): checkout 取全历史——浅克隆让 F5 把本仓证据误判为「来自另一个仓库」
|
54
|
5
|
governance.yml
|
19
|
5
|
0
|
refs/heads/main
|
5af8e60ea25ac2d24a90b8f103092f30d96b909a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"75189f8787bc51f9cf16ba7b2fdcb735aea2ec15","after":"5af8e60ea25ac2d24a90b8f103092f30d96b909a","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/75189f8787bc51f9cf16ba7b2fdcb735aea2ec15...5af8e60ea25ac2d24a90b8f103092f30d96b909a","commits":[{"id":"5af8e60ea25ac2d24a90b8f103092f30d96b909a","message":"fix(ci): checkout 取全历史——浅克隆让 F5 把本仓证据误判为「来自另一个仓库」\n\n加回 GitHub 远端后跑出第一份真实远端证据,static job 立刻红,但**不是治理违规**:\n\n ✗ [F5] reports/runtime-acceptance.latest.json: provenance.gitSha=cb2a1f0\n 不存在于本仓 git 历史——该证据来自**另一个仓库**\n\nF5 用 `git cat-file -e \u003csha\u003e^{commit}` 校验验收证据是否绑定本仓历史(防移植时照搬\n源项目的「测试跑过了」假证据)。而 actions/checkout@v4 默认 fetch-depth:1 只克隆\ntip 提交——验收证据一旦绑定任何祖先提交(正常工作流必然如此:先跑验收再提交报告),\nF5 就必然误判。三处 checkout 均补 fetch-depth: 0。\n\n本地负向复现:`git clone --depth 1` 后提交数=1,`git cat-file -e cb2a1f0` 找不到,\n与 CI 报错一致;全历史下同一命令通过。\n\n值得记的是:这条缺陷**只有真跑远端 CI 才暴露得出来**——本地永远是全历史,\n门禁正向绿;G14 登记的「远端拦截未验证」正是为防这类盲区而存在。\n上一轮修掉的是 check:os-product 依赖仓外检出(结构性必红),这是它后面藏着的第二个。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/5af8e60ea25ac2d24a90b8f103092f30d96b909a","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-31T17:29:21-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"5af8e60ea25ac2d24a90b8f103092f30d96b909a","message":"fix(ci): checkout 取全历史——浅克隆让 F5 把本仓证据误判为「来自另一个仓库」\n\n加回 GitHub 远端后跑出第一份真实远端证据,static job 立刻红,但**不是治理违规**:\n\n ✗ [F5] reports/runtime-acceptance.latest.json: provenance.gitSha=cb2a1f0\n 不存在于本仓 git 历史——该证据来自**另一个仓库**\n\nF5 用 `git cat-file -e \u003csha\u003e^{commit}` 校验验收证据是否绑定本仓历史(防移植时照搬\n源项目的「测试跑过了」假证据)。而 actions/checkout@v4 默认 fetch-depth:1 只克隆\ntip 提交——验收证据一旦绑定任何祖先提交(正常工作流必然如此:先跑验收再提交报告),\nF5 就必然误判。三处 checkout 均补 fetch-depth: 0。\n\n本地负向复现:`git clone --depth 1` 后提交数=1,`git cat-file -e cb2a1f0` 找不到,\n与 CI 报错一致;全历史下同一命令通过。\n\n值得记的是:这条缺陷**只有真跑远端 CI 才暴露得出来**——本地永远是全历史,\n门禁正向绿;G14 登记的「远端拦截未验证」正是为防这类盲区而存在。\n上一轮修掉的是 check:os-product 依赖仓外检出(结构性必红),这是它后面藏着的第二个。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/5af8e60ea25ac2d24a90b8f103092f30d96b909a","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-31T17:29:21-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"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":2630,"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":2,"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-09-01T08:21: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
|
12
|
1788222580
|
1788222671
|
0
|
1788222564
|
1788223084
|
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
|
|
23577
|
fix(gate): 差分门禁自包含——不再依赖磁盘上残留的 contracts dist
|
54
|
5
|
governance.yml
|
20
|
5
|
0
|
refs/heads/main
|
74b464480301493d008b476e72247f7289ccbffb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5af8e60ea25ac2d24a90b8f103092f30d96b909a","after":"74b464480301493d008b476e72247f7289ccbffb","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/5af8e60ea25ac2d24a90b8f103092f30d96b909a...74b464480301493d008b476e72247f7289ccbffb","commits":[{"id":"74b464480301493d008b476e72247f7289ccbffb","message":"fix(gate): 差分门禁自包含——不再依赖磁盘上残留的 contracts dist\n\n远端 CI 第二次真跑,static job 首次转绿,runtime job 接着暴露下一条:\n\n Error: Failed to resolve entry for package \"@repo/contracts\".\n\ncheck:conformance:differential 直接调 vitest(不经 turbo),因此拿不到 turbo 声明的\n`test → build` 依赖;而 contracts 是 TS 项目引用,没有 dist 时 vite 解析包入口即失败。\n本地长期通过是因为先跑过 pnpm check 把 dist 留在磁盘上——门禁被环境残留掩盖,\n正是本仓「静态门禁必须自包含」纪律要防的形态。\n\n修复时踩到第二层:contracts 的 tsconfig 是 composite(增量),tsbuildinfo 还在而 dist\n已被删时,`tsc -p` 会认为「一切最新」而**不产出任何文件**——构建退出码 0、dist 依旧为空。\n故重建前先清 tsbuildinfo,并在构建后断言 dist/index.js 真的存在,否则显式报错。\n\n负向验证:`rm -rf packages/contracts/dist packages/contracts/tsconfig.tsbuildinfo`\n后直接跑 check:conformance:differential → 自动重建并通过\n(7 checkpoints × 2 backends,0 differences)。\n\n本地:pnpm check exit 0;pnpm check:runtime exit 0。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/74b464480301493d008b476e72247f7289ccbffb","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-31T17:36:59-07:00","added":[],"removed":[],"modified":["scripts/check-conformance-differential.mjs"]}],"total_commits":0,"head_commit":{"id":"74b464480301493d008b476e72247f7289ccbffb","message":"fix(gate): 差分门禁自包含——不再依赖磁盘上残留的 contracts dist\n\n远端 CI 第二次真跑,static job 首次转绿,runtime job 接着暴露下一条:\n\n Error: Failed to resolve entry for package \"@repo/contracts\".\n\ncheck:conformance:differential 直接调 vitest(不经 turbo),因此拿不到 turbo 声明的\n`test → build` 依赖;而 contracts 是 TS 项目引用,没有 dist 时 vite 解析包入口即失败。\n本地长期通过是因为先跑过 pnpm check 把 dist 留在磁盘上——门禁被环境残留掩盖,\n正是本仓「静态门禁必须自包含」纪律要防的形态。\n\n修复时踩到第二层:contracts 的 tsconfig 是 composite(增量),tsbuildinfo 还在而 dist\n已被删时,`tsc -p` 会认为「一切最新」而**不产出任何文件**——构建退出码 0、dist 依旧为空。\n故重建前先清 tsbuildinfo,并在构建后断言 dist/index.js 真的存在,否则显式报错。\n\n负向验证:`rm -rf packages/contracts/dist packages/contracts/tsconfig.tsbuildinfo`\n后直接跑 check:conformance:differential → 自动重建并通过\n(7 checkpoints × 2 backends,0 differences)。\n\n本地:pnpm check exit 0;pnpm check:runtime exit 0。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/74b464480301493d008b476e72247f7289ccbffb","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-31T17:36:59-07:00","added":[],"removed":[],"modified":["scripts/check-conformance-differential.mjs"]},"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":2634,"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":2,"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-09-01T08:29: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
|
12
|
1788223086
|
1788223125
|
0
|
1788223021
|
1788223135
|
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
|
|
23578
|
fix(gate): 测试数解析先剥 ANSI——地板校验在 CI 上恒读 0(假红)
|
54
|
5
|
governance.yml
|
21
|
5
|
0
|
refs/heads/main
|
5f156175e6f2397c334fcd3eb5cde4e45423b68b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"74b464480301493d008b476e72247f7289ccbffb","after":"5f156175e6f2397c334fcd3eb5cde4e45423b68b","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/74b464480301493d008b476e72247f7289ccbffb...5f156175e6f2397c334fcd3eb5cde4e45423b68b","commits":[{"id":"5f156175e6f2397c334fcd3eb5cde4e45423b68b","message":"fix(gate): 测试数解析先剥 ANSI——地板校验在 CI 上恒读 0(假红)\n\n远端第三次真跑:static job 绿,runtime job 报\n\n Tests passed regressed: expected \u003e= 202, got 0.\n\n但下载 CI 上传的证据 artifact 看,test 步骤 status=0、4 个 turbo 任务全成功、\nFastify 明明 58 passed——测试全跑过了,是 runner 的**解析**失效。\n\n根因:GitHub Actions 支持颜色,vitest/turbo 因此输出带色汇总行,\"Tests\" 与数字之间\n夹着 ANSI 转义序列,`/Tests\\s+(\\d+)\\s+passed/` 匹配不到。本地非 TTY 无色所以一直有效——\n这条地板在本地有牙、在 CI 上恒读 0,属于「同一门禁在两个环境语义不同」。\n方向上它是 fail-closed(0 \u003c 202 判红)而非假绿,但仍是假红,会把真实回归淹没在噪声里。\n\ncountPassedTests 改为先 stripAnsi 再匹配。\n验证:用真实 CI 那行带色文本喂解析器,剥离前 0、剥离后 58;\n本地 check:runtime 仍读到 202(exit 0)。\n\nUI runner 不受影响:它读 Playwright 的 JSON 统计,不解析终端文本。\n\n这是加回 GitHub 远端后暴露的第三条「只有远端才看得见」的缺陷\n(前两条:checkout 浅克隆让 F5 误判、差分门禁依赖磁盘残留的 contracts dist)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/5f156175e6f2397c334fcd3eb5cde4e45423b68b","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-31T17:43:13-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"5f156175e6f2397c334fcd3eb5cde4e45423b68b","message":"fix(gate): 测试数解析先剥 ANSI——地板校验在 CI 上恒读 0(假红)\n\n远端第三次真跑:static job 绿,runtime job 报\n\n Tests passed regressed: expected \u003e= 202, got 0.\n\n但下载 CI 上传的证据 artifact 看,test 步骤 status=0、4 个 turbo 任务全成功、\nFastify 明明 58 passed——测试全跑过了,是 runner 的**解析**失效。\n\n根因:GitHub Actions 支持颜色,vitest/turbo 因此输出带色汇总行,\"Tests\" 与数字之间\n夹着 ANSI 转义序列,`/Tests\\s+(\\d+)\\s+passed/` 匹配不到。本地非 TTY 无色所以一直有效——\n这条地板在本地有牙、在 CI 上恒读 0,属于「同一门禁在两个环境语义不同」。\n方向上它是 fail-closed(0 \u003c 202 判红)而非假绿,但仍是假红,会把真实回归淹没在噪声里。\n\ncountPassedTests 改为先 stripAnsi 再匹配。\n验证:用真实 CI 那行带色文本喂解析器,剥离前 0、剥离后 58;\n本地 check:runtime 仍读到 202(exit 0)。\n\nUI runner 不受影响:它读 Playwright 的 JSON 统计,不解析终端文本。\n\n这是加回 GitHub 远端后暴露的第三条「只有远端才看得见」的缺陷\n(前两条:checkout 浅克隆让 F5 误判、差分门禁依赖磁盘残留的 contracts dist)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/5f156175e6f2397c334fcd3eb5cde4e45423b68b","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-31T17:43:13-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]},"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":2640,"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":2,"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-09-01T08:37:01+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
|
1788223469
|
1788223508
|
0
|
1788223468
|
1788223517
|
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
|
|
23579
|
docs(governance): 回灌首份远端 CI 绿盘证据 + 三级证据刷新至 5f15617
|
54
|
5
|
governance.yml
|
22
|
5
|
0
|
refs/heads/main
|
b1695a6780efbc95449a553d313599695c0b22ab
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5f156175e6f2397c334fcd3eb5cde4e45423b68b","after":"b1695a6780efbc95449a553d313599695c0b22ab","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/5f156175e6f2397c334fcd3eb5cde4e45423b68b...b1695a6780efbc95449a553d313599695c0b22ab","commits":[{"id":"b1695a6780efbc95449a553d313599695c0b22ab","message":"docs(governance): 回灌首份远端 CI 绿盘证据 + 三级证据刷新至 5f15617\n\n远端证据(G14 部分推进,**未闭环**)\nGitHub 远端已加回(github → laoluojuhai/base-framework,私有仓)。\n在 5f15617 上三个 job 全绿:Static governance / Runtime and UI acceptance /\nAggregate same-SHA governance evidence\nrun: https://github.com/laoluojuhai/base-framework/actions/runs/33455966984\n该 run 的 headSha 与本地 HEAD 逐字符对齐。这是本仓历史上第一次远端 CI 绿——\n此前每一次远端运行都是 failure(最近一次 2026-08-26,正是 check:os-product 并入\npnpm check 那一提交)。\n\n三条「只有远端才看得见」的缺陷已在本轮依次修掉,均已单独提交并在本条登记:\n① checkout 浅克隆 → F5 把本仓证据误判为「来自另一个仓库」\n② 差分门禁依赖磁盘残留的 contracts dist(外加 composite 增量陷阱)\n③ 测试数地板正则未剥 ANSI,CI 下恒读 0\n共同点:本地全绿、远端必红——正是 G14「远端拦截未验证」这条缺口存在的意义。\n\n⚠️ ci-gate 仍不标 GREEN:required checks / 分支保护未配置,受控失败 PR 未做。\n「门禁能跑绿」推不出「违规会被挡住」,缺这两项不得宣称 PR 已被机器拦截。\n\n三级证据刷新\n静态 exit 0、runtime 202 tests / 差分 0 differences、UI 8 用例,\n三份报告 provenance 均为 gitSha=5f15617、worktreeDirty=false。\n本轮回灌过程中 freshness-sha-runtime 断言真的挡了我一次(报告已刷到 74b4644 而\n动态区仍写 cb2a1f0),按其要求重跑取证后才通过——新门禁有牙。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/b1695a6780efbc95449a553d313599695c0b22ab","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-31T17:52:26-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":"b1695a6780efbc95449a553d313599695c0b22ab","message":"docs(governance): 回灌首份远端 CI 绿盘证据 + 三级证据刷新至 5f15617\n\n远端证据(G14 部分推进,**未闭环**)\nGitHub 远端已加回(github → laoluojuhai/base-framework,私有仓)。\n在 5f15617 上三个 job 全绿:Static governance / Runtime and UI acceptance /\nAggregate same-SHA governance evidence\nrun: https://github.com/laoluojuhai/base-framework/actions/runs/33455966984\n该 run 的 headSha 与本地 HEAD 逐字符对齐。这是本仓历史上第一次远端 CI 绿——\n此前每一次远端运行都是 failure(最近一次 2026-08-26,正是 check:os-product 并入\npnpm check 那一提交)。\n\n三条「只有远端才看得见」的缺陷已在本轮依次修掉,均已单独提交并在本条登记:\n① checkout 浅克隆 → F5 把本仓证据误判为「来自另一个仓库」\n② 差分门禁依赖磁盘残留的 contracts dist(外加 composite 增量陷阱)\n③ 测试数地板正则未剥 ANSI,CI 下恒读 0\n共同点:本地全绿、远端必红——正是 G14「远端拦截未验证」这条缺口存在的意义。\n\n⚠️ ci-gate 仍不标 GREEN:required checks / 分支保护未配置,受控失败 PR 未做。\n「门禁能跑绿」推不出「违规会被挡住」,缺这两项不得宣称 PR 已被机器拦截。\n\n三级证据刷新\n静态 exit 0、runtime 202 tests / 差分 0 differences、UI 8 用例,\n三份报告 provenance 均为 gitSha=5f15617、worktreeDirty=false。\n本轮回灌过程中 freshness-sha-runtime 断言真的挡了我一次(报告已刷到 74b4644 而\n动态区仍写 cb2a1f0),按其要求重跑取证后才通过——新门禁有牙。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/b1695a6780efbc95449a553d313599695c0b22ab","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-31T17:52:26-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":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":2646,"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":2,"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-09-01T08:44: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
|
10
|
1788223951
|
1788223991
|
0
|
1788223950
|
1788224001
|
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
|
|
23583
|
feat(conversation): 新增会话接入规划
|
95
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
8f6910906c90ae8ac301228d1e16a2094effd42e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"8f6910906c90ae8ac301228d1e16a2094effd42e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"8f6910906c90ae8ac301228d1e16a2094effd42e","message":"feat(conversation): 新增会话接入规划\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/8f6910906c90ae8ac301228d1e16a2094effd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/conversation/conversation-admission.service.ts","docs/domain/conversation-message-blueprint.md","packages/contracts/src/conversation-admission-planner.test.ts","packages/contracts/src/conversation-admission-planner.ts","packages/contracts/src/conversation-message.test.ts","packages/contracts/src/conversation-message.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"9160d7a325c179d832751689c36008a12f6f313c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/9160d7a325c179d832751689c36008a12f6f313c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03bb9503f1bbab212efb3038587bd6e351f94a7e","message":"feat: 平台身份重绑定 im-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/03bb9503f1bbab212efb3038587bd6e351f94a7e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.im/README.md","products/juhai.im/acceptance/juhai.im.order.acceptance.mjs","products/juhai.im/migrations/juhai.im.order/20260826090000_create_orders.sql","products/juhai.im/migrations/juhai.im.order/20260826091000_create_order_events.sql","products/juhai.im/package.json","products/juhai.im/product.manifest.json","products/juhai.im/src/contracts.ts","products/juhai.im/src/fastify.ts","products/juhai.im/src/host.ts","products/juhai.im/src/index.ts","products/juhai.im/src/manifest.ts","products/juhai.im/src/nestjs.ts","products/juhai.im/src/order-repository.ts","products/juhai.im/src/tools.ts","products/juhai.im/src/web.tsx","products/juhai.im/test/os-host.runtime.test.ts","products/juhai.im/tsconfig.os-host.json","products/juhai.im/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"0106d984c9218065931274353deff3d0502cddc1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/0106d984c9218065931274353deff3d0502cddc1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"3608994da52171d10cb43367c1bd465a052a0971","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/3608994da52171d10cb43367c1bd465a052a0971","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:18-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"8f6910906c90ae8ac301228d1e16a2094effd42e","message":"feat(conversation): 新增会话接入规划\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/8f6910906c90ae8ac301228d1e16a2094effd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/conversation/conversation-admission.service.ts","docs/domain/conversation-message-blueprint.md","packages/contracts/src/conversation-admission-planner.test.ts","packages/contracts/src/conversation-admission-planner.ts","packages/contracts/src/conversation-message.test.ts","packages/contracts/src/conversation-message.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":95,"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":"im-platform","full_name":"luoanwu/im-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/im-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/im-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/im-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/im-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/im-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-01T21:57:42+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271185
|
1788271212
|
0
|
1788271183
|
1788280440
|
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
|
|
23584
|
feat(identity): 新增机器凭据租约规划
|
101
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
bcf51b52439dd8d332699a9f312305c102f9d379
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"bcf51b52439dd8d332699a9f312305c102f9d379","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"bcf51b52439dd8d332699a9f312305c102f9d379","message":"feat(identity): 新增机器凭据租约规划\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/bcf51b52439dd8d332699a9f312305c102f9d379","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/identity/machine-credential-lease.service.ts","docs/domain/machine-credential-preflight-blueprint.md","packages/contracts/src/machine-credential-lease-planner.test.ts","packages/contracts/src/machine-credential-lease-planner.ts","packages/contracts/src/machine-credential-preflight.test.ts","packages/contracts/src/machine-credential-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"5a30437c2e16e8bdff9d309b98114e206640ea02","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/5a30437c2e16e8bdff9d309b98114e206640ea02","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:22-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a1dc3c53039fa8bca3d4d2f0e99fb2b1138cf5eb","message":"feat: 平台身份重绑定 secret-identity(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/a1dc3c53039fa8bca3d4d2f0e99fb2b1138cf5eb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["docs/framework-migration.md","products/juhai.secretidentity/README.md","products/juhai.secretidentity/acceptance/juhai.secretidentity.order.acceptance.mjs","products/juhai.secretidentity/migrations/juhai.secretidentity.order/20260826090000_create_orders.sql","products/juhai.secretidentity/migrations/juhai.secretidentity.order/20260826091000_create_order_events.sql","products/juhai.secretidentity/package.json","products/juhai.secretidentity/product.manifest.json","products/juhai.secretidentity/src/contracts.ts","products/juhai.secretidentity/src/fastify.ts","products/juhai.secretidentity/src/host.ts","products/juhai.secretidentity/src/index.ts","products/juhai.secretidentity/src/manifest.ts","products/juhai.secretidentity/src/nestjs.ts","products/juhai.secretidentity/src/order-repository.ts","products/juhai.secretidentity/src/tools.ts","products/juhai.secretidentity/src/web.tsx","products/juhai.secretidentity/test/os-host.runtime.test.ts","products/juhai.secretidentity/tsconfig.os-host.json","products/juhai.secretidentity/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"b46f5611ca1b6b7f266bcc88bc5e9b14957c9ceb","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/b46f5611ca1b6b7f266bcc88bc5e9b14957c9ceb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ff8f10d152a443b4fbe8991435485a23a42185dd","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/ff8f10d152a443b4fbe8991435485a23a42185dd","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:10-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"bcf51b52439dd8d332699a9f312305c102f9d379","message":"feat(identity): 新增机器凭据租约规划\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/bcf51b52439dd8d332699a9f312305c102f9d379","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/identity/machine-credential-lease.service.ts","docs/domain/machine-credential-preflight-blueprint.md","packages/contracts/src/machine-credential-lease-planner.test.ts","packages/contracts/src/machine-credential-lease-planner.ts","packages/contracts/src/machine-credential-preflight.test.ts","packages/contracts/src/machine-credential-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":101,"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":"secret-identity","full_name":"luoanwu/secret-identity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity/languages","html_url":"https://gitea.g-hi.com/luoanwu/secret-identity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/secret-identity.git","clone_url":"https://gitea.g-hi.com/luoanwu/secret-identity.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-01T21:58:03+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271212
|
1788271238
|
0
|
1788271183
|
1788280440
|
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
|
|
23585
|
feat(ai-governance): 新增本地 AI 治理路由
|
94
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
701b8a173b6b2ce458b720a7a862f0e99d40309f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"701b8a173b6b2ce458b720a7a862f0e99d40309f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"701b8a173b6b2ce458b720a7a862f0e99d40309f","message":"feat(ai-governance): 新增本地 AI 治理路由\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/701b8a173b6b2ce458b720a7a862f0e99d40309f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ai-governance/ai-governance-policy.service.ts","docs/domain/ai-action-governance-blueprint.md","packages/contracts/src/ai-action-governance.test.ts","packages/contracts/src/ai-action-governance.ts","packages/contracts/src/ai-governance-router.test.ts","packages/contracts/src/ai-governance-router.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"9ae82e5795cdf8b865a6b3d499b59047fea319bc","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/9ae82e5795cdf8b865a6b3d499b59047fea319bc","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"4762b56a19a893ee67a529cb0ed6d1641b922d7c","message":"feat: 平台身份重绑定 ai-governance(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/4762b56a19a893ee67a529cb0ed6d1641b922d7c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.aigovernance/README.md","products/juhai.aigovernance/acceptance/juhai.aigovernance.order.acceptance.mjs","products/juhai.aigovernance/migrations/juhai.aigovernance.order/20260826090000_create_orders.sql","products/juhai.aigovernance/migrations/juhai.aigovernance.order/20260826091000_create_order_events.sql","products/juhai.aigovernance/package.json","products/juhai.aigovernance/product.manifest.json","products/juhai.aigovernance/src/contracts.ts","products/juhai.aigovernance/src/fastify.ts","products/juhai.aigovernance/src/host.ts","products/juhai.aigovernance/src/index.ts","products/juhai.aigovernance/src/manifest.ts","products/juhai.aigovernance/src/nestjs.ts","products/juhai.aigovernance/src/order-repository.ts","products/juhai.aigovernance/src/tools.ts","products/juhai.aigovernance/src/web.tsx","products/juhai.aigovernance/test/os-host.runtime.test.ts","products/juhai.aigovernance/tsconfig.os-host.json","products/juhai.aigovernance/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"6e30097a743badebaad4703c81753079f90bedb5","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/6e30097a743badebaad4703c81753079f90bedb5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"b6f18880313fe2b89c65656edaa905e466304d9a","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/b6f18880313fe2b89c65656edaa905e466304d9a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:18-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"701b8a173b6b2ce458b720a7a862f0e99d40309f","message":"feat(ai-governance): 新增本地 AI 治理路由\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/701b8a173b6b2ce458b720a7a862f0e99d40309f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ai-governance/ai-governance-policy.service.ts","docs/domain/ai-action-governance-blueprint.md","packages/contracts/src/ai-action-governance.test.ts","packages/contracts/src/ai-action-governance.ts","packages/contracts/src/ai-governance-router.test.ts","packages/contracts/src/ai-governance-router.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":94,"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":"ai-governance","full_name":"luoanwu/ai-governance","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/ai-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/ai-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/ai-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/ai-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/ai-governance.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-01T21:56:50+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271238
|
1788271264
|
0
|
1788271184
|
1788280440
|
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
|
|
23586
|
feat(experience): 新增体验贡献复核
|
99
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
55301b4f6982b6f43812122ef534914b093fc061
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"55301b4f6982b6f43812122ef534914b093fc061","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"55301b4f6982b6f43812122ef534914b093fc061","message":"feat(experience): 新增体验贡献复核\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/55301b4f6982b6f43812122ef534914b093fc061","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/experience-contribution-blueprint.md","packages/contracts/src/experience-contribution.test.ts","packages/contracts/src/experience-contribution.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"d1ceb480adcfcd48e38ac85cb48a12a5465fd42e","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/d1ceb480adcfcd48e38ac85cb48a12a5465fd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"511e9cff89a6fd623e5f9aaf7aa894ba2b1a2c2e","message":"feat: 平台身份重绑定 experience-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/511e9cff89a6fd623e5f9aaf7aa894ba2b1a2c2e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.experience/README.md","products/juhai.experience/acceptance/juhai.experience.order.acceptance.mjs","products/juhai.experience/migrations/juhai.experience.order/20260826090000_create_orders.sql","products/juhai.experience/migrations/juhai.experience.order/20260826091000_create_order_events.sql","products/juhai.experience/package.json","products/juhai.experience/product.manifest.json","products/juhai.experience/src/contracts.ts","products/juhai.experience/src/fastify.ts","products/juhai.experience/src/host.ts","products/juhai.experience/src/index.ts","products/juhai.experience/src/manifest.ts","products/juhai.experience/src/nestjs.ts","products/juhai.experience/src/order-repository.ts","products/juhai.experience/src/tools.ts","products/juhai.experience/src/web.tsx","products/juhai.experience/test/os-host.runtime.test.ts","products/juhai.experience/tsconfig.os-host.json","products/juhai.experience/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"92bc270a242276f9660652beee3bee68df31c394","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/92bc270a242276f9660652beee3bee68df31c394","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"6db4550f946602857b0b4d190cb455d65ed9cf10","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/6db4550f946602857b0b4d190cb455d65ed9cf10","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"55301b4f6982b6f43812122ef534914b093fc061","message":"feat(experience): 新增体验贡献复核\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/55301b4f6982b6f43812122ef534914b093fc061","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/experience-contribution-blueprint.md","packages/contracts/src/experience-contribution.test.ts","packages/contracts/src/experience-contribution.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":99,"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":"experience-platform","full_name":"luoanwu/experience-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/experience-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/experience-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/experience-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/experience-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/experience-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-01T21:57:59+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271264
|
1788271289
|
0
|
1788271184
|
1788280740
|
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
|
|
23587
|
feat(facts): 新增事实导出准入规划
|
97
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a54db31c626be2ee1d48d10fe18bb0c74a9c47aa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","message":"feat(facts): 新增事实导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/facts/fact-export-planning.service.ts","docs/domain/fact-delivery-blueprint.md","packages/contracts/src/fact-delivery.test.ts","packages/contracts/src/fact-delivery.ts","packages/contracts/src/fact-export-planner.test.ts","packages/contracts/src/fact-export-planner.ts"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"02a26c024daa9fa8304a0691a1ceeb699da10ce5","message":"chore: 真实 DB 验收首跑证据(202 tests / 0 failures,clean @ 1ce8bfe)+ P7 补 testsPassed 地板\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/02a26c024daa9fa8304a0691a1ceeb699da10ce5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:05:38-07:00","added":["reports/runtime-acceptance.latest.json"],"removed":[],"modified":["reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"1ce8bfe4e03f69863a3c95f349b23509f3b900da","message":"chore: 治理基线由本仓真实数字初始化(源仓地板不迁入,迁移手册步骤6/P7)\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/1ce8bfe4e03f69863a3c95f349b23509f3b900da","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:58:51-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/baseline.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"9abc607d97a5e3b908fde184ed54682bfbc2f87a","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/9abc607d97a5e3b908fde184ed54682bfbc2f87a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:58:03-07:00","added":["reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"bd6accc0ee8df440cc3bc7838aad11c0fb7e5adf","message":"feat: 平台身份重绑定 fact-backbone(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/bd6accc0ee8df440cc3bc7838aad11c0fb7e5adf","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:57:57-07:00","added":["docs/framework-migration.md","products/juhai.factbackbone/README.md","products/juhai.factbackbone/acceptance/juhai.factbackbone.order.acceptance.mjs","products/juhai.factbackbone/migrations/juhai.factbackbone.order/20260826090000_create_orders.sql","products/juhai.factbackbone/migrations/juhai.factbackbone.order/20260826091000_create_order_events.sql","products/juhai.factbackbone/package.json","products/juhai.factbackbone/product.manifest.json","products/juhai.factbackbone/src/contracts.ts","products/juhai.factbackbone/src/fastify.ts","products/juhai.factbackbone/src/host.ts","products/juhai.factbackbone/src/index.ts","products/juhai.factbackbone/src/manifest.ts","products/juhai.factbackbone/src/nestjs.ts","products/juhai.factbackbone/src/order-repository.ts","products/juhai.factbackbone/src/tools.ts","products/juhai.factbackbone/src/web.tsx","products/juhai.factbackbone/test/os-host.runtime.test.ts","products/juhai.factbackbone/tsconfig.os-host.json","products/juhai.factbackbone/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]}],"total_commits":0,"head_commit":{"id":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","message":"feat(facts): 新增事实导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/facts/fact-export-planning.service.ts","docs/domain/fact-delivery-blueprint.md","packages/contracts/src/fact-delivery.test.ts","packages/contracts/src/fact-delivery.ts","packages/contracts/src/fact-export-planner.test.ts","packages/contracts/src/fact-export-planner.ts"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.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":97,"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":"fact-backbone","full_name":"luoanwu/fact-backbone","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/fact-backbone/languages","html_url":"https://gitea.g-hi.com/luoanwu/fact-backbone","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/fact-backbone","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/fact-backbone.git","clone_url":"https://gitea.g-hi.com/luoanwu/fact-backbone.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-01T21:57:55+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271289
|
1788271314
|
0
|
1788271184
|
1788280740
|
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
|
|
23588
|
feat(idp): 新增切换前置校验
|
96
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
456d79abd599208f2a7d6fe388f4f71b56e7ee89
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","message":"feat(idp): 新增切换前置校验\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/456d79abd599208f2a7d6fe388f4f71b56e7ee89","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/idp-cutover-blueprint.md","packages/contracts/src/idp-cutover.test.ts","packages/contracts/src/idp-cutover.ts"],"removed":[],"modified":[".github/workflows/governance.yml","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"7becd6b2d616a6bddc65e273004a252a5bd63d1c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/7becd6b2d616a6bddc65e273004a252a5bd63d1c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"68cdd9bbcca158d6686077abb55b1a51783256eb","message":"feat: 平台身份重绑定 enterprise-idp(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/68cdd9bbcca158d6686077abb55b1a51783256eb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.idp/README.md","products/juhai.idp/acceptance/juhai.idp.order.acceptance.mjs","products/juhai.idp/migrations/juhai.idp.order/20260826090000_create_orders.sql","products/juhai.idp/migrations/juhai.idp.order/20260826091000_create_order_events.sql","products/juhai.idp/package.json","products/juhai.idp/product.manifest.json","products/juhai.idp/src/contracts.ts","products/juhai.idp/src/fastify.ts","products/juhai.idp/src/host.ts","products/juhai.idp/src/index.ts","products/juhai.idp/src/manifest.ts","products/juhai.idp/src/nestjs.ts","products/juhai.idp/src/order-repository.ts","products/juhai.idp/src/tools.ts","products/juhai.idp/src/web.tsx","products/juhai.idp/test/os-host.runtime.test.ts","products/juhai.idp/tsconfig.os-host.json","products/juhai.idp/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4c29740da375e0e949c8f075b8b86a9331ce15ba","message":"chore: check:kernel 复跑证据刷新(bootstrap 脚本幂等验证)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/4c29740da375e0e949c8f075b8b86a9331ce15ba","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:50:34-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f16b4297a48802b0dd920b9c892dadc88da97748","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/f16b4297a48802b0dd920b9c892dadc88da97748","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","message":"feat(idp): 新增切换前置校验\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/456d79abd599208f2a7d6fe388f4f71b56e7ee89","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/idp-cutover-blueprint.md","packages/contracts/src/idp-cutover.test.ts","packages/contracts/src/idp-cutover.ts"],"removed":[],"modified":[".github/workflows/governance.yml","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":96,"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-idp","full_name":"luoanwu/enterprise-idp","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-idp.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp.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-01T21:57:53+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271315
|
1788278640
|
0
|
1788271184
|
1788330039
|
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
|
|
23589
|
feat(public-file): 新增文件访问规划
|
100
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2387e931f0ea23c2d6e540ae2a62fe923e35f5d6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"c5da8254acbbc8775def2fe45e59dbe5fe3531be","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c5da8254acbbc8775def2fe45e59dbe5fe3531be","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","message":"feat: 平台身份重绑定 file-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.file/README.md","products/juhai.file/acceptance/juhai.file.order.acceptance.mjs","products/juhai.file/migrations/juhai.file.order/20260826090000_create_orders.sql","products/juhai.file/migrations/juhai.file.order/20260826091000_create_order_events.sql","products/juhai.file/package.json","products/juhai.file/product.manifest.json","products/juhai.file/src/contracts.ts","products/juhai.file/src/fastify.ts","products/juhai.file/src/host.ts","products/juhai.file/src/index.ts","products/juhai.file/src/manifest.ts","products/juhai.file/src/nestjs.ts","products/juhai.file/src/order-repository.ts","products/juhai.file/src/tools.ts","products/juhai.file/src/web.tsx","products/juhai.file/test/os-host.runtime.test.ts","products/juhai.file/tsconfig.os-host.json","products/juhai.file/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"c0acd82b726e9023cd0235d4986b063cf9c57d36","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c0acd82b726e9023cd0235d4986b063cf9c57d36","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"437046945042b060fbafaa33cf8bc68844349036","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/437046945042b060fbafaa33cf8bc68844349036","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":100,"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":"file-platform","full_name":"luoanwu/file-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/file-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/file-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/file-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-01T21:58:01+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788271408
|
1788278640
|
0
|
1788271184
|
1788373230
|
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
|
|
23590
|
feat(audit): 新增审计追加准入规划
|
98
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
4197c76a3677f8a51b929de86073cda7c8220673
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"4197c76a3677f8a51b929de86073cda7c8220673","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"ceee9a45f5847aec31a418691652306c7410a003","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/ceee9a45f5847aec31a418691652306c7410a003","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"312466c67c0f09500822f477c6343129548ea4d3","message":"feat: 平台身份重绑定 audit-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/312466c67c0f09500822f477c6343129548ea4d3","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.audit/README.md","products/juhai.audit/acceptance/juhai.audit.order.acceptance.mjs","products/juhai.audit/migrations/juhai.audit.order/20260826090000_create_orders.sql","products/juhai.audit/migrations/juhai.audit.order/20260826091000_create_order_events.sql","products/juhai.audit/package.json","products/juhai.audit/product.manifest.json","products/juhai.audit/src/contracts.ts","products/juhai.audit/src/fastify.ts","products/juhai.audit/src/host.ts","products/juhai.audit/src/index.ts","products/juhai.audit/src/manifest.ts","products/juhai.audit/src/nestjs.ts","products/juhai.audit/src/order-repository.ts","products/juhai.audit/src/tools.ts","products/juhai.audit/src/web.tsx","products/juhai.audit/test/os-host.runtime.test.ts","products/juhai.audit/tsconfig.os-host.json","products/juhai.audit/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"bd3e350a2ab060060a7a184830cb6f91121f739d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/bd3e350a2ab060060a7a184830cb6f91121f739d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:44-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":98,"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":"audit-platform","full_name":"luoanwu/audit-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/audit-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/audit-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/audit-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-01T21:57:57+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788278400
|
1788279240
|
0
|
1788271184
|
1788373230
|
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
|
|
23591
|
feat(ingress): 新增入口准入规划
|
103
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"a4864b772d58e60a37218a8e2b456a3ab9f789b0","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/a4864b772d58e60a37218a8e2b456a3ab9f789b0","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"184d79f7bbf320b292a3de4a0f977aa8d673528b","message":"feat: 平台身份重绑定 app-gateway(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/184d79f7bbf320b292a3de4a0f977aa8d673528b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appgateway/README.md","products/juhai.appgateway/acceptance/juhai.appgateway.order.acceptance.mjs","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826090000_create_orders.sql","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826091000_create_order_events.sql","products/juhai.appgateway/package.json","products/juhai.appgateway/product.manifest.json","products/juhai.appgateway/src/contracts.ts","products/juhai.appgateway/src/fastify.ts","products/juhai.appgateway/src/host.ts","products/juhai.appgateway/src/index.ts","products/juhai.appgateway/src/manifest.ts","products/juhai.appgateway/src/nestjs.ts","products/juhai.appgateway/src/order-repository.ts","products/juhai.appgateway/src/tools.ts","products/juhai.appgateway/src/web.tsx","products/juhai.appgateway/test/os-host.runtime.test.ts","products/juhai.appgateway/tsconfig.os-host.json","products/juhai.appgateway/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"19e1119a75f21f174cdb1fc66b4d1da0dca08de7","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/19e1119a75f21f174cdb1fc66b4d1da0dca08de7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":103,"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":"app-gateway","full_name":"luoanwu/app-gateway","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-gateway","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-gateway.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-gateway.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-01T21:58:07+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278542
|
1788279240
|
0
|
1788271185
|
1788373230
|
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
|
|
23592
|
feat(capacity): 新增资源标签契约
|
104
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"e6c88cfc485e250d564fcae637c22bf6453268a4","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/e6c88cfc485e250d564fcae637c22bf6453268a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:29-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d67a89fd8645c27e839259f0a6a4b95666756729","message":"feat: 平台身份重绑定 cost-capacity(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/d67a89fd8645c27e839259f0a6a4b95666756729","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:22-07:00","added":["docs/framework-migration.md","products/juhai.costcapacity/README.md","products/juhai.costcapacity/acceptance/juhai.costcapacity.order.acceptance.mjs","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826090000_create_orders.sql","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826091000_create_order_events.sql","products/juhai.costcapacity/package.json","products/juhai.costcapacity/product.manifest.json","products/juhai.costcapacity/src/contracts.ts","products/juhai.costcapacity/src/fastify.ts","products/juhai.costcapacity/src/host.ts","products/juhai.costcapacity/src/index.ts","products/juhai.costcapacity/src/manifest.ts","products/juhai.costcapacity/src/nestjs.ts","products/juhai.costcapacity/src/order-repository.ts","products/juhai.costcapacity/src/tools.ts","products/juhai.costcapacity/src/web.tsx","products/juhai.costcapacity/test/os-host.runtime.test.ts","products/juhai.costcapacity/tsconfig.os-host.json","products/juhai.costcapacity/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"5fb2d0dedcb19ab42f3be24316582eeaacddd59d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/5fb2d0dedcb19ab42f3be24316582eeaacddd59d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f8cbd83703e403e0fccbd379d2946a655f337814","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/f8cbd83703e403e0fccbd379d2946a655f337814","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:31-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":104,"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":"cost-capacity","full_name":"luoanwu/cost-capacity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity/languages","html_url":"https://gitea.g-hi.com/luoanwu/cost-capacity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/cost-capacity.git","clone_url":"https://gitea.g-hi.com/luoanwu/cost-capacity.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-01T21:58:09+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278684
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23593
|
feat(registry): 新增清单准入规划
|
102
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
84ddb30d145311a96f500560acdcf6b3b7d6a910
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"84ddb30d145311a96f500560acdcf6b3b7d6a910","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"4b7fa15f1cb4502edae19204a2fea5645dc09301","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/4b7fa15f1cb4502edae19204a2fea5645dc09301","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"18b7855652a9da5c316d17740ca79db956231232","message":"feat: 平台身份重绑定 app-registry(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/18b7855652a9da5c316d17740ca79db956231232","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appregistry/README.md","products/juhai.appregistry/acceptance/juhai.appregistry.order.acceptance.mjs","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826090000_create_orders.sql","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826091000_create_order_events.sql","products/juhai.appregistry/package.json","products/juhai.appregistry/product.manifest.json","products/juhai.appregistry/src/contracts.ts","products/juhai.appregistry/src/fastify.ts","products/juhai.appregistry/src/host.ts","products/juhai.appregistry/src/index.ts","products/juhai.appregistry/src/manifest.ts","products/juhai.appregistry/src/nestjs.ts","products/juhai.appregistry/src/order-repository.ts","products/juhai.appregistry/src/tools.ts","products/juhai.appregistry/src/web.tsx","products/juhai.appregistry/test/os-host.runtime.test.ts","products/juhai.appregistry/tsconfig.os-host.json","products/juhai.appregistry/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f3d8def24403f71854453326335ea4f5f3fba94d","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/f3d8def24403f71854453326335ea4f5f3fba94d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":102,"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":"app-registry","full_name":"luoanwu/app-registry","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-registry","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-registry.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-registry.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-01T21:58:05+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278762
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23594
|
feat(metrics): 新增指标契约复核
|
105
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f76fa1f553ada89174b9b59a934711373396a1f5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f76fa1f553ada89174b9b59a934711373396a1f5","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"399e265e2c0054d3c9ebc58b2551268b1b6d68ce","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/399e265e2c0054d3c9ebc58b2551268b1b6d68ce","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","message":"feat: 平台身份重绑定 data-analytics(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.analytics/README.md","products/juhai.analytics/acceptance/juhai.analytics.order.acceptance.mjs","products/juhai.analytics/migrations/juhai.analytics.order/20260826090000_create_orders.sql","products/juhai.analytics/migrations/juhai.analytics.order/20260826091000_create_order_events.sql","products/juhai.analytics/package.json","products/juhai.analytics/product.manifest.json","products/juhai.analytics/src/contracts.ts","products/juhai.analytics/src/fastify.ts","products/juhai.analytics/src/host.ts","products/juhai.analytics/src/index.ts","products/juhai.analytics/src/manifest.ts","products/juhai.analytics/src/nestjs.ts","products/juhai.analytics/src/order-repository.ts","products/juhai.analytics/src/tools.ts","products/juhai.analytics/src/web.tsx","products/juhai.analytics/test/os-host.runtime.test.ts","products/juhai.analytics/tsconfig.os-host.json","products/juhai.analytics/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"1f25e1e1ae1cc7be1f0964f70aea4215a023d717","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/1f25e1e1ae1cc7be1f0964f70aea4215a023d717","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"418f29cd598d8d101563ed02bfe7e96503cb6ee4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/418f29cd598d8d101563ed02bfe7e96503cb6ee4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":105,"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":"data-analytics","full_name":"luoanwu/data-analytics","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics/languages","html_url":"https://gitea.g-hi.com/luoanwu/data-analytics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/data-analytics.git","clone_url":"https://gitea.g-hi.com/luoanwu/data-analytics.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-01T21:58:11+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278840
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23595
|
feat(scope): 新增作用域解析规划
|
106
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a92f8b4ba943c410e739b5b60b1fea8e24f09c9e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"03fe4ab65eed33a77d99c9785b0817cf7e15bf03","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/03fe4ab65eed33a77d99c9785b0817cf7e15bf03","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d9b72b0c1d941ca1e6087644f706019eb80d9755","message":"feat: 平台身份重绑定 tenant-scope(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/d9b72b0c1d941ca1e6087644f706019eb80d9755","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.tenantscope/README.md","products/juhai.tenantscope/acceptance/juhai.tenantscope.order.acceptance.mjs","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826090000_create_orders.sql","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826091000_create_order_events.sql","products/juhai.tenantscope/package.json","products/juhai.tenantscope/product.manifest.json","products/juhai.tenantscope/src/contracts.ts","products/juhai.tenantscope/src/fastify.ts","products/juhai.tenantscope/src/host.ts","products/juhai.tenantscope/src/index.ts","products/juhai.tenantscope/src/manifest.ts","products/juhai.tenantscope/src/nestjs.ts","products/juhai.tenantscope/src/order-repository.ts","products/juhai.tenantscope/src/tools.ts","products/juhai.tenantscope/src/web.tsx","products/juhai.tenantscope/test/os-host.runtime.test.ts","products/juhai.tenantscope/tsconfig.os-host.json","products/juhai.tenantscope/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eeee196b3c90ac39ac619cab997897d2e6a0c89e","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/eeee196b3c90ac39ac619cab997897d2e6a0c89e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":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":27,"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":1,"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-01T21:59: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
|
6
|
1788278922
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23596
|
feat(delivery): 新增制品晋级复核
|
107
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3652661600d592fcb613bfa9c99558f81faec118
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3652661600d592fcb613bfa9c99558f81faec118","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","turbo.json"]},{"id":"d61db0e94f32ca06bd104ef261cb25b270fa958a","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/d61db0e94f32ca06bd104ef261cb25b270fa958a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:36-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ecb505f637254aa07144a2913cc8a69753dea0c8","message":"feat: 平台身份重绑定 delivery-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/ecb505f637254aa07144a2913cc8a69753dea0c8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.delivery/README.md","products/juhai.delivery/acceptance/juhai.delivery.order.acceptance.mjs","products/juhai.delivery/migrations/juhai.delivery.order/20260826090000_create_orders.sql","products/juhai.delivery/migrations/juhai.delivery.order/20260826091000_create_order_events.sql","products/juhai.delivery/package.json","products/juhai.delivery/product.manifest.json","products/juhai.delivery/src/contracts.ts","products/juhai.delivery/src/fastify.ts","products/juhai.delivery/src/host.ts","products/juhai.delivery/src/index.ts","products/juhai.delivery/src/manifest.ts","products/juhai.delivery/src/nestjs.ts","products/juhai.delivery/src/order-repository.ts","products/juhai.delivery/src/tools.ts","products/juhai.delivery/src/web.tsx","products/juhai.delivery/test/os-host.runtime.test.ts","products/juhai.delivery/tsconfig.os-host.json","products/juhai.delivery/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"e6148468af42bba79b640efdc83977a38e304f6b","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e6148468af42bba79b640efdc83977a38e304f6b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e530220abce01ecbb9780bee6e843a4e03a72c4b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e530220abce01ecbb9780bee6e843a4e03a72c4b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:49-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","turbo.json"]},"repository":{"id":107,"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":"delivery-platform","full_name":"luoanwu/delivery-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/delivery-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/delivery-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/delivery-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-01T21:58:15+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788279064
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23597
|
feat(permission): 新增权限决策规划
|
108
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d63bc91b99a4ea62c35d0cd2368045ce54e4385c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"a58f9c47304f1983aca6ba7072f58ff5c0969f55","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/a58f9c47304f1983aca6ba7072f58ff5c0969f55","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","message":"feat: 平台身份重绑定 permission-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.permission/README.md","products/juhai.permission/acceptance/juhai.permission.order.acceptance.mjs","products/juhai.permission/migrations/juhai.permission.order/20260826090000_create_orders.sql","products/juhai.permission/migrations/juhai.permission.order/20260826091000_create_order_events.sql","products/juhai.permission/package.json","products/juhai.permission/product.manifest.json","products/juhai.permission/src/contracts.ts","products/juhai.permission/src/fastify.ts","products/juhai.permission/src/host.ts","products/juhai.permission/src/index.ts","products/juhai.permission/src/manifest.ts","products/juhai.permission/src/nestjs.ts","products/juhai.permission/src/order-repository.ts","products/juhai.permission/src/tools.ts","products/juhai.permission/src/web.tsx","products/juhai.permission/test/os-host.runtime.test.ts","products/juhai.permission/tsconfig.os-host.json","products/juhai.permission/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4491834f55010479358d5650e9f738a394335f6f","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/4491834f55010479358d5650e9f738a394335f6f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03eb3aee5143031086e4faf6c7c713d6fb7bde49","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/03eb3aee5143031086e4faf6c7c713d6fb7bde49","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":108,"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":"permission-platform","full_name":"luoanwu/permission-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/permission-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/permission-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/permission-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-01T21:58:17+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788279143
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23598
|
feat(workflow): 新增跨域流程规划
|
109
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0a92bf8f8c65b738777680d5f4951d37581dda65
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0a92bf8f8c65b738777680d5f4951d37581dda65","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"e9ff5bd315e2caf78e583cd118695ac68763b724","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/e9ff5bd315e2caf78e583cd118695ac68763b724","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f8e52f00a19d821e073da7613bd5f57d9bf9e990","message":"feat: 平台身份重绑定 scheduler-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/f8e52f00a19d821e073da7613bd5f57d9bf9e990","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.scheduler/README.md","products/juhai.scheduler/acceptance/juhai.scheduler.order.acceptance.mjs","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826090000_create_orders.sql","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826091000_create_order_events.sql","products/juhai.scheduler/package.json","products/juhai.scheduler/product.manifest.json","products/juhai.scheduler/src/contracts.ts","products/juhai.scheduler/src/fastify.ts","products/juhai.scheduler/src/host.ts","products/juhai.scheduler/src/index.ts","products/juhai.scheduler/src/manifest.ts","products/juhai.scheduler/src/nestjs.ts","products/juhai.scheduler/src/order-repository.ts","products/juhai.scheduler/src/tools.ts","products/juhai.scheduler/src/web.tsx","products/juhai.scheduler/test/os-host.runtime.test.ts","products/juhai.scheduler/tsconfig.os-host.json","products/juhai.scheduler/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"8b2151898531ef01360cca6a7036ea7f9757cdcb","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/8b2151898531ef01360cca6a7036ea7f9757cdcb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":109,"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":"scheduler-platform","full_name":"luoanwu/scheduler-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/scheduler-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/scheduler-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/scheduler-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-01T21:58:19+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788279222
|
1788280140
|
0
|
1788271187
|
1788373230
|
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
|
|
23599
|
feat(notification): 新增 Webhook 投递规划
|
110
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
06991c06ed232dd99a9384486146e7e119030769
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"06991c06ed232dd99a9384486146e7e119030769","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"0462d0ff032e829cb3ecc98ac2554f804b85325c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/0462d0ff032e829cb3ecc98ac2554f804b85325c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"043a8ade4f7129842c06118ad381026679148fd5","message":"feat: 平台身份重绑定 notification-hub(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/043a8ade4f7129842c06118ad381026679148fd5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.notification/README.md","products/juhai.notification/acceptance/juhai.notification.order.acceptance.mjs","products/juhai.notification/migrations/juhai.notification.order/20260826090000_create_orders.sql","products/juhai.notification/migrations/juhai.notification.order/20260826091000_create_order_events.sql","products/juhai.notification/package.json","products/juhai.notification/product.manifest.json","products/juhai.notification/src/contracts.ts","products/juhai.notification/src/fastify.ts","products/juhai.notification/src/host.ts","products/juhai.notification/src/index.ts","products/juhai.notification/src/manifest.ts","products/juhai.notification/src/nestjs.ts","products/juhai.notification/src/order-repository.ts","products/juhai.notification/src/tools.ts","products/juhai.notification/src/web.tsx","products/juhai.notification/test/os-host.runtime.test.ts","products/juhai.notification/tsconfig.os-host.json","products/juhai.notification/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"ca1700973414443af423502aa79ce327d0b3c73e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ca1700973414443af423502aa79ce327d0b3c73e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":110,"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":"notification-hub","full_name":"luoanwu/notification-hub","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/notification-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/notification-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/notification-hub.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-01T21:58:21+08:00","updated_at":"2026-09-01T21:59:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788279300
|
1788280140
|
0
|
1788271189
|
1788373230
|
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
|
|
23600
|
feat(config): 新增本地配置客户端
|
111
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0999f3af2b5b8dccf941370c293bad77a9a27854
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0999f3af2b5b8dccf941370c293bad77a9a27854","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"9b81af060da191e089249cad86b0e395c08e5f33","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9b81af060da191e089249cad86b0e395c08e5f33","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9c897855a37126636e0803d65d4dd5428200b040","message":"feat: 平台身份重绑定 config-flag(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9c897855a37126636e0803d65d4dd5428200b040","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.configflag/README.md","products/juhai.configflag/acceptance/juhai.configflag.order.acceptance.mjs","products/juhai.configflag/migrations/juhai.configflag.order/20260826090000_create_orders.sql","products/juhai.configflag/migrations/juhai.configflag.order/20260826091000_create_order_events.sql","products/juhai.configflag/package.json","products/juhai.configflag/product.manifest.json","products/juhai.configflag/src/contracts.ts","products/juhai.configflag/src/fastify.ts","products/juhai.configflag/src/host.ts","products/juhai.configflag/src/index.ts","products/juhai.configflag/src/manifest.ts","products/juhai.configflag/src/nestjs.ts","products/juhai.configflag/src/order-repository.ts","products/juhai.configflag/src/tools.ts","products/juhai.configflag/src/web.tsx","products/juhai.configflag/test/os-host.runtime.test.ts","products/juhai.configflag/tsconfig.os-host.json","products/juhai.configflag/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"13e67540810f7deba818c7f0da73d1aa4f30e279","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/13e67540810f7deba818c7f0da73d1aa4f30e279","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"3a88755f584661c16c13901f9519399fdd0a3d9b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/3a88755f584661c16c13901f9519399fdd0a3d9b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":111,"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":"config-flag","full_name":"luoanwu/config-flag","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag/languages","html_url":"https://gitea.g-hi.com/luoanwu/config-flag","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/config-flag.git","clone_url":"https://gitea.g-hi.com/luoanwu/config-flag.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-01T21:58:23+08:00","updated_at":"2026-09-01T21:59:49+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
|
1788279442
|
1788280140
|
0
|
1788271189
|
1788373230
|
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
|
|
23601
|
feat(telemetry): 新增遥测导出准入规划
|
112
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
b1fba12bb50265a049edcdefc547f92df9126793
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"b1fba12bb50265a049edcdefc547f92df9126793","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"03ae898131283c370d76186d5688261bec76978e","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/03ae898131283c370d76186d5688261bec76978e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"da99b13be9a584d2bc66e023aa251ed8797ab438","message":"feat: 平台身份重绑定 observability-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/da99b13be9a584d2bc66e023aa251ed8797ab438","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.observability/README.md","products/juhai.observability/acceptance/juhai.observability.order.acceptance.mjs","products/juhai.observability/migrations/juhai.observability.order/20260826090000_create_orders.sql","products/juhai.observability/migrations/juhai.observability.order/20260826091000_create_order_events.sql","products/juhai.observability/package.json","products/juhai.observability/product.manifest.json","products/juhai.observability/src/contracts.ts","products/juhai.observability/src/fastify.ts","products/juhai.observability/src/host.ts","products/juhai.observability/src/index.ts","products/juhai.observability/src/manifest.ts","products/juhai.observability/src/nestjs.ts","products/juhai.observability/src/order-repository.ts","products/juhai.observability/src/tools.ts","products/juhai.observability/src/web.tsx","products/juhai.observability/test/os-host.runtime.test.ts","products/juhai.observability/tsconfig.os-host.json","products/juhai.observability/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ef351f47e74ceadccb6834d38895e674541088a4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/ef351f47e74ceadccb6834d38895e674541088a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":112,"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":"observability-platform","full_name":"luoanwu/observability-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/observability-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/observability-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/observability-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-01T21:58:25+08:00","updated_at":"2026-09-01T21:59:49+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
|
1788279584
|
1788280440
|
0
|
1788271189
|
1788373230
|
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
|
|
23606
|
chore(reports): refresh clean static evidence @ 28 chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)...
|
54
|
5
|
governance.yml
|
23
|
5
|
0
|
refs/heads/main
|
7135258b78d5b623099713b2bd3292af46b6329d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b1695a6780efbc95449a553d313599695c0b22ab","after":"7135258b78d5b623099713b2bd3292af46b6329d","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/b1695a6780efbc95449a553d313599695c0b22ab...7135258b78d5b623099713b2bd3292af46b6329d","commits":[{"id":"7135258b78d5b623099713b2bd3292af46b6329d","message":"chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7135258b78d5b623099713b2bd3292af46b6329d","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-02T18:59:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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/governance-profile-kernel.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/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":"286eb956f5ee3634246ef80235af45a628635af9","message":"chore(reports): 刷新三级证据至 1245400(clean;runtime 207 / UI 9 / 差分 8×2 零差异)+ 地板 testsPassed 203→207、uiTestsPassed 8→9\n\n动态区 runtime/UI 行回灌到 clean @ 1245400;own-test-cases 203。同日 aeed741 顶层 runtime 红 5 例\n已由 C22 修复并在 1245400 重跑转绿。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/286eb956f5ee3634246ef80235af45a628635af9","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-02T18:59:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"1245400747afade64c6cda83d362021e0b9d69c2","message":"fix(realtime): Redis pub/sub 连接 ready 后才交付——修复非 0 逻辑库上订阅约 50% 建不起来(C22)\n\naeed741 的 clean-SHA 顶层 check:runtime 红 5 例(NestJS realtime.command/subscription\n`waitUntil timed out`),单独复跑 3 轮中 2 轮仍红,不是并行噪声。`DEBUG=ioredis:*` 抓到:\nSUB 连接裸建(lazyConnect:false)后立即被 EventBusService.onModuleInit `subscribe()`,\nioredis 立刻置订阅模式并把 subscribe 排进离线队列,握手期 `SELECT 9` / `INFO` 就绪检查被\n客户端以 \"Connection in subscriber mode\" 拒绝 → 判致命错误重连 → 订阅在窗口内从未建立。\n只有 REDIS_URL 带非 0 db 才发 SELECT,CI(db0)从不复现,本机验收切到 db9 后开始「偶发」。\nFastify plugins/redis.ts 同一形态(窗口更窄)。\n\n- 两后端 pub/sub 改 lazyConnect + 显式 await connect()(NestJS 异步 useFactory / Fastify\n Promise.all),ready 后才交付;启动期 Redis 不可达即拒绝启动;挂 error 监听进结构化日志\n- connectionName = api-\u003cbackend\u003e-realtime-\u003crole\u003e-\u003cpid\u003e,CLIENT LIST 可按角色定位\n- 两后端 http.acceptance 各 +1:CLIENT LIST 断言逻辑库 = REDIS_URL 且 SUB sub=1、status ready\n- 证据:修复后 realtime.command 定向 10/10 绿、0 条 ioredis 未处理错误;负向改回旧写法\n readiness 用例 5 轮中 2 轮红(expected 'reconnecting' to be 'ready')\n- G18 复跑判责纪律补:偶发红必须至少抓一次协议级失败现场\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/1245400747afade64c6cda83d362021e0b9d69c2","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-02T18:55:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/governance-experience.md","reports/agent-adapters.latest.json","reports/baseline.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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":"aeed74154025d55fe8e9f481d473c153de92dd63","message":"feat(users): 唯一键冲突映射为稳定 409 DUPLICATE_EMAIL + G21 多代理适配器同源门禁\n\nC21:`@@unique([tenantId,email])` 的 Prisma P2002 此前在 NestJS/Fastify 都没有映射,\n重复邮箱直接 500(修复前两后端新用例均 `expected 500 to be 409` 实锤);NestJS users 404\n还回显资源 id 与框架元数据,与 orders/Fastify 不同体。\n- contracts 新增 `USER_ERROR_CODES.DUPLICATE_EMAIL`(单源)\n- 两后端幂等窄捕获只认 P2002 → 409 `{ message, code }`;Fastify 伪造 P2025 裸 Error 改为\n 类型化 UserNotFoundError/DuplicateUserEmailError;NestJS users 404 改稳定体\n- 两后端 http.acceptance 各 +1 用例(POST/PATCH 409、outbox 无副作用、他租户同 email 201)\n- conformance 矩阵 +HTTP-CONFLICT-001(8→9)、差分 +DIFF-USER-CONFLICT-001(7→8,0 differences)\n- UI +1 用例:重复邮箱在真实页面显示稳定错误、列表不出现第二条\n\nG21:新增 `pnpm check:agent-adapters`(接入 pnpm check / Kernel profile / 棘轮 / 规则\nGOV-AGENT-ADAPTER-001,registryVersion 3→4):.claude/.agents 同名技能在 doctrine 名与\n画像路径替换之外逐字节比对,单侧技能须登记理由;补齐 business-module-intake Codex 侧副本,\n技能内对不存在技能的硬引用改为「有则调用、无则手工等价」。负向三条(改一行/删单侧/多文件)均红。\n\n基线收紧:ownTestCases 198→201、conformanceMatrixCases 8→9、新增 agentAdapter* 两项。\nruntime/UI 地板待 clean SHA 实跑后回灌。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/aeed74154025d55fe8e9f481d473c153de92dd63","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-02T18:22:32-07:00","added":[".agents/skills/business-module-intake/SKILL.md","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".claude/skills/business-module-intake/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/UsersPanel.tsx","conformance.matrix.json","docs/governance-experience.md","docs/standards/api-standard.md","governance.rules.json","package.json","packages/contracts/src/user.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","scripts/check-governance-profile.mjs","scripts/governance-report.mjs"]},{"id":"269497f441cafaa4501126c4632b5f02ca513233","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/269497f441cafaa4501126c4632b5f02ca513233","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-02T09:59:04-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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"]}],"total_commits":0,"head_commit":{"id":"7135258b78d5b623099713b2bd3292af46b6329d","message":"chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7135258b78d5b623099713b2bd3292af46b6329d","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-02T18:59:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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/governance-profile-kernel.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/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":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":2706,"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":2,"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-09-01T08:52: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
|
10
|
1788401213
|
1788401267
|
0
|
1788401211
|
1788401278
|
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
|
|
23607
|
fix(gate): G15-B 独占探针真关闭 + 父子探针互认——首个含 G15-B 的远端 r fix(gate): G15-B 独占探针真关闭 + 父子探针互认——首个含 G15-B 的远端 run 红在差分 preflight(C23)...
|
54
|
5
|
governance.yml
|
24
|
5
|
0
|
refs/heads/main
|
f17d34a463e70366161f4603e53a4b2800e9a241
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7135258b78d5b623099713b2bd3292af46b6329d","after":"f17d34a463e70366161f4603e53a4b2800e9a241","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/7135258b78d5b623099713b2bd3292af46b6329d...f17d34a463e70366161f4603e53a4b2800e9a241","commits":[{"id":"f17d34a463e70366161f4603e53a4b2800e9a241","message":"fix(gate): G15-B 独占探针真关闭 + 父子探针互认——首个含 G15-B 的远端 run 红在差分 preflight(C23)\n\n推送 7135258 后 GitHub run 33706371355:Static governance 绿,Runtime and UI acceptance 在\ncheck:runtime 第 4 步 conformance-differential 红:「验收 Redis 逻辑库 0 已有 1 个外部连接:\n172.18.0.1:53838 cmd=client|list」。那条连接是顶层 runner 自己几秒前的独占探针:redisExec 收完\n回复只 socket.end() 半关闭,GitHub 的 Redis service 经 docker 网桥暴露,服务端连接残留,子门禁\n把它当成外部占用。本机探针不 SELECT 始终落 db0、验收用 db9,所以三级全绿也撞不上。\n\n- redisExec:队尾追加 QUIT,收到回复后 destroy();服务端先关也按成功收口\n- 探针 CLIENT SETNAME governance-acceptance-probe-\u003cpid\u003e,foreignClientsOnDb 按前缀排除,\n 父 runner 与派生子门禁各探一次时互认(名字不带项目名,派生仓零改动沿用)\n- 本机 db10 五项正/负向:无名残留连接仍被拒、具名探针被忽略、探针返回后 CLIENT LIST 不再列出自身、\n 解析器只保留真 worker;本机 check:runtime 冒烟 207 tests 通过\n- doctrine:发布状态快照更新为两远端 7135258、G14 登记第四条只有远端才看得见的缺陷、ci-gate 行、C23 索引\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/f17d34a463e70366161f4603e53a4b2800e9a241","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-02T19:17:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","scripts/lib/acceptance-base-guard.mjs"]}],"total_commits":0,"head_commit":{"id":"f17d34a463e70366161f4603e53a4b2800e9a241","message":"fix(gate): G15-B 独占探针真关闭 + 父子探针互认——首个含 G15-B 的远端 run 红在差分 preflight(C23)\n\n推送 7135258 后 GitHub run 33706371355:Static governance 绿,Runtime and UI acceptance 在\ncheck:runtime 第 4 步 conformance-differential 红:「验收 Redis 逻辑库 0 已有 1 个外部连接:\n172.18.0.1:53838 cmd=client|list」。那条连接是顶层 runner 自己几秒前的独占探针:redisExec 收完\n回复只 socket.end() 半关闭,GitHub 的 Redis service 经 docker 网桥暴露,服务端连接残留,子门禁\n把它当成外部占用。本机探针不 SELECT 始终落 db0、验收用 db9,所以三级全绿也撞不上。\n\n- redisExec:队尾追加 QUIT,收到回复后 destroy();服务端先关也按成功收口\n- 探针 CLIENT SETNAME governance-acceptance-probe-\u003cpid\u003e,foreignClientsOnDb 按前缀排除,\n 父 runner 与派生子门禁各探一次时互认(名字不带项目名,派生仓零改动沿用)\n- 本机 db10 五项正/负向:无名残留连接仍被拒、具名探针被忽略、探针返回后 CLIENT LIST 不再列出自身、\n 解析器只保留真 worker;本机 check:runtime 冒烟 207 tests 通过\n- doctrine:发布状态快照更新为两远端 7135258、G14 登记第四条只有远端才看得见的缺陷、ci-gate 行、C23 索引\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/f17d34a463e70366161f4603e53a4b2800e9a241","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-02T19:17:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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/governance-rules.latest.json","reports/governance-status.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","scripts/lib/acceptance-base-guard.mjs"]},"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":2940,"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":2,"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-09-03T10:06: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
|
10
|
1788401828
|
1788402247
|
0
|
1788401827
|
1788402256
|
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
|
|
23608
|
docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 337 docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐...
|
54
|
5
|
governance.yml
|
25
|
5
|
0
|
refs/heads/main
|
06b8b98f483723103dcd01449e6ec6772ad10c13
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f17d34a463e70366161f4603e53a4b2800e9a241","after":"06b8b98f483723103dcd01449e6ec6772ad10c13","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/f17d34a463e70366161f4603e53a4b2800e9a241...06b8b98f483723103dcd01449e6ec6772ad10c13","commits":[{"id":"06b8b98f483723103dcd01449e6ec6772ad10c13","message":"docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/06b8b98f483723103dcd01449e6ec6772ad10c13","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-02T19:23:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"06b8b98f483723103dcd01449e6ec6772ad10c13","message":"docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/06b8b98f483723103dcd01449e6ec6772ad10c13","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-02T19:23:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"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":3032,"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":2,"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-09-03T10:17:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
12
|
1788402257
|
1788402300
|
0
|
1788402192
|
1788402309
|
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
|