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 7649 in action_run
id
Primary key.
INTEGER NOT NULL
title
feat: 四线并行治理 — Record清零+v-permission扩展+Redis缓存+as any清理
TEXT
repo_id
INTEGER
owner_id
INTEGER
workflow_id
e2e-tests.yml
TEXT
index
INTEGER
trigger_user_id
INTEGER
schedule_id
INTEGER
ref
refs/heads/main
TEXT
commit_sha
dbf34b08bbb60650d15b0c55262dbfe8d0a3a655
TEXT
is_fork_pull_request
INTEGER
need_approval
INTEGER
approved_by
INTEGER
event
push
TEXT
event_payload
{"ref":"refs/heads/main","before":"8c39619c9cdb0d888d10942bf50533c8238021df","after":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/8c39619c9cdb0d888d10942bf50533c8238021df...dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","commits":[{"id":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","message":"feat: 四线并行治理 — Record清零+v-permission扩展+Redis缓存+as any清理\n\n## Line 1: Record\u003cstring,any\u003e 全前端清零 (637→0)\n- 262 个文件批量替换 Record\u003cstring, any\u003e → Record\u003cstring, unknown\u003e\n- 覆盖 API 模块层 137 文件 + 视图/stores/composables 100 文件\n\n## Line 2: v-permission 全面覆盖 (53→104 个视图文件)\n- 新增 51 个视图的 v-permission 指令\n- 覆盖: products/departments/contract-templates/spare-parts/pm/\n stage-knowledge/email-templates/approval-templates/ad-campaigns/\n groupbuy-*/community-*/alliance-*/livestream-*/social-*/content-*/\n geo-*/segments/lead-pools/bom/expense-claims/ap-ledger 等\n\n## Line 3: Redis 缓存扩展 (5→14 个缓存点, 10 个模块)\n- 新建 cache-utils.ts 统一缓存工具层 (withCache + invalidation)\n- 高优: tenant-configs(300s) + roles(1800s) + products(600s) +\n departments(600s) + sla(1800s) + contract-templates(600s)\n- 中优: price-books(600s) + notifications(300s)\n- 写后失效: 所有 create/update/delete 自动清除缓存\n\n## Line 4: as any 清理 (25处)\n- campaign-analytics.controller: 8→0 (精确查询类型)\n- social-interactions.service: 9→0 (Prisma UncheckedCreateInput)\n- store-staff.service: 6→0 (prismaModel 代理)\n- scheduled-jobs.consumer: 2→0 (直接使用已有类型)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T10:14:13+08:00","added":["backend/src/shared/constants/events/common.ts","backend/src/shared/constants/events/finance.ts","backend/src/shared/constants/events/hr.ts","backend/src/shared/constants/events/im.ts","backend/src/shared/constants/events/index.ts","backend/src/shared/constants/events/knowledge.ts","backend/src/shared/constants/events/lifecycle.ts","backend/src/shared/constants/events/marketing.ts","backend/src/shared/constants/events/sales.ts","backend/src/shared/constants/events/service.ts","backend/src/shared/constants/events/store.ts","backend/src/shared/constants/events/supply_chain.ts","backend/src/shared/constants/events/system.ts","backend/src/shared/services/list-cache.service.ts","backend/src/shared/utils/cache-utils.ts"],"removed":[],"modified":["backend/src/consumers/attribution.consumer.ts","backend/src/consumers/campaign-effectiveness.consumer.ts","backend/src/consumers/marketing-workflow-executor.consumer.ts","backend/src/consumers/scheduled-jobs.consumer.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/contract-templates/contract-template.service.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/customers/customer.service.ts","backend/src/modules/departments/department.service.test.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/marketing-automation/workflow-trigger.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.routes.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/notifications/notification.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/roles/role.service.ts","backend/src/modules/segments/segment.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/modules/social-interactions/social-interactions.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/constants/events.ts","backend/src/shared/services/partition-maintenance.service.ts","backend/src/shared/state-machines/machines/contract.machine.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/state-machines/types.ts","backend/src/shared/state-machines/utils/transitions/sales.transitions.ts","backend/src/shared/utils/biz-code.ts","frontend/src/api/adapters.ts","frontend/src/api/im-binding.ts","frontend/src/api/modules/ad-accounts.ts","frontend/src/api/modules/ad-audiences.ts","frontend/src/api/modules/ad-creatives.ts","frontend/src/api/modules/ad-placement.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/agent-group.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/alliance-analytics.ts","frontend/src/api/modules/alliance-merchants.ts","frontend/src/api/modules/alliance-products.ts","frontend/src/api/modules/alliance-promotions.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/analytics.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/assets.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/campaign-drafts.ts","frontend/src/api/modules/campaign-library.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/campaign-tools.ts","frontend/src/api/modules/campaign-use-case-templates.ts","frontend/src/api/modules/campaign-wizard.ts","frontend/src/api/modules/campaigns.ts","frontend/src/api/modules/cohort-analysis.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-activities.ts","frontend/src/api/modules/community-analytics.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-groups.ts","frontend/src/api/modules/community-levels.ts","frontend/src/api/modules/community-members.ts","frontend/src/api/modules/community-messages.ts","frontend/src/api/modules/community-points.ts","frontend/src/api/modules/consumer-behavior-analytics.ts","frontend/src/api/modules/content-categories.ts","frontend/src/api/modules/content-copyright.ts","frontend/src/api/modules/content-creation.ts","frontend/src/api/modules/content-distribution.ts","frontend/src/api/modules/content-library.ts","frontend/src/api/modules/content-templates.ts","frontend/src/api/modules/contract-templates.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customer-analytics.ts","frontend/src/api/modules/customer-health.ts","frontend/src/api/modules/customer-journey.ts","frontend/src/api/modules/customer-ltv.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customer-segmentation.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/dictionaries.ts","frontend/src/api/modules/dimension-transform.ts","frontend/src/api/modules/email-marketing.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/event-logs.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/expense.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/fulfillment.ts","frontend/src/api/modules/geo-fences.ts","frontend/src/api/modules/geo-pois.ts","frontend/src/api/modules/groupbuy-analytics.ts","frontend/src/api/modules/groupbuy-campaigns.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-products.ts","frontend/src/api/modules/groupbuy-settlements.ts","frontend/src/api/modules/hr-benefits.ts","frontend/src/api/modules/hr-payroll.ts","frontend/src/api/modules/im-channels.ts","frontend/src/api/modules/im.ts","frontend/src/api/modules/integration-services.ts","frontend/src/api/modules/intent-analyzer.ts","frontend/src/api/modules/journey-orchestration.ts","frontend/src/api/modules/knowledge-candidates.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/livestream-groupbuy.ts","frontend/src/api/modules/livestream-interactions.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/login-logs.ts","frontend/src/api/modules/maintenance.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-calendar.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/marketing-content.ts","frontend/src/api/modules/marketing-forms.ts","frontend/src/api/modules/marketing-matrix.ts","frontend/src/api/modules/marketing-north-star.ts","frontend/src/api/modules/marketing-timeslots.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/omnichannel-dashboard.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/api/modules/omnichannel-touchpoints.ts","frontend/src/api/modules/operation-logs.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/predictive-analytics.ts","frontend/src/api/modules/process-designer.ts","frontend/src/api/modules/process.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/realtime-trigger.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/resource-requests.ts","frontend/src/api/modules/revenue.ts","frontend/src/api/modules/rfm-analysis.ts","frontend/src/api/modules/rma.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/search.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-accounts.ts","frontend/src/api/modules/social-auto-replies.ts","frontend/src/api/modules/social-competitors.ts","frontend/src/api/modules/social-hot-topics.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/spare-parts.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supplier-management.ts","frontend/src/api/modules/swot-analyses.ts","frontend/src/api/modules/system-events.ts","frontend/src/api/modules/ticket-workflows.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/tob-toc-gateway.ts","frontend/src/api/modules/unified-campaign.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/api/modules/workflow-generator.ts","frontend/src/api/response-normalizer.ts","frontend/src/components/business/ActivityTimeline.vue","frontend/src/components/business/EventStreamPanel.vue","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/mobile/MobileFilter.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/types/ai-agent.ts","frontend/src/utils/echarts.ts","frontend/src/views/__tests__/standard-crud-smoke.helper.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/acquisition/Index.vue","frontend/src/views/ad-accounts/Form.vue","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-analytics/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-placement/ABTests.vue","frontend/src/views/ad-placement/AudiencePacks.vue","frontend/src/views/ad-placement/BudgetAlerts.vue","frontend/src/views/ad-placement/Creatives.vue","frontend/src/views/ad-placement/Index.vue","frontend/src/views/ad-placement/RoiAnalysis.vue","frontend/src/views/alliance-agreements/Index.vue","frontend/src/views/alliance-campaigns/Index.vue","frontend/src/views/alliance-coupons/Index.vue","frontend/src/views/alliance-packages/Index.vue","frontend/src/views/alliance-partners/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/attribution/Index.vue","frontend/src/views/auth/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-analytics/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaign-tools/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/ToolConfigDialog.vue","frontend/src/views/campaigns/wizard/Step3Tools.vue","frontend/src/views/campaigns/wizard/Step4BasicInfo.vue","frontend/src/views/campaigns/wizard/Step7Review.vue","frontend/src/views/campaigns/wizard/components/ToolConfigForms.vue","frontend/src/views/channel-analytics/Index.vue","frontend/src/views/community-bots/Index.vue","frontend/src/views/community-fission/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/community-tasks/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Detail.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/conversion-paths/Index.vue","frontend/src/views/cost-allocation/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Detail.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Form.vue","frontend/src/views/departments/Detail.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Alerts.vue","frontend/src/views/devices/Form.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/geo-pois/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-inventory/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-platforms/Index.vue","frontend/src/views/groupbuy-pricing/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-promotions/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/hr/attendance/components/AttendanceTab.vue","frontend/src/views/hr/attendance/components/HolidaysTab.vue","frontend/src/views/hr/attendance/components/LeavesTab.vue","frontend/src/views/hr/attendance/components/OvertimeTab.vue","frontend/src/views/hr/attendance/components/ShiftsTab.vue","frontend/src/views/hr/training/components/CertificatesTab.vue","frontend/src/views/hr/training/components/CompetencyTab.vue","frontend/src/views/hr/training/components/CoursesTab.vue","frontend/src/views/hr/training/components/ExamsTab.vue","frontend/src/views/hr/training/components/PlansTab.vue","frontend/src/views/hr/training/components/SessionsTab.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Index.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/journey-orchestration/Form.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/lead-assignment/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/lead-qualification/Form.vue","frontend/src/views/lead-qualification/Index.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/Index.vue","frontend/src/views/livestream-gifts/Index.vue","frontend/src/views/livestream-groupbuy-conversion/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/maintenance/Index.vue","frontend/src/views/maintenance/TaskDetail.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Detail.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/marketing/budget-alerts/Index.vue","frontend/src/views/mdm/Index.vue","frontend/src/views/member-benefits/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/menus/Index.vue","frontend/src/views/notification-configs/Index.vue","frontend/src/views/notifications/Index.vue","frontend/src/views/omnichannel-dashboard/Index.vue","frontend/src/views/omnichannel-data-hub/Index.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/orders/Index.vue","frontend/src/views/org-chart/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/predictive-analytics/Form.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/product-analytics/Index.vue","frontend/src/views/products/Index.vue","frontend/src/views/qr-codes/Index.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/realtime-trigger/Form.vue","frontend/src/views/renewal-tasks/Index.vue","frontend/src/views/rfm-analysis/Detail.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/scheduled-jobs/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/service-monitor/Index.vue","frontend/src/views/settings/Index.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-matrix/Index.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/spare-parts/components/TransactionHistory.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/store-configs/Index.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/suppliers/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/system-monitor/Index.vue","frontend/src/views/system/AuditLogs.vue","frontend/src/views/tenant-configs/Index.vue","frontend/src/views/tickets/Form.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-publishing/Index.vue","frontend/src/views/web-tracking/Index.vue"]}],"total_commits":0,"head_commit":{"id":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","message":"feat: 四线并行治理 — Record清零+v-permission扩展+Redis缓存+as any清理\n\n## Line 1: Record\u003cstring,any\u003e 全前端清零 (637→0)\n- 262 个文件批量替换 Record\u003cstring, any\u003e → Record\u003cstring, unknown\u003e\n- 覆盖 API 模块层 137 文件 + 视图/stores/composables 100 文件\n\n## Line 2: v-permission 全面覆盖 (53→104 个视图文件)\n- 新增 51 个视图的 v-permission 指令\n- 覆盖: products/departments/contract-templates/spare-parts/pm/\n stage-knowledge/email-templates/approval-templates/ad-campaigns/\n groupbuy-*/community-*/alliance-*/livestream-*/social-*/content-*/\n geo-*/segments/lead-pools/bom/expense-claims/ap-ledger 等\n\n## Line 3: Redis 缓存扩展 (5→14 个缓存点, 10 个模块)\n- 新建 cache-utils.ts 统一缓存工具层 (withCache + invalidation)\n- 高优: tenant-configs(300s) + roles(1800s) + products(600s) +\n departments(600s) + sla(1800s) + contract-templates(600s)\n- 中优: price-books(600s) + notifications(300s)\n- 写后失效: 所有 create/update/delete 自动清除缓存\n\n## Line 4: as any 清理 (25处)\n- campaign-analytics.controller: 8→0 (精确查询类型)\n- social-interactions.service: 9→0 (Prisma UncheckedCreateInput)\n- store-staff.service: 6→0 (prismaModel 代理)\n- scheduled-jobs.consumer: 2→0 (直接使用已有类型)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T10:14:13+08:00","added":["backend/src/shared/constants/events/common.ts","backend/src/shared/constants/events/finance.ts","backend/src/shared/constants/events/hr.ts","backend/src/shared/constants/events/im.ts","backend/src/shared/constants/events/index.ts","backend/src/shared/constants/events/knowledge.ts","backend/src/shared/constants/events/lifecycle.ts","backend/src/shared/constants/events/marketing.ts","backend/src/shared/constants/events/sales.ts","backend/src/shared/constants/events/service.ts","backend/src/shared/constants/events/store.ts","backend/src/shared/constants/events/supply_chain.ts","backend/src/shared/constants/events/system.ts","backend/src/shared/services/list-cache.service.ts","backend/src/shared/utils/cache-utils.ts"],"removed":[],"modified":["backend/src/consumers/attribution.consumer.ts","backend/src/consumers/campaign-effectiveness.consumer.ts","backend/src/consumers/marketing-workflow-executor.consumer.ts","backend/src/consumers/scheduled-jobs.consumer.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/contract-templates/contract-template.service.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/customers/customer.service.ts","backend/src/modules/departments/department.service.test.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/marketing-automation/workflow-trigger.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.routes.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/notifications/notification.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/roles/role.service.ts","backend/src/modules/segments/segment.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/modules/social-interactions/social-interactions.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/constants/events.ts","backend/src/shared/services/partition-maintenance.service.ts","backend/src/shared/state-machines/machines/contract.machine.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/state-machines/types.ts","backend/src/shared/state-machines/utils/transitions/sales.transitions.ts","backend/src/shared/utils/biz-code.ts","frontend/src/api/adapters.ts","frontend/src/api/im-binding.ts","frontend/src/api/modules/ad-accounts.ts","frontend/src/api/modules/ad-audiences.ts","frontend/src/api/modules/ad-creatives.ts","frontend/src/api/modules/ad-placement.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/agent-group.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/alliance-analytics.ts","frontend/src/api/modules/alliance-merchants.ts","frontend/src/api/modules/alliance-products.ts","frontend/src/api/modules/alliance-promotions.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/analytics.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/assets.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/campaign-drafts.ts","frontend/src/api/modules/campaign-library.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/campaign-tools.ts","frontend/src/api/modules/campaign-use-case-templates.ts","frontend/src/api/modules/campaign-wizard.ts","frontend/src/api/modules/campaigns.ts","frontend/src/api/modules/cohort-analysis.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-activities.ts","frontend/src/api/modules/community-analytics.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-groups.ts","frontend/src/api/modules/community-levels.ts","frontend/src/api/modules/community-members.ts","frontend/src/api/modules/community-messages.ts","frontend/src/api/modules/community-points.ts","frontend/src/api/modules/consumer-behavior-analytics.ts","frontend/src/api/modules/content-categories.ts","frontend/src/api/modules/content-copyright.ts","frontend/src/api/modules/content-creation.ts","frontend/src/api/modules/content-distribution.ts","frontend/src/api/modules/content-library.ts","frontend/src/api/modules/content-templates.ts","frontend/src/api/modules/contract-templates.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customer-analytics.ts","frontend/src/api/modules/customer-health.ts","frontend/src/api/modules/customer-journey.ts","frontend/src/api/modules/customer-ltv.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customer-segmentation.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/dictionaries.ts","frontend/src/api/modules/dimension-transform.ts","frontend/src/api/modules/email-marketing.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/event-logs.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/expense.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/fulfillment.ts","frontend/src/api/modules/geo-fences.ts","frontend/src/api/modules/geo-pois.ts","frontend/src/api/modules/groupbuy-analytics.ts","frontend/src/api/modules/groupbuy-campaigns.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-products.ts","frontend/src/api/modules/groupbuy-settlements.ts","frontend/src/api/modules/hr-benefits.ts","frontend/src/api/modules/hr-payroll.ts","frontend/src/api/modules/im-channels.ts","frontend/src/api/modules/im.ts","frontend/src/api/modules/integration-services.ts","frontend/src/api/modules/intent-analyzer.ts","frontend/src/api/modules/journey-orchestration.ts","frontend/src/api/modules/knowledge-candidates.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/livestream-groupbuy.ts","frontend/src/api/modules/livestream-interactions.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/login-logs.ts","frontend/src/api/modules/maintenance.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-calendar.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/marketing-content.ts","frontend/src/api/modules/marketing-forms.ts","frontend/src/api/modules/marketing-matrix.ts","frontend/src/api/modules/marketing-north-star.ts","frontend/src/api/modules/marketing-timeslots.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/omnichannel-dashboard.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/api/modules/omnichannel-touchpoints.ts","frontend/src/api/modules/operation-logs.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/predictive-analytics.ts","frontend/src/api/modules/process-designer.ts","frontend/src/api/modules/process.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/realtime-trigger.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/resource-requests.ts","frontend/src/api/modules/revenue.ts","frontend/src/api/modules/rfm-analysis.ts","frontend/src/api/modules/rma.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/search.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-accounts.ts","frontend/src/api/modules/social-auto-replies.ts","frontend/src/api/modules/social-competitors.ts","frontend/src/api/modules/social-hot-topics.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/spare-parts.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supplier-management.ts","frontend/src/api/modules/swot-analyses.ts","frontend/src/api/modules/system-events.ts","frontend/src/api/modules/ticket-workflows.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/tob-toc-gateway.ts","frontend/src/api/modules/unified-campaign.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/api/modules/workflow-generator.ts","frontend/src/api/response-normalizer.ts","frontend/src/components/business/ActivityTimeline.vue","frontend/src/components/business/EventStreamPanel.vue","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/mobile/MobileFilter.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/types/ai-agent.ts","frontend/src/utils/echarts.ts","frontend/src/views/__tests__/standard-crud-smoke.helper.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/acquisition/Index.vue","frontend/src/views/ad-accounts/Form.vue","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-analytics/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-placement/ABTests.vue","frontend/src/views/ad-placement/AudiencePacks.vue","frontend/src/views/ad-placement/BudgetAlerts.vue","frontend/src/views/ad-placement/Creatives.vue","frontend/src/views/ad-placement/Index.vue","frontend/src/views/ad-placement/RoiAnalysis.vue","frontend/src/views/alliance-agreements/Index.vue","frontend/src/views/alliance-campaigns/Index.vue","frontend/src/views/alliance-coupons/Index.vue","frontend/src/views/alliance-packages/Index.vue","frontend/src/views/alliance-partners/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/attribution/Index.vue","frontend/src/views/auth/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-analytics/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaign-tools/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/ToolConfigDialog.vue","frontend/src/views/campaigns/wizard/Step3Tools.vue","frontend/src/views/campaigns/wizard/Step4BasicInfo.vue","frontend/src/views/campaigns/wizard/Step7Review.vue","frontend/src/views/campaigns/wizard/components/ToolConfigForms.vue","frontend/src/views/channel-analytics/Index.vue","frontend/src/views/community-bots/Index.vue","frontend/src/views/community-fission/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/community-tasks/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Detail.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/conversion-paths/Index.vue","frontend/src/views/cost-allocation/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Detail.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Form.vue","frontend/src/views/departments/Detail.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Alerts.vue","frontend/src/views/devices/Form.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/geo-pois/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-inventory/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-platforms/Index.vue","frontend/src/views/groupbuy-pricing/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-promotions/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/hr/attendance/components/AttendanceTab.vue","frontend/src/views/hr/attendance/components/HolidaysTab.vue","frontend/src/views/hr/attendance/components/LeavesTab.vue","frontend/src/views/hr/attendance/components/OvertimeTab.vue","frontend/src/views/hr/attendance/components/ShiftsTab.vue","frontend/src/views/hr/training/components/CertificatesTab.vue","frontend/src/views/hr/training/components/CompetencyTab.vue","frontend/src/views/hr/training/components/CoursesTab.vue","frontend/src/views/hr/training/components/ExamsTab.vue","frontend/src/views/hr/training/components/PlansTab.vue","frontend/src/views/hr/training/components/SessionsTab.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Index.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/journey-orchestration/Form.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/lead-assignment/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/lead-qualification/Form.vue","frontend/src/views/lead-qualification/Index.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/Index.vue","frontend/src/views/livestream-gifts/Index.vue","frontend/src/views/livestream-groupbuy-conversion/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/maintenance/Index.vue","frontend/src/views/maintenance/TaskDetail.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Detail.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/marketing/budget-alerts/Index.vue","frontend/src/views/mdm/Index.vue","frontend/src/views/member-benefits/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/menus/Index.vue","frontend/src/views/notification-configs/Index.vue","frontend/src/views/notifications/Index.vue","frontend/src/views/omnichannel-dashboard/Index.vue","frontend/src/views/omnichannel-data-hub/Index.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/orders/Index.vue","frontend/src/views/org-chart/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/predictive-analytics/Form.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/product-analytics/Index.vue","frontend/src/views/products/Index.vue","frontend/src/views/qr-codes/Index.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/realtime-trigger/Form.vue","frontend/src/views/renewal-tasks/Index.vue","frontend/src/views/rfm-analysis/Detail.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/scheduled-jobs/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/service-monitor/Index.vue","frontend/src/views/settings/Index.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-matrix/Index.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/spare-parts/components/TransactionHistory.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/store-configs/Index.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/suppliers/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/system-monitor/Index.vue","frontend/src/views/system/AuditLogs.vue","frontend/src/views/tenant-configs/Index.vue","frontend/src/views/tickets/Form.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-publishing/Index.vue","frontend/src/views/web-tracking/Index.vue"]},"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/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":false,"fork":false,"template":false,"mirror":false,"size":1956552,"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,"branch_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-03-24T09:45: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":false,"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
TEXT
concurrency_group
TEXT NOT NULL (default ''
concurrency_cancel
INTEGER NOT NULL (default FALSE
Update
Cancel