sqlite-web 0.7.2
gitea.db
action
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 4474 in action
id
Primary key.
INTEGER NOT NULL
user_id
INTEGER
op_type
INTEGER
act_user_id
INTEGER
repo_id
INTEGER
comment_id
INTEGER
is_deleted
INTEGER NOT NULL (default 0
ref_name
refs/heads/governance/launch-hardening-2026-05-18
TEXT
is_private
INTEGER NOT NULL (default 0
content
{"Commits":[{"Sha1":"1391849fda3fbf538092a324fbbccbf2c5d1f283","Message":"test(unit): 113 测试 mock 补全 + 18 失败断言修复 — 7386/7386 全绿\n\nPhase 19 新增 createWithRetryOnConflict + allocateBizCode helper 后,单测 mock\n缺新 export 导致 24 个失败 → 109 个测试 mock 批量补 + 9 个测试断言按新 API\n行为更新 + 9 个 service-helper 模式断言更新 = 18 → 0 失败,7362 → 7386 全\n绿(520 测试文件全 PASS)。\n\n修复分三类:\n\nA. **vi.mock biz-code.js 批量补 helper export**(109 文件):\n - `allocateBizCode: vi.fn().mockImplementation((_t, prefix) =\u003e\n Promise.resolve(\\`\\${prefix}-MOCK-\\${Date.now()}\\`))`\n - `createWithRetryOnConflict: vi.fn().mockImplementation((fn) =\u003e fn())`\n 解决 14 文件 24 个失败(Sprint 1 Phase 12-17 多 caller 迁移引入)\n\nB. **Decimal 链路返回值断言更新**(3 文件):\n - finance-credits getCreditStats/upsertCredit/adjustCredit:number →\n decimal string('.toFixed(2)')\n - finance event payload:number → decimal string\n\nC. **service helper 模式断言更新**(9 文件):\n - projects/gantt:updateProjectTaskWithTenant / updateServiceTicketWithTenant\n 双步 updateMany + findFirstOrThrow 模式\n - ai-agent-skills publishSkill:同样 helper 双步\n - contracts confirmSign:加 tx.contracts.findFirst 状态机守卫\n - renewals winRenewal:改走 contractService.submit() 流程\n - alliance-promotions/settlements/treasury:mockAllocateBizCode 模式\n - treasury payment-request:mock shared/utils/crud.ts createOne pass-through\n\n治理收益:\n- vitest workspace unit project: 7386/7386 PASS\n- 验证 Sprint 1 全部 62+ 业务文件修改 + 129 处治理改动 无回归\n- mock 兼容新 Decimal SOP helper 与 service tenant guard helper\n\n修复纪律:\n- 仅改 *.test.ts,无业务 service 修改\n- 无新增 any\n- service 是真源,test 断言匹配新行为\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T23:15:39-07:00"},{"Sha1":"ad56dbe5d5d704b551162933f4cca8939f8707a9","Message":"fix(customers): customers 8 处 update 全部收口 — 财务字段 tenant 守卫硬化\n\n[Accenture P3 #持续收口 · 跟进 ff451b797a ai_agent_tasks]\n\n新增 backend/src/shared/utils/customer-tenant-helpers.ts 提供\nupdateCustomerWithTenant(client, customerId, tenantId, data, include?)。\n\ncustomers 是核心业务表,prepaid_balance/frozen_balance/credit_used\n等财务字段尤其敏感,强制 tenant_id 隔离防跨租户资金错配。\n\n3 文件批量改造(8 处 update):\n - customer-balance/customer-balance.service.ts: 6 处\n (deposit/freeze/unfreeze/refund/withdraw/transfer 等金额变动路径)\n - customers/customer-hierarchy.service.ts: 1 处 (setParent)\n - customers/customer-health.service.ts: 1 处 (updateHealthScore)\n\n效果:\n totalFindings: 181 → 173 (-8)\n mediumCount: 90 → 82 (-8) ← 8 MEDIUM 全消除\n lowCount: 91 → 91 (持平)\n customers: 8 → 0 ✅\n\n棘轮同步:\n tenant-update-where-medium-ceiling: \u003c= 90 → \u003c= 82\n tenant-update-where-total-ceiling: \u003c= 181 → \u003c= 173\n\n累计完整收口的表 7 张 / 62 处:\n - ticket_sla_clocks (4) — af140e4577\n - project_tasks (16) — e9e53a1430\n - ai_skills (9) — 3f02d4e2a5\n - service_tickets (9) — b1d7599de0\n - ai_agent_skill_bindings (8) — 551a43c465\n - ai_agent_tasks (8) — ff451b797a\n - customers (8) — 本提交\n\nbackend tsc 通过;reconcile 38+/38+ OK。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T23:02:32-07:00"},{"Sha1":"ff451b797ac2f65bdfa20a449b5e4e2d405c8b6e","Message":"fix(ai-agents): ai_agent_tasks 8 处 update 全部收口 — task-heartbeat.service helper 批量改造\n\n[Accenture P3 #持续收口 · 跟进 551a43c465 ai_agent_skill_bindings]\n\n新增 backend/src/shared/utils/ai-agent-task-tenant-helpers.ts 提供\nupdateAiAgentTaskWithTenant(client, taskId, tenantId, data, include?)。\n\n8 处全在 task-heartbeat.service.ts 一个文件(全 MEDIUM 因 audit 静态分析\n无法识别 `task.tenant_id` 字段读取作为 prior guard):\n - updateProgress: 1 (tenantId 参数)\n - sendHeartbeat: 1 (tenantId 参数)\n - handleStuckTask: 2 (task.tenant_id 字段)\n - handleTimeoutTask: 1 (task.tenant_id 字段)\n - TaskExecution.start: 1 (this.tenantId)\n - TaskExecution.complete: 1 (this.tenantId)\n - TaskExecution.fail: 1 (this.tenantId)\n\n效果:\n totalFindings: 189 → 181 (-8)\n mediumCount: 98 → 90 (-8) ← 8 MEDIUM 全消除\n lowCount: 91 → 91 (持平)\n ai_agent_tasks: 8 → 0 ✅\n\n棘轮同步:\n tenant-update-where-medium-ceiling: \u003c= 98 → \u003c= 90\n tenant-update-where-total-ceiling: \u003c= 189 → \u003c= 181\n\n累计完整收口的表 6 张 / 54 处:\n - ticket_sla_clocks (4) — af140e4577\n - project_tasks (16) — e9e53a1430\n - ai_skills (9) — 3f02d4e2a5\n - service_tickets (9) — b1d7599de0\n - ai_agent_skill_bindings (8) — 551a43c465\n - ai_agent_tasks (8) — 本提交\n\nbackend tsc 通过;reconcile 38+/38+ OK。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T22:56:53-07:00"},{"Sha1":"551a43c4655e2c3cb741c0244fd9fee04934e506","Message":"fix(ai-agent-skills): ai_agent_skill_bindings 8 处 update/delete 全部收口\n\n[Accenture P3 #持续收口 · 跟进 b1d7599de0 service_tickets]\n\n新增 backend/src/shared/utils/ai-agent-skill-binding-tenant-helpers.ts\n提供 updateAiAgentSkillBindingWithTenant(client, bindingId, tenantId, data, include?)。\n\n8 文件改造(7 处 update + 1 处 delete):\n - ai-agent-skills/ai-agent-skills.service.ts: 1 处 delete → deleteMany + tenant_id\n (unbind skill 路径,MEDIUM)\n - ai-assist/skills/registry.ts: 1 处 update → helper (LOW)\n - ai-assist/skills/{leadership,service,marketing,compliance,onboarding,sales}-coach-registry.ts:\n 各 1 处 update → helper (LOW,6 处用 node 脚本批量替换)\n\n效果:\n totalFindings: 197 → 189 (-8)\n mediumCount: 99 → 98 (-1,delete 路径)\n lowCount: 98 → 91 (-7,update 路径)\n ai_agent_skill_bindings: 8 → 0 ✅\n\n棘轮同步:\n tenant-update-where-medium-ceiling: \u003c= 99 → \u003c= 98\n tenant-update-where-total-ceiling: \u003c= 197 → \u003c= 189\n\n累计完整收口的表 5 张 / 46 处:\n - ticket_sla_clocks (4) — af140e4577\n - project_tasks (16) — e9e53a1430\n - ai_skills (9) — 3f02d4e2a5\n - service_tickets (9) — b1d7599de0\n - ai_agent_skill_bindings (8) — 本提交\n\nbackend tsc 通过;reconcile 38+/38+ OK。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T22:51:53-07:00"},{"Sha1":"b1d7599de0e88be66bbc2b8bf8fe77417ed930e6","Message":"fix(service): service_tickets 9 处 update 全部收口 — 共享 helper + 5 模块批量改造\n\n[Accenture P3 #持续收口 · 跟进 3f02d4e2a5 ai_skills]\n\n新增 backend/src/shared/utils/service-ticket-tenant-helpers.ts 提供\nupdateServiceTicketWithTenant(client, ticketId, tenantId, data, include?)。\n\n5 文件批量改造(9 处 update):\n - im/workflow-dispatcher.service.ts: 1 处 (SLA 违规升级)\n - projects/project.service.ts: 2 处 (linkTicket + unlinkTicket)\n - projects/services/ticket.service.ts: 2 处 (linkTicketToProject + unlinkTicketFromProject)\n - service/services/ticket-gantt.service.ts: 2 处 (updateTicketSchedule + batchUpdateTickets)\n - customers/customer-service.service.ts: 2 处 (RMA 创建 + escalateTicket)\n\n效果:\n totalFindings: 206 → 197 (-9)\n mediumCount: 104 → 99 (-5) ← 首次跌破 100\n lowCount: 102 → 98 (-4)\n service_tickets: 9 → 0 ✅\n\n棘轮同步:\n tenant-update-where-medium-ceiling: \u003c= 104 → \u003c= 99\n tenant-update-where-total-ceiling: \u003c= 206 → \u003c= 197\n\n累计完整收口的表:\n - ticket_sla_clocks (4) — af140e4577\n - project_tasks (16) — e9e53a1430\n - ai_skills (9) — 3f02d4e2a5\n - service_tickets (9) — 本提交\n 合计 38 处\n\nbackend tsc 通过;reconcile 38+/38+ OK。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T22:47:53-07:00"}],"HeadCommit":{"Sha1":"1391849fda3fbf538092a324fbbccbf2c5d1f283","Message":"test(unit): 113 测试 mock 补全 + 18 失败断言修复 — 7386/7386 全绿\n\nPhase 19 新增 createWithRetryOnConflict + allocateBizCode helper 后,单测 mock\n缺新 export 导致 24 个失败 → 109 个测试 mock 批量补 + 9 个测试断言按新 API\n行为更新 + 9 个 service-helper 模式断言更新 = 18 → 0 失败,7362 → 7386 全\n绿(520 测试文件全 PASS)。\n\n修复分三类:\n\nA. **vi.mock biz-code.js 批量补 helper export**(109 文件):\n - `allocateBizCode: vi.fn().mockImplementation((_t, prefix) =\u003e\n Promise.resolve(\\`\\${prefix}-MOCK-\\${Date.now()}\\`))`\n - `createWithRetryOnConflict: vi.fn().mockImplementation((fn) =\u003e fn())`\n 解决 14 文件 24 个失败(Sprint 1 Phase 12-17 多 caller 迁移引入)\n\nB. **Decimal 链路返回值断言更新**(3 文件):\n - finance-credits getCreditStats/upsertCredit/adjustCredit:number →\n decimal string('.toFixed(2)')\n - finance event payload:number → decimal string\n\nC. **service helper 模式断言更新**(9 文件):\n - projects/gantt:updateProjectTaskWithTenant / updateServiceTicketWithTenant\n 双步 updateMany + findFirstOrThrow 模式\n - ai-agent-skills publishSkill:同样 helper 双步\n - contracts confirmSign:加 tx.contracts.findFirst 状态机守卫\n - renewals winRenewal:改走 contractService.submit() 流程\n - alliance-promotions/settlements/treasury:mockAllocateBizCode 模式\n - treasury payment-request:mock shared/utils/crud.ts createOne pass-through\n\n治理收益:\n- vitest workspace unit project: 7386/7386 PASS\n- 验证 Sprint 1 全部 62+ 业务文件修改 + 129 处治理改动 无回归\n- mock 兼容新 Decimal SOP helper 与 service tenant guard helper\n\n修复纪律:\n- 仅改 *.test.ts,无业务 service 修改\n- 无新增 any\n- service 是真源,test 断言匹配新行为\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-05-20T23:15:39-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/5b96a56c883800bbfef82ad21c9833789de2cf24...1391849fda3fbf538092a324fbbccbf2c5d1f283","Len":6}
TEXT
created_unix
INTEGER
Update
Cancel