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 76 in action_run
id
Primary key.
INTEGER NOT NULL
title
Fix frontend revenue recognition any
TEXT
repo_id
INTEGER
owner_id
INTEGER
workflow_id
ci.yml
TEXT
index
INTEGER
trigger_user_id
INTEGER
schedule_id
INTEGER
ref
refs/heads/main
TEXT
commit_sha
4d8152400e0edaa95ca297b53f8ad4da2f49bf7f
TEXT
is_fork_pull_request
INTEGER
need_approval
INTEGER
approved_by
INTEGER
event
push
TEXT
event_payload
{"ref":"refs/heads/main","before":"5dda81cc1d924bf1978062ca3fb162236ae8c57f","after":"4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/5dda81cc1d924bf1978062ca3fb162236ae8c57f...4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","commits":[{"id":"4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","message":"Fix frontend revenue recognition any\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-17T14:24:28+08:00","added":["REFACTOR_TASKS.md","backend/build.js","backend/scripts/audit-permissions.ts","backend/scripts/benchmark-stats.ts","backend/scripts/fix-build-errors.ts","backend/scripts/fix-permissions.ts","backend/scripts/reset-tenant-data.ts","backend/src/modules/assets/index.ts","backend/src/modules/cost-allocation/cost-allocation.service.test.ts","backend/src/modules/knowledge/knowledge.mapper.ts","backend/src/modules/marketing-matrix/matrix.mapper.ts","backend/src/modules/orders/order.mapper.ts","backend/src/modules/revenue/revenue.mapper.ts","backend/src/modules/supplier-payments/supplier-payments.service.test.ts","backend/src/modules/targets/target.mapper.ts","docs/BASESERVICE_REFACTOR_ANALYSIS.md","docs/ORDERS_REFACTOR_COMPLETE.md","docs/P0_HOTFIX_COMPLETE.md","docs/P0_HOTFIX_PLAN.md","docs/REFACTOR_COMPLETE_REPORT.md","docs/REFACTOR_EXECUTION_PLAN.md","docs/REFACTOR_STATUS_CORRECTION.md","docs/REVENUE_REFACTOR_PLAN.md","docs/reports/PROJECT_STATUS_2026-02-16.md","e2e/test-results/.last-run.json","e2e/test-results/results.json","reports/refactor-acceptance.backend-typecheck.summary.json","reports/refactor-acceptance.rescan.backend-errors.pass2.tsv","reports/refactor-acceptance.rescan.backend-errors.tsv","reports/refactor-acceptance.rescan.static.latest.json","reports/refactor-acceptance.rescan.summary.latest.json","reports/refactor-acceptance.static.latest.json"],"removed":["backend/src/modules/renewals/renewal.service.new.ts","backend/src/modules/shipments/shipments.service.ts","e2e/playwright-report/data/00432be148278a654597c3830a7e219a7e74c948.json","e2e/playwright-report/data/09e7eab8182c1766bab432b7d35679a56e590d6d.json","e2e/playwright-report/data/13b4efad4c879a56fa794893945161cacbec39b8.json","e2e/playwright-report/data/4c274e01c876c5b132ba0a7514ac6274d8bed8a7.json","e2e/playwright-report/data/531ca7bebbe75f6259f24b9b58a1349f692d584e.json","e2e/playwright-report/data/53d1de4e90c5847d891c321397f970a61795d21f.json","e2e/playwright-report/data/5be2a28255d48bdaedb3a67814a39faa9563e19c.json","e2e/playwright-report/data/72a97ccd7dcef53ef3c14502005370e347ffea71.json","e2e/playwright-report/data/7ecd6c6d4859e683d376ae0b1b487f139df79870.json","e2e/playwright-report/data/a56a40d92b92fb255414c08a3540971a77e76d19.json","e2e/playwright-report/data/a9a2339b0db5be963e681086219c18ca111c3c56.json","e2e/playwright-report/data/ac1afff941a40582896f847e63fed2cff6f298f9.json","e2e/playwright-report/data/ba7af977e55409348cae4d335d83b0a2f96f5241.json","e2e/playwright-report/data/bb3c20ff64f9f19e603d1f8c9d13922391282ef0.json","e2e/playwright-report/data/ca554707b28752dcd942b674c8e796179b48c4ad.json","e2e/playwright-report/data/d7a8d4a2a30a5c2858d099554966d586cd96069d.json","e2e/playwright-report/data/e03cf8298428dd6a25a9256aca551fa0f4b05d9d.json","e2e/playwright-report/data/f3d0321eb421843b4f90b757526068a89b201e54.json","e2e/playwright-report/data/fb514a72017343d2ac3376cca4d0e9db2d5bd947.json"],"modified":["GEMINI.md","backend/package.json","backend/prisma/seeds/01-base.ts","backend/src/modules/ad-audiences/ad-audience.compat.routes.ts","backend/src/modules/ad-audiences/ad-audience.controller.ts","backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/ad-campaigns/ad-campaigns.compat.routes.ts","backend/src/modules/ad-campaigns/ad-campaigns.controller.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/alliance-merchants/alliance-merchant.controller.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-products/alliance-product.compat.routes.ts","backend/src/modules/alliance-products/alliance-product.controller.ts","backend/src/modules/alliance-products/alliance-product.service.ts","backend/src/modules/ar-ledger/ar-ledger.controller.ts","backend/src/modules/ar-ledger/ar-ledger.service.ts","backend/src/modules/campaigns/campaign.routes.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/channel-analytics/channel-analytics.routes.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.routes.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/commissions/commission.controller.ts","backend/src/modules/commissions/commission.service.ts","backend/src/modules/community-groups/community-group.compat.routes.ts","backend/src/modules/community-groups/community-group.controller.ts","backend/src/modules/community-groups/community-group.service.ts","backend/src/modules/community-members/community-member.compat.routes.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/content-categories/content-category.controller.ts","backend/src/modules/content-categories/content-category.service.ts","backend/src/modules/content-creation/content-creation.controller.ts","backend/src/modules/content-creation/content-creation.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-library/content-library.controller.ts","backend/src/modules/content-library/content-library.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/content-templates/content-template.controller.ts","backend/src/modules/content-templates/content-template.service.ts","backend/src/modules/contracts/contract.compat.routes.ts","backend/src/modules/contracts/contract.controller.ts","backend/src/modules/contracts/contract.routes.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.compat.routes.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/crm-activities/crm-activity.controller.ts","backend/src/modules/crm-activities/crm-activity.routes.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/customers/customer-export.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/customers/customer.service.ts","backend/src/modules/departments/department.compat.routes.ts","backend/src/modules/departments/department.controller.ts","backend/src/modules/departments/department.routes.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/devices/device.controller.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/faults/fault.compat.routes.ts","backend/src/modules/faults/fault.controller.ts","backend/src/modules/faults/fault.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/finance/finance-automation.service.ts","backend/src/modules/finance/finance-cash-analysis.service.ts","backend/src/modules/finance/finance-reporting.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/revenue-compat.routes.ts","backend/src/modules/fulfillment/acceptance-automation.service.ts","backend/src/modules/fulfillment/fulfillment.controller.ts","backend/src/modules/fulfillment/fulfillment.routes.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/geo-pois/geo-poi.controller.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.controller.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.ts","backend/src/modules/groupbuy-orders/groupbuy-order.controller.ts","backend/src/modules/groupbuy-orders/groupbuy-order.service.ts","backend/src/modules/im/im.routes.ts","backend/src/modules/inventory/inventory.controller.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/inventory-count.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/invoices/invoice.controller.ts","backend/src/modules/invoices/invoice.routes.ts","backend/src/modules/invoices/invoice.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.controller.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/lead-scoring-ai/lead-action-recommendation.routes.ts","backend/src/modules/lead-scoring-ai/lead-score-trigger.routes.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-rooms/livestream-room.controller.ts","backend/src/modules/livestream-rooms/livestream-room.service.ts","backend/src/modules/livestream-schedules/livestream-schedule.compat.routes.ts","backend/src/modules/livestream-schedules/livestream-schedule.controller.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.ts","backend/src/modules/marketing-automation/workflow.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-matrix/matrix.service.ts","backend/src/modules/marketing/marketing-campaign.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/opportunities/index.ts","backend/src/modules/opportunities/opportunity-export.service.ts","backend/src/modules/opportunities/opportunity.controller.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.routes.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.routes.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.controller.ts","backend/src/modules/price-books/index.ts","backend/src/modules/price-books/price-book.controller.ts","backend/src/modules/price-books/price-book.routes.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/price-books/price-enhancement.controller.ts","backend/src/modules/products/controllers/category.controller.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/products/services/index.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/projects/project.controller.ts","backend/src/modules/projects/project.routes.ts","backend/src/modules/projects/project.service.ts","backend/src/modules/quotes/quote.controller.ts","backend/src/modules/quotes/quote.routes.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/reconciliation/matching-engine.service.ts","backend/src/modules/reconciliation/reconciliation.controller.ts","backend/src/modules/reconciliation/reconciliation.service.ts","backend/src/modules/renewals/index.ts","backend/src/modules/renewals/renewals.service.ts","backend/src/modules/revenue/ar-ledger.controller.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/index.ts","backend/src/modules/revenue/invoice.controller.ts","backend/src/modules/revenue/invoice.routes.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/payment.controller.ts","backend/src/modules/revenue/revenue-recognition.controller.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/revenue/revenue.service.ts","backend/src/modules/revenue/sales-commission-compat.controller.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rma/index.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.controller.ts","backend/src/modules/rma/rma.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/roles/role.controller.ts","backend/src/modules/roles/role.routes.ts","backend/src/modules/roles/role.service.ts","backend/src/modules/serial-numbers/sn.controller.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/shipments/shipment.controller.ts","backend/src/modules/shipments/shipment.routes.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/modules/social-accounts/social-account.controller.ts","backend/src/modules/social-accounts/social-account.service.ts","backend/src/modules/social-posts/social-post.controller.ts","backend/src/modules/social-posts/social-post.service.ts","backend/src/modules/supplier-payments/supplier-payments.compat.routes.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts","backend/src/modules/suppliers/supplier.service.ts","backend/src/modules/targets/target.controller.ts","backend/src/modules/targets/target.service.ts","backend/src/modules/tenant-configs/tenant-config.controller.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.controller.ts","backend/src/modules/ticket-workflows/ticket-workflow.routes.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/modules/tickets/index.ts","backend/src/modules/tickets/ticket-interactions.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.controller.ts","backend/src/modules/tickets/ticket.routes.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/modules/treasury/bank-account.service.ts","backend/src/modules/treasury/payment-request.service.ts","backend/src/modules/users/user.controller.ts","backend/src/modules/users/user.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/constants/events.ts","backend/src/shared/constants/permissions.ts","backend/src/shared/middleware/error.middleware.ts","backend/src/shared/services/base.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/state-machines/utils/transitions.ts","backend/src/shared/utils/biz-code.ts","backend/src/shared/utils/event-outbox-helper.ts","backend/tests/api/finance-gap-closure.test.ts","backend/tests/api/orders.test.ts","backend/tsconfig.json","docs/DEVELOPMENT_GUIDE.md","docs/api/openapi.json","docs/api/openapi.yaml","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/src/api/adapters.ts","frontend/src/api/modules/revenue-recognition.ts","frontend/src/types/models.ts","frontend/src/views/lead-qualification/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Detail.vue","frontend/src/views/leads/Index.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","package.json","pnpm-lock.yaml","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/missing-events-audit.latest.json","reports/missing-events-audit.latest.md","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","shared/src/types/models.ts"]},{"id":"34dd3176c9d53eec42229818726de7931dde4edb","message":"Fix localhost revenue rules 404\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/34dd3176c9d53eec42229818726de7931dde4edb","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-16T08:58:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/ad-campaigns/ad-campaigns.docs.ts","backend/src/modules/ad-campaigns/ad-campaigns.routes.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.ts"]},{"id":"7f0601bdd1c8b0145758236aa9cd2f1b605e5e9a","message":"Auto populate finance placeholder UI\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7f0601bdd1c8b0145758236aa9cd2f1b605e5e9a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-16T01:45:50+08:00","added":[],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","frontend/src/router/menu.ts","frontend/src/views/finance/Index.vue"]},{"id":"5c3b90c3df54a5727978fccc9fd3b68a496c2b90","message":"Add finance dashboard skeleton tabs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5c3b90c3df54a5727978fccc9fd3b68a496c2b90","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-16T01:32:03+08:00","added":["backend/src/modules/finance/finance-cash-analysis.service.ts","frontend/src/views/finance-os/__tests__/pr3-cash-pages.smoke.test.ts","frontend/src/views/finance-os/ai/AutoFundScheduling.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/cash/CashControlTower.vue"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/finance/finance-automation.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/tests/api/finance-gap-closure.test.ts","frontend/src/api/modules/finance.ts","frontend/src/router/index.ts"]},{"id":"5bf47df3e9217bf8193505e7d28b73240bcd3cf4","message":"Update finance placeholder pages\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf47df3e9217bf8193505e7d28b73240bcd3cf4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-16T01:15:20+08:00","added":["backend/src/modules/finance/finance-costing.service.ts","frontend/src/views/finance-os/expense/CostAnomaly.vue","frontend/src/views/finance-os/expense/CostCenter.vue","frontend/src/views/finance-os/expense/ExpenseApprovalFlow.vue","frontend/src/views/finance-os/expense/NodeCost.vue","frontend/src/views/finance-os/expense/ProjectCost.vue"],"removed":[],"modified":["backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/finance/finance-automation.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/supplier-payments/supplier-payments.compat.routes.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts","backend/src/shared/constants/modules.ts","backend/src/shared/constants/permissions.ts","backend/tests/api/finance-gap-closure.test.ts","frontend/src/api/modules/finance.ts","frontend/src/router/index.ts"]}],"total_commits":0,"head_commit":{"id":"4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","message":"Fix frontend revenue recognition any\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-17T14:24:28+08:00","added":["REFACTOR_TASKS.md","backend/build.js","backend/scripts/audit-permissions.ts","backend/scripts/benchmark-stats.ts","backend/scripts/fix-build-errors.ts","backend/scripts/fix-permissions.ts","backend/scripts/reset-tenant-data.ts","backend/src/modules/assets/index.ts","backend/src/modules/cost-allocation/cost-allocation.service.test.ts","backend/src/modules/knowledge/knowledge.mapper.ts","backend/src/modules/marketing-matrix/matrix.mapper.ts","backend/src/modules/orders/order.mapper.ts","backend/src/modules/revenue/revenue.mapper.ts","backend/src/modules/supplier-payments/supplier-payments.service.test.ts","backend/src/modules/targets/target.mapper.ts","docs/BASESERVICE_REFACTOR_ANALYSIS.md","docs/ORDERS_REFACTOR_COMPLETE.md","docs/P0_HOTFIX_COMPLETE.md","docs/P0_HOTFIX_PLAN.md","docs/REFACTOR_COMPLETE_REPORT.md","docs/REFACTOR_EXECUTION_PLAN.md","docs/REFACTOR_STATUS_CORRECTION.md","docs/REVENUE_REFACTOR_PLAN.md","docs/reports/PROJECT_STATUS_2026-02-16.md","e2e/test-results/.last-run.json","e2e/test-results/results.json","reports/refactor-acceptance.backend-typecheck.summary.json","reports/refactor-acceptance.rescan.backend-errors.pass2.tsv","reports/refactor-acceptance.rescan.backend-errors.tsv","reports/refactor-acceptance.rescan.static.latest.json","reports/refactor-acceptance.rescan.summary.latest.json","reports/refactor-acceptance.static.latest.json"],"removed":["backend/src/modules/renewals/renewal.service.new.ts","backend/src/modules/shipments/shipments.service.ts","e2e/playwright-report/data/00432be148278a654597c3830a7e219a7e74c948.json","e2e/playwright-report/data/09e7eab8182c1766bab432b7d35679a56e590d6d.json","e2e/playwright-report/data/13b4efad4c879a56fa794893945161cacbec39b8.json","e2e/playwright-report/data/4c274e01c876c5b132ba0a7514ac6274d8bed8a7.json","e2e/playwright-report/data/531ca7bebbe75f6259f24b9b58a1349f692d584e.json","e2e/playwright-report/data/53d1de4e90c5847d891c321397f970a61795d21f.json","e2e/playwright-report/data/5be2a28255d48bdaedb3a67814a39faa9563e19c.json","e2e/playwright-report/data/72a97ccd7dcef53ef3c14502005370e347ffea71.json","e2e/playwright-report/data/7ecd6c6d4859e683d376ae0b1b487f139df79870.json","e2e/playwright-report/data/a56a40d92b92fb255414c08a3540971a77e76d19.json","e2e/playwright-report/data/a9a2339b0db5be963e681086219c18ca111c3c56.json","e2e/playwright-report/data/ac1afff941a40582896f847e63fed2cff6f298f9.json","e2e/playwright-report/data/ba7af977e55409348cae4d335d83b0a2f96f5241.json","e2e/playwright-report/data/bb3c20ff64f9f19e603d1f8c9d13922391282ef0.json","e2e/playwright-report/data/ca554707b28752dcd942b674c8e796179b48c4ad.json","e2e/playwright-report/data/d7a8d4a2a30a5c2858d099554966d586cd96069d.json","e2e/playwright-report/data/e03cf8298428dd6a25a9256aca551fa0f4b05d9d.json","e2e/playwright-report/data/f3d0321eb421843b4f90b757526068a89b201e54.json","e2e/playwright-report/data/fb514a72017343d2ac3376cca4d0e9db2d5bd947.json"],"modified":["GEMINI.md","backend/package.json","backend/prisma/seeds/01-base.ts","backend/src/modules/ad-audiences/ad-audience.compat.routes.ts","backend/src/modules/ad-audiences/ad-audience.controller.ts","backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/ad-campaigns/ad-campaigns.compat.routes.ts","backend/src/modules/ad-campaigns/ad-campaigns.controller.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/alliance-merchants/alliance-merchant.controller.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-products/alliance-product.compat.routes.ts","backend/src/modules/alliance-products/alliance-product.controller.ts","backend/src/modules/alliance-products/alliance-product.service.ts","backend/src/modules/ar-ledger/ar-ledger.controller.ts","backend/src/modules/ar-ledger/ar-ledger.service.ts","backend/src/modules/campaigns/campaign.routes.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/channel-analytics/channel-analytics.routes.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.routes.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/commissions/commission.controller.ts","backend/src/modules/commissions/commission.service.ts","backend/src/modules/community-groups/community-group.compat.routes.ts","backend/src/modules/community-groups/community-group.controller.ts","backend/src/modules/community-groups/community-group.service.ts","backend/src/modules/community-members/community-member.compat.routes.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/content-categories/content-category.controller.ts","backend/src/modules/content-categories/content-category.service.ts","backend/src/modules/content-creation/content-creation.controller.ts","backend/src/modules/content-creation/content-creation.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-library/content-library.controller.ts","backend/src/modules/content-library/content-library.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/content-templates/content-template.controller.ts","backend/src/modules/content-templates/content-template.service.ts","backend/src/modules/contracts/contract.compat.routes.ts","backend/src/modules/contracts/contract.controller.ts","backend/src/modules/contracts/contract.routes.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.compat.routes.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/crm-activities/crm-activity.controller.ts","backend/src/modules/crm-activities/crm-activity.routes.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/customers/customer-export.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/customers/customer.service.ts","backend/src/modules/departments/department.compat.routes.ts","backend/src/modules/departments/department.controller.ts","backend/src/modules/departments/department.routes.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/devices/device.controller.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/faults/fault.compat.routes.ts","backend/src/modules/faults/fault.controller.ts","backend/src/modules/faults/fault.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/finance/finance-automation.service.ts","backend/src/modules/finance/finance-cash-analysis.service.ts","backend/src/modules/finance/finance-reporting.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/revenue-compat.routes.ts","backend/src/modules/fulfillment/acceptance-automation.service.ts","backend/src/modules/fulfillment/fulfillment.controller.ts","backend/src/modules/fulfillment/fulfillment.routes.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/geo-pois/geo-poi.controller.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.controller.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.ts","backend/src/modules/groupbuy-orders/groupbuy-order.controller.ts","backend/src/modules/groupbuy-orders/groupbuy-order.service.ts","backend/src/modules/im/im.routes.ts","backend/src/modules/inventory/inventory.controller.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/inventory-count.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/invoices/invoice.controller.ts","backend/src/modules/invoices/invoice.routes.ts","backend/src/modules/invoices/invoice.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.controller.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/lead-scoring-ai/lead-action-recommendation.routes.ts","backend/src/modules/lead-scoring-ai/lead-score-trigger.routes.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-rooms/livestream-room.controller.ts","backend/src/modules/livestream-rooms/livestream-room.service.ts","backend/src/modules/livestream-schedules/livestream-schedule.compat.routes.ts","backend/src/modules/livestream-schedules/livestream-schedule.controller.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.ts","backend/src/modules/marketing-automation/workflow.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-matrix/matrix.service.ts","backend/src/modules/marketing/marketing-campaign.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/opportunities/index.ts","backend/src/modules/opportunities/opportunity-export.service.ts","backend/src/modules/opportunities/opportunity.controller.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.routes.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.routes.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.controller.ts","backend/src/modules/price-books/index.ts","backend/src/modules/price-books/price-book.controller.ts","backend/src/modules/price-books/price-book.routes.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/price-books/price-enhancement.controller.ts","backend/src/modules/products/controllers/category.controller.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/products/services/index.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/projects/project.controller.ts","backend/src/modules/projects/project.routes.ts","backend/src/modules/projects/project.service.ts","backend/src/modules/quotes/quote.controller.ts","backend/src/modules/quotes/quote.routes.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/reconciliation/matching-engine.service.ts","backend/src/modules/reconciliation/reconciliation.controller.ts","backend/src/modules/reconciliation/reconciliation.service.ts","backend/src/modules/renewals/index.ts","backend/src/modules/renewals/renewals.service.ts","backend/src/modules/revenue/ar-ledger.controller.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/index.ts","backend/src/modules/revenue/invoice.controller.ts","backend/src/modules/revenue/invoice.routes.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/payment.controller.ts","backend/src/modules/revenue/revenue-recognition.controller.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/revenue/revenue.service.ts","backend/src/modules/revenue/sales-commission-compat.controller.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rma/index.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.controller.ts","backend/src/modules/rma/rma.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/roles/role.controller.ts","backend/src/modules/roles/role.routes.ts","backend/src/modules/roles/role.service.ts","backend/src/modules/serial-numbers/sn.controller.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/shipments/shipment.controller.ts","backend/src/modules/shipments/shipment.routes.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/modules/social-accounts/social-account.controller.ts","backend/src/modules/social-accounts/social-account.service.ts","backend/src/modules/social-posts/social-post.controller.ts","backend/src/modules/social-posts/social-post.service.ts","backend/src/modules/supplier-payments/supplier-payments.compat.routes.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts","backend/src/modules/suppliers/supplier.service.ts","backend/src/modules/targets/target.controller.ts","backend/src/modules/targets/target.service.ts","backend/src/modules/tenant-configs/tenant-config.controller.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.controller.ts","backend/src/modules/ticket-workflows/ticket-workflow.routes.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/modules/tickets/index.ts","backend/src/modules/tickets/ticket-interactions.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.controller.ts","backend/src/modules/tickets/ticket.routes.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/modules/treasury/bank-account.service.ts","backend/src/modules/treasury/payment-request.service.ts","backend/src/modules/users/user.controller.ts","backend/src/modules/users/user.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/constants/events.ts","backend/src/shared/constants/permissions.ts","backend/src/shared/middleware/error.middleware.ts","backend/src/shared/services/base.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/state-machines/utils/transitions.ts","backend/src/shared/utils/biz-code.ts","backend/src/shared/utils/event-outbox-helper.ts","backend/tests/api/finance-gap-closure.test.ts","backend/tests/api/orders.test.ts","backend/tsconfig.json","docs/DEVELOPMENT_GUIDE.md","docs/api/openapi.json","docs/api/openapi.yaml","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/src/api/adapters.ts","frontend/src/api/modules/revenue-recognition.ts","frontend/src/types/models.ts","frontend/src/views/lead-qualification/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Detail.vue","frontend/src/views/leads/Index.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","package.json","pnpm-lock.yaml","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/missing-events-audit.latest.json","reports/missing-events-audit.latest.md","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","shared/src/types/models.ts"]},"repository":{"id":6,"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":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":464735,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","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-23T23:57:52+08:00","updated_at":"2026-02-24T00:16:50+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"}}
TEXT
trigger_event
push
TEXT
status
INTEGER
version
INTEGER (default 0
started
INTEGER
stopped
INTEGER
previous_duration
INTEGER
created
INTEGER
updated
INTEGER
raw_concurrency
NULL
TEXT
concurrency_group
TEXT NOT NULL (default ''
concurrency_cancel
INTEGER NOT NULL (default FALSE
Update
Cancel