sqlite-web 0.7.2
gitea.db
action_run
Create
Query
access
access_token
action
action_artifact
action_run
action_run_index
action_run_job
action_runner
action_runner_token
action_schedule
action_schedule_spec
action_task
action_task_output
action_task_step
action_tasks_version
action_variable
app_state
attachment
auth_token
badge
branch
collaboration
comment
commit_status
commit_status_index
commit_status_summary
commit_sync_log
commit_sync_status
dbfs_data
dbfs_meta
deploy_key
email_address
email_hash
external_login_user
follow
gpg_key
gpg_key_import
hook_task
issue
issue_assignees
issue_content_history
issue_dependency
issue_index
issue_label
issue_pin
issue_user
issue_watch
label
language_stat
lfs_lock
lfs_meta_object
login_source
milestone
mirror
notice
notification
oauth2_application
oauth2_authorization_code
oauth2_grant
org_user
package
package_blob
package_blob_upload
package_cleanup_rule
package_file
package_property
package_version
project
project_board
project_issue
protected_branch
protected_tag
public_key
pull_auto_merge
pull_request
push_mirror
reaction
release
renamed_branch
repo_archiver
repo_hidden_file
repo_indexer_status
repo_license
repo_redirect
repo_topic
repo_transfer
repo_unit
repository
review
review_state
secret
session
sqlite_sequence
star
stopwatch
system_setting
task
team
team_invite
team_repo
team_unit
team_user
topic
tracked_time
two_factor
upload
user
user_badge
user_blocking
user_open_id
user_redirect
user_setting
version
watch
webauthn_credential
webhook
Toggle helper tables
Structure
Content
Query
Insert
Drop
Import
Export
Update row 23539 in action_run
id
Primary key.
INTEGER NOT NULL
title
feat: unify projects and tickets under execution control
TEXT
repo_id
INTEGER
owner_id
INTEGER
workflow_id
governance.yml
TEXT
index
INTEGER
trigger_user_id
INTEGER
schedule_id
INTEGER
ref
refs/heads/main
TEXT
commit_sha
f78be17ac5fecb9cfa36e167b1e85ea26a48fa45
TEXT
is_fork_pull_request
INTEGER
need_approval
INTEGER
approved_by
INTEGER
event
push
TEXT
event_payload
{"ref":"refs/heads/main","before":"343e79d764ae566372808d0d922fcef7ca12a30e","after":"f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/343e79d764ae566372808d0d922fcef7ca12a30e...f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","commits":[{"id":"f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","message":"feat: unify projects and tickets under execution control\n\nEstablish Projects and Tickets as separate owned fact domains coordinated by Execution Control across NestJS, Fastify, and the Next.js BFF.\n\nAdd governed identity, SLA, automation, AI, attachment, operations, deployment, and provenance-bound static/runtime/browser acceptance.\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-28T03:46:07-07:00","added":[".agents/skills",".dockerignore",".github/workflows/release-images.yml","Dockerfile","apps/api-fastify/prisma/migrations/20260826165000_tenant_rls/migration.sql","apps/api-fastify/prisma/migrations/20260826171000_audit_idempotency/migration.sql","apps/api-fastify/prisma/migrations/20260826172500_sla_versions/migration.sql","apps/api-fastify/prisma/migrations/20260826174500_inbound_records/migration.sql","apps/api-fastify/prisma/migrations/20260826182000_sla_runtime_facts/migration.sql","apps/api-fastify/prisma/migrations/20260826190000_attachment_quarantine/migration.sql","apps/api-fastify/prisma/migrations/20260826193000_automation_rules/migration.sql","apps/api-fastify/prisma/migrations/20260826201500_automation_retries/migration.sql","apps/api-fastify/prisma/migrations/20260826204000_attachment_retention/migration.sql","apps/api-fastify/prisma/migrations/20260826213000_native_projects/migration.sql","apps/api-fastify/prisma/migrations/20260827015000_ticket_ai_pgvector/migration.sql","apps/api-fastify/prisma/migrations/20260827033000_complete_ticket_project_domains/migration.sql","apps/api-fastify/prisma/migrations/20260827041000_inbound_dead_letters/migration.sql","apps/api-fastify/prisma/migrations/20260827043000_inbound_status_lifecycle/migration.sql","apps/api-fastify/prisma/migrations/20260827050000_service_catalog/migration.sql","apps/api-fastify/prisma/migrations/20260827053000_projection_checkpoint/migration.sql","apps/api-fastify/prisma/migrations/20260827060000_force_rls_all_tenant_tables/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_execution_control/migration.sql","apps/api-fastify/src/modules/ai/ai.service.ts","apps/api-fastify/src/modules/attachments/attachments.service.ts","apps/api-fastify/src/modules/automation/automation.service.ts","apps/api-fastify/src/modules/execution-control/execution-control.service.ts","apps/api-fastify/src/modules/permission.ts","apps/api-fastify/src/modules/projects/projects.service.ts","apps/api-fastify/src/modules/tenant-prisma.ts","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/src/modules/write-request-context.ts","apps/api-fastify/src/plugins/attachments.ts","apps/api-fastify/src/plugins/automation-worker.ts","apps/api-fastify/src/plugins/identity.ts","apps/api-fastify/src/plugins/ticket-maintenance-worker.ts","apps/api-fastify/src/routes/ai.ts","apps/api-fastify/src/routes/attachments.ts","apps/api-fastify/src/routes/automation.ts","apps/api-fastify/src/routes/execution-control.ts","apps/api-fastify/src/routes/projects.ts","apps/api-fastify/src/routes/ticket-operations.ts","apps/api-fastify/test/auth.oidc.test.ts","apps/api-fastify/test/rls.integration.test.ts","apps/api-nestjs/prisma/migrations/20260826165000_tenant_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260826171000_audit_idempotency/migration.sql","apps/api-nestjs/prisma/migrations/20260826172500_sla_versions/migration.sql","apps/api-nestjs/prisma/migrations/20260826174500_inbound_records/migration.sql","apps/api-nestjs/prisma/migrations/20260826182000_sla_runtime_facts/migration.sql","apps/api-nestjs/prisma/migrations/20260826190000_attachment_quarantine/migration.sql","apps/api-nestjs/prisma/migrations/20260826193000_automation_rules/migration.sql","apps/api-nestjs/prisma/migrations/20260826201500_automation_retries/migration.sql","apps/api-nestjs/prisma/migrations/20260826204000_attachment_retention/migration.sql","apps/api-nestjs/prisma/migrations/20260826213000_native_projects/migration.sql","apps/api-nestjs/prisma/migrations/20260827015000_ticket_ai_pgvector/migration.sql","apps/api-nestjs/prisma/migrations/20260827033000_complete_ticket_project_domains/migration.sql","apps/api-nestjs/prisma/migrations/20260827041000_inbound_dead_letters/migration.sql","apps/api-nestjs/prisma/migrations/20260827043000_inbound_status_lifecycle/migration.sql","apps/api-nestjs/prisma/migrations/20260827050000_service_catalog/migration.sql","apps/api-nestjs/prisma/migrations/20260827053000_projection_checkpoint/migration.sql","apps/api-nestjs/prisma/migrations/20260827060000_force_rls_all_tenant_tables/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_execution_control/migration.sql","apps/api-nestjs/src/ai/ai.controller.ts","apps/api-nestjs/src/ai/ai.module.ts","apps/api-nestjs/src/ai/ai.service.ts","apps/api-nestjs/src/attachments/attachment-retention-worker.service.ts","apps/api-nestjs/src/attachments/attachments.controller.ts","apps/api-nestjs/src/attachments/attachments.module.ts","apps/api-nestjs/src/attachments/attachments.service.ts","apps/api-nestjs/src/attachments/attachments.tokens.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/identity.middleware.ts","apps/api-nestjs/src/auth/identity.service.ts","apps/api-nestjs/src/auth/permission.guard.ts","apps/api-nestjs/src/auth/require-permission.decorator.ts","apps/api-nestjs/src/automation/automation-event-consumer.service.ts","apps/api-nestjs/src/automation/automation-retry-worker.service.ts","apps/api-nestjs/src/automation/automation.controller.ts","apps/api-nestjs/src/automation/automation.module.ts","apps/api-nestjs/src/automation/automation.service.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/common/write-request-context.ts","apps/api-nestjs/src/execution-control/execution-control.controller.ts","apps/api-nestjs/src/execution-control/execution-control.module.ts","apps/api-nestjs/src/execution-control/execution-control.service.ts","apps/api-nestjs/src/projects/projects.controller.ts","apps/api-nestjs/src/projects/projects.module.ts","apps/api-nestjs/src/projects/projects.service.ts","apps/api-nestjs/src/ticket-operations/ticket-maintenance-worker.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.controller.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.module.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/auth.oidc.test.ts","apps/api-nestjs/test/rls.integration.test.ts","apps/web/e2e/fixtures/keycloak/juhai-execution-acceptance-realm.json","apps/web/e2e/oidc.acceptance.spec.ts","apps/web/public/icon-maskable.svg","apps/web/public/icon.svg","apps/web/public/sw.js","apps/web/src/app/api/[...path]/route.ts","apps/web/src/app/auth/callback/route.ts","apps/web/src/app/auth/login/route.ts","apps/web/src/app/auth/logout/route.ts","apps/web/src/app/auth/session/route.ts","apps/web/src/app/manifest.ts","apps/web/src/app/sse/events/route.ts","apps/web/src/components/OperationsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/PwaRegistration.tsx","apps/web/src/components/UnifiedCalendarPanel.tsx","apps/web/src/features/execution-control/api/execution-control-api.ts","apps/web/src/features/execution-control/components/ExecutionControlDashboard.tsx","apps/web/src/features/execution-control/hooks/use-execution-control.ts","apps/web/src/lib/auth-session.ts","apps/web/src/lib/auth-types.ts","apps/web/src/lib/i18n.ts","deploy/k8s/README.md","deploy/k8s/base/kustomization.yaml","deploy/k8s/base/otel-collector-config.yaml","deploy/k8s/base/platform.yaml","deploy/otel-collector/acceptance.yaml","docs/domain/execution-control-blueprint.md","docs/domain/project-delivery-blueprint.md","packages/ai-provider/package.json","packages/ai-provider/src/index.test.ts","packages/ai-provider/src/index.ts","packages/ai-provider/src/testing.ts","packages/ai-provider/tsconfig.json","packages/attachments/package.json","packages/attachments/src/index.ts","packages/attachments/src/infrastructure.integration.test.ts","packages/attachments/tsconfig.json","packages/contracts/src/ai.ts","packages/contracts/src/auth.ts","packages/contracts/src/automation.test.ts","packages/contracts/src/automation.ts","packages/contracts/src/business-calendar.test.ts","packages/contracts/src/business-calendar.ts","packages/contracts/src/execution-control.test.ts","packages/contracts/src/execution-control.ts","packages/contracts/src/idempotency.test.ts","packages/contracts/src/idempotency.ts","packages/contracts/src/project.test.ts","packages/contracts/src/project.ts","packages/identity/package.json","packages/identity/src/identity.test.ts","packages/identity/src/index.ts","packages/identity/tsconfig.json","packages/write-governance/package.json","packages/write-governance/src/index.test.ts","packages/write-governance/src/index.ts","packages/write-governance/tsconfig.json","reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/dual-backend-behavior.latest.json","reports/identity-boundary.latest.json","reports/outbox-operations.latest.json","reports/write-governance.latest.json","scripts/backup-postgres.sh","scripts/check-agent-workflow-parity.mjs","scripts/check-capacity.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-identity-boundary.mjs","scripts/check-outbox-operations.mjs","scripts/check-write-governance.mjs","scripts/replay-outbox-dead-letter.mjs","scripts/restore-postgres-drill.sh","scripts/test-otel-acceptance.mjs","scripts/test-outbox-operations.mjs","scripts/test-redis-auth-db.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/tickets/tickets.service.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/tickets.ts","apps/api-fastify/src/routes/users.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-fastify/test/tickets.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/tickets/tickets.controller.ts","apps/api-nestjs/src/tickets/tickets.module.ts","apps/api-nestjs/src/tickets/tickets.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/tickets.integration.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/TicketsPanel.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/ticket.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-transactional-write-chain.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","message":"feat: unify projects and tickets under execution control\n\nEstablish Projects and Tickets as separate owned fact domains coordinated by Execution Control across NestJS, Fastify, and the Next.js BFF.\n\nAdd governed identity, SLA, automation, AI, attachment, operations, deployment, and provenance-bound static/runtime/browser acceptance.\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-28T03:46:07-07:00","added":[".agents/skills",".dockerignore",".github/workflows/release-images.yml","Dockerfile","apps/api-fastify/prisma/migrations/20260826165000_tenant_rls/migration.sql","apps/api-fastify/prisma/migrations/20260826171000_audit_idempotency/migration.sql","apps/api-fastify/prisma/migrations/20260826172500_sla_versions/migration.sql","apps/api-fastify/prisma/migrations/20260826174500_inbound_records/migration.sql","apps/api-fastify/prisma/migrations/20260826182000_sla_runtime_facts/migration.sql","apps/api-fastify/prisma/migrations/20260826190000_attachment_quarantine/migration.sql","apps/api-fastify/prisma/migrations/20260826193000_automation_rules/migration.sql","apps/api-fastify/prisma/migrations/20260826201500_automation_retries/migration.sql","apps/api-fastify/prisma/migrations/20260826204000_attachment_retention/migration.sql","apps/api-fastify/prisma/migrations/20260826213000_native_projects/migration.sql","apps/api-fastify/prisma/migrations/20260827015000_ticket_ai_pgvector/migration.sql","apps/api-fastify/prisma/migrations/20260827033000_complete_ticket_project_domains/migration.sql","apps/api-fastify/prisma/migrations/20260827041000_inbound_dead_letters/migration.sql","apps/api-fastify/prisma/migrations/20260827043000_inbound_status_lifecycle/migration.sql","apps/api-fastify/prisma/migrations/20260827050000_service_catalog/migration.sql","apps/api-fastify/prisma/migrations/20260827053000_projection_checkpoint/migration.sql","apps/api-fastify/prisma/migrations/20260827060000_force_rls_all_tenant_tables/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_execution_control/migration.sql","apps/api-fastify/src/modules/ai/ai.service.ts","apps/api-fastify/src/modules/attachments/attachments.service.ts","apps/api-fastify/src/modules/automation/automation.service.ts","apps/api-fastify/src/modules/execution-control/execution-control.service.ts","apps/api-fastify/src/modules/permission.ts","apps/api-fastify/src/modules/projects/projects.service.ts","apps/api-fastify/src/modules/tenant-prisma.ts","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/src/modules/write-request-context.ts","apps/api-fastify/src/plugins/attachments.ts","apps/api-fastify/src/plugins/automation-worker.ts","apps/api-fastify/src/plugins/identity.ts","apps/api-fastify/src/plugins/ticket-maintenance-worker.ts","apps/api-fastify/src/routes/ai.ts","apps/api-fastify/src/routes/attachments.ts","apps/api-fastify/src/routes/automation.ts","apps/api-fastify/src/routes/execution-control.ts","apps/api-fastify/src/routes/projects.ts","apps/api-fastify/src/routes/ticket-operations.ts","apps/api-fastify/test/auth.oidc.test.ts","apps/api-fastify/test/rls.integration.test.ts","apps/api-nestjs/prisma/migrations/20260826165000_tenant_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260826171000_audit_idempotency/migration.sql","apps/api-nestjs/prisma/migrations/20260826172500_sla_versions/migration.sql","apps/api-nestjs/prisma/migrations/20260826174500_inbound_records/migration.sql","apps/api-nestjs/prisma/migrations/20260826182000_sla_runtime_facts/migration.sql","apps/api-nestjs/prisma/migrations/20260826190000_attachment_quarantine/migration.sql","apps/api-nestjs/prisma/migrations/20260826193000_automation_rules/migration.sql","apps/api-nestjs/prisma/migrations/20260826201500_automation_retries/migration.sql","apps/api-nestjs/prisma/migrations/20260826204000_attachment_retention/migration.sql","apps/api-nestjs/prisma/migrations/20260826213000_native_projects/migration.sql","apps/api-nestjs/prisma/migrations/20260827015000_ticket_ai_pgvector/migration.sql","apps/api-nestjs/prisma/migrations/20260827033000_complete_ticket_project_domains/migration.sql","apps/api-nestjs/prisma/migrations/20260827041000_inbound_dead_letters/migration.sql","apps/api-nestjs/prisma/migrations/20260827043000_inbound_status_lifecycle/migration.sql","apps/api-nestjs/prisma/migrations/20260827050000_service_catalog/migration.sql","apps/api-nestjs/prisma/migrations/20260827053000_projection_checkpoint/migration.sql","apps/api-nestjs/prisma/migrations/20260827060000_force_rls_all_tenant_tables/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_execution_control/migration.sql","apps/api-nestjs/src/ai/ai.controller.ts","apps/api-nestjs/src/ai/ai.module.ts","apps/api-nestjs/src/ai/ai.service.ts","apps/api-nestjs/src/attachments/attachment-retention-worker.service.ts","apps/api-nestjs/src/attachments/attachments.controller.ts","apps/api-nestjs/src/attachments/attachments.module.ts","apps/api-nestjs/src/attachments/attachments.service.ts","apps/api-nestjs/src/attachments/attachments.tokens.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/identity.middleware.ts","apps/api-nestjs/src/auth/identity.service.ts","apps/api-nestjs/src/auth/permission.guard.ts","apps/api-nestjs/src/auth/require-permission.decorator.ts","apps/api-nestjs/src/automation/automation-event-consumer.service.ts","apps/api-nestjs/src/automation/automation-retry-worker.service.ts","apps/api-nestjs/src/automation/automation.controller.ts","apps/api-nestjs/src/automation/automation.module.ts","apps/api-nestjs/src/automation/automation.service.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/common/write-request-context.ts","apps/api-nestjs/src/execution-control/execution-control.controller.ts","apps/api-nestjs/src/execution-control/execution-control.module.ts","apps/api-nestjs/src/execution-control/execution-control.service.ts","apps/api-nestjs/src/projects/projects.controller.ts","apps/api-nestjs/src/projects/projects.module.ts","apps/api-nestjs/src/projects/projects.service.ts","apps/api-nestjs/src/ticket-operations/ticket-maintenance-worker.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.controller.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.module.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/auth.oidc.test.ts","apps/api-nestjs/test/rls.integration.test.ts","apps/web/e2e/fixtures/keycloak/juhai-execution-acceptance-realm.json","apps/web/e2e/oidc.acceptance.spec.ts","apps/web/public/icon-maskable.svg","apps/web/public/icon.svg","apps/web/public/sw.js","apps/web/src/app/api/[...path]/route.ts","apps/web/src/app/auth/callback/route.ts","apps/web/src/app/auth/login/route.ts","apps/web/src/app/auth/logout/route.ts","apps/web/src/app/auth/session/route.ts","apps/web/src/app/manifest.ts","apps/web/src/app/sse/events/route.ts","apps/web/src/components/OperationsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/PwaRegistration.tsx","apps/web/src/components/UnifiedCalendarPanel.tsx","apps/web/src/features/execution-control/api/execution-control-api.ts","apps/web/src/features/execution-control/components/ExecutionControlDashboard.tsx","apps/web/src/features/execution-control/hooks/use-execution-control.ts","apps/web/src/lib/auth-session.ts","apps/web/src/lib/auth-types.ts","apps/web/src/lib/i18n.ts","deploy/k8s/README.md","deploy/k8s/base/kustomization.yaml","deploy/k8s/base/otel-collector-config.yaml","deploy/k8s/base/platform.yaml","deploy/otel-collector/acceptance.yaml","docs/domain/execution-control-blueprint.md","docs/domain/project-delivery-blueprint.md","packages/ai-provider/package.json","packages/ai-provider/src/index.test.ts","packages/ai-provider/src/index.ts","packages/ai-provider/src/testing.ts","packages/ai-provider/tsconfig.json","packages/attachments/package.json","packages/attachments/src/index.ts","packages/attachments/src/infrastructure.integration.test.ts","packages/attachments/tsconfig.json","packages/contracts/src/ai.ts","packages/contracts/src/auth.ts","packages/contracts/src/automation.test.ts","packages/contracts/src/automation.ts","packages/contracts/src/business-calendar.test.ts","packages/contracts/src/business-calendar.ts","packages/contracts/src/execution-control.test.ts","packages/contracts/src/execution-control.ts","packages/contracts/src/idempotency.test.ts","packages/contracts/src/idempotency.ts","packages/contracts/src/project.test.ts","packages/contracts/src/project.ts","packages/identity/package.json","packages/identity/src/identity.test.ts","packages/identity/src/index.ts","packages/identity/tsconfig.json","packages/write-governance/package.json","packages/write-governance/src/index.test.ts","packages/write-governance/src/index.ts","packages/write-governance/tsconfig.json","reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/dual-backend-behavior.latest.json","reports/identity-boundary.latest.json","reports/outbox-operations.latest.json","reports/write-governance.latest.json","scripts/backup-postgres.sh","scripts/check-agent-workflow-parity.mjs","scripts/check-capacity.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-identity-boundary.mjs","scripts/check-outbox-operations.mjs","scripts/check-write-governance.mjs","scripts/replay-outbox-dead-letter.mjs","scripts/restore-postgres-drill.sh","scripts/test-otel-acceptance.mjs","scripts/test-outbox-operations.mjs","scripts/test-redis-auth-db.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/tickets/tickets.service.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/tickets.ts","apps/api-fastify/src/routes/users.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-fastify/test/tickets.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/tickets/tickets.controller.ts","apps/api-nestjs/src/tickets/tickets.module.ts","apps/api-nestjs/src/tickets/tickets.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/tickets.integration.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/TicketsPanel.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/ticket.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-transactional-write-chain.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":712,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-08-26T09:12: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"}}
TEXT
trigger_event
push
TEXT
status
INTEGER
version
INTEGER (default 0
started
INTEGER
stopped
INTEGER
previous_duration
INTEGER
created
INTEGER
updated
INTEGER
raw_concurrency
group: governance-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: "true"
TEXT
concurrency_group
governance-governance.yml-refs/heads/main
TEXT NOT NULL (default ''
concurrency_cancel
INTEGER NOT NULL (default FALSE
Update
Cancel