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 24242 in action_run
id
Primary key.
INTEGER NOT NULL
title
chore(reports): deployed-runtime 回绑 —— 常驻容器跑的是 c0bc8c0 的镜像
TEXT
repo_id
INTEGER
owner_id
INTEGER
workflow_id
platform.yml
TEXT
index
INTEGER
trigger_user_id
INTEGER
schedule_id
INTEGER
ref
refs/heads/main
TEXT
commit_sha
9dc4f3236199294415bd7cb15547687667940246
TEXT
is_fork_pull_request
INTEGER
need_approval
INTEGER
approved_by
INTEGER
event
push
TEXT
event_payload
{"ref":"refs/heads/main","before":"3b55095e3aac481fdce7fde36f0dcc24309d5ef4","after":"9dc4f3236199294415bd7cb15547687667940246","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/3b55095e3aac481fdce7fde36f0dcc24309d5ef4...9dc4f3236199294415bd7cb15547687667940246","commits":[{"id":"9dc4f3236199294415bd7cb15547687667940246","message":"chore(reports): deployed-runtime 回绑 —— 常驻容器跑的是 c0bc8c0 的镜像\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9dc4f3236199294415bd7cb15547687667940246","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:57:37-07:00","added":[],"removed":[],"modified":["reports/deployed-runtime.latest.json"]},{"id":"68438d6e12f25645ca806681c661340cf989889d","message":"chore(reports): C12 升格影响的门禁回绑 @ 3602f99 —— 仓根十五份 + runtime 十六份 + 夹具两份\n\nreports:rebind 在干净检出里跑完 14 个零依赖门禁(含两份工作台快照),pnpm --dir runtime\ncheck:governance 重出 runtime/reports 十六份,需构建产物的 fixtures / fixture-coverage 在主工作树\n(此刻干净)重跑——rebind 明确拒收那两份。全部绑 3602f99 / dirty=false。\n\n工作台快照因此记入 notification-webhook 的新档位:form=runtime-module、模块 state=authority、\nconsumption=runtime-service,Catalog 仍 candidate_e0 / E0(authority≠E2 标注保留)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/68438d6e12f25645ca806681c661340cf989889d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:57:36-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/candidate-contracts.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/ci-mirror.latest.json","reports/doc-claims.latest.json","reports/fact-pii.latest.json","reports/facts.latest.json","reports/fixture-coverage.latest.json","reports/fixtures.latest.json","reports/gate-flow.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/stub-surface.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"3602f991ed80441050696984fc530f114a8bedfe","message":"chore(reports): 镜像与冒烟回绑 @ c0bc8c0 —— C12 四个实现提交后重建并切换常驻运行时\n\n在 .worktrees/image-c0bc8c0 的干净检出里 image:build(enterprise-platform/runtime:c0bc8c05d14c,\nworktreeDirty=false),冒烟 6/6,up -d --no-deps runtime 切换后 healthy,check:deployed passed。\n运行面实测:/api/health 200;通知的四个端点已随控制器挂载,无凭证调 effects:classify 得 401(鉴权先拦)。\n**两个新模块的 profile 都未装**——数据未迁,装上只会制造\"已可用\"的假象。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3602f991ed80441050696984fc530f114a8bedfe","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:56:44-07:00","added":[],"removed":[],"modified":["reports/image-digest.json","reports/image-smoke.latest.json"]},{"id":"c0bc8c05d14cd036625d6b44bdb7bb3d53e8f2be","message":"feat(modules): C12 收尾三步——投递实现迁入、客户端改写、运行时与控制器落地\n\n一口气把 C11 走过的三步在 C12 上做完:\n\n**① 投递实现迁入**(288 行,原文照搬未改语义):签名、验签、重放随机数、主机白名单、可重试判定、\n模板渲染,从 runtime/clients/notification-webhook 迁到 runtime/modules/notification-webhook/src/delivery/。\n\n**② 客户端改写成远程调用**(482 → 113 行):把 notification-delivery-api.v1 的四个操作实现为对平台端点的\n调用。消费者从此不再自己持有签名密钥与出口白名单。未配置 baseUrl / 非 2xx / 返回体不合形状 / 传输异常\n四条路径都是拒绝,各有单测。clients/README 的 B 类段落随之从两项减到一项(只剩配置平台)。\n\n**③ 运行时与控制器**:kit 加 notificationWebhookRuntime 钩子;模块给实现(规则一律调 @juhai/contracts,\n一条都不在模块里重写;租户取自 principal 不从请求体取;无已批准快照时用域自带 deny-all);\n装配点加 NotificationWebhookController,四条路由挂在 /api/v1/notification-deliveries 下。\n\n**一处映射必须写实而不是编**:两个分类器返回的是字符串联合(DELIVER / DUPLICATE / DLQ / REJECT_REPLAY /\nREJECT),不带原因码。我读了规则源码才定映射:effect 的 REJECT = 入参形状不合法(标识为空、次数非正整数、\n三个布尔位不是字面布尔)→ WEBHOOK_EFFECT_ATTEMPT_INVALID;REJECT_REPLAY → WEBHOOK_REPLAY_NOT_AUTHORIZED;\nprovider 的 REJECT → PROVIDER_OUTCOME_INVALID。非拒绝的分类结果走 outcome 原样透传,**不塞进拒绝词表**。\n\n**④ 迁移与对账工具**,形态同 C11(生成 SQL + 对账,不连库)。本域最需要写明的判断是**幂等键从哪来**:\n平台的唯一键是 (tenant_id, idempotency_key),而宿主 Notification 没有这一列(它靠含 escalation_id 的五元组)。\n迁移因此确定性派生:sha256(五元组) 前 32 位 + `host:` 前缀——带前缀是为了让迁来的键与平台自生成的键一眼可分,\n用确定性哈希是因为迁移要可重跑(随机键会让 ON CONFLICT 失效、重跑翻倍)。\n对账**单列幂等键碰撞**:宿主那组唯一键里 escalation_id 可空,两条只差 ticket 的记录会撞出同一个键,\n这类必须在迁移前被人看见,不能靠 ON CONFLICT 悄悄合并成一条。\n\n门禁反向记账两条随控制器落地清掉:registry-only(前缀有控制器应答了)与一条 fixture-only\n(域规则从\"只有夹具在调\"变成有运行时消费者)。CLAUDE.md 清单 12 / 7 / 8 / 8 → **12 / 6 / 7 / 8**。\n模块单测 22 例;治理单测 480 例 479 通过 / 0 失败;contracts 416 例全过;六道门禁 passed;api-nestjs typecheck 0 error。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/c0bc8c05d14cd036625d6b44bdb7bb3d53e8f2be","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:54:00-07:00","added":["runtime/apps/api-nestjs/src/platform/http/notification-webhook.controller.ts","runtime/modules/kit/src/notification-webhook-runtime.ts","runtime/modules/notification-webhook/scripts/migrate-from-host.mjs","runtime/modules/notification-webhook/src/delivery/template.ts","runtime/modules/notification-webhook/src/delivery/webhook-delivery.test.ts","runtime/modules/notification-webhook/src/delivery/webhook-delivery.ts","runtime/modules/notification-webhook/src/http/notification-webhook-runtime.ts","runtime/modules/notification-webhook/src/migration/from-host.test.ts","runtime/modules/notification-webhook/src/migration/from-host.ts"],"removed":["runtime/clients/notification-webhook/src/template.ts"],"modified":["CLAUDE.md","contracts/test/governance-linter.test.mjs","governance/stub-surface.json","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/clients/README.md","runtime/clients/notification-webhook/package.json","runtime/clients/notification-webhook/src/index.test.ts","runtime/clients/notification-webhook/src/index.ts","runtime/modules/kit/src/index.ts","runtime/modules/notification-webhook/package.json","runtime/modules/notification-webhook/src/index.ts","runtime/modules/notification-webhook/src/persistence/delivery-store.ts","runtime/modules/notification-webhook/src/persistence/prisma-delivery-store.ts"]},{"id":"394ad9b7cd96348b1d2d83e50c9b26ddffa4a842","message":"feat(modules): C12 两个作业处理器落地——认领+退避调度与过期认领释放\n\n- **claim-expiry 完全自洽**:只读写平台账本。释放 = claim_owner / claim_expires_at 置空、\n next_attempt_at 置为现在。**不改 attempts**——认领过期不是一次投递尝试,把它算成尝试会让一条消息\n 因为工作进程崩溃而提前耗尽重试额度。\n- **delivery-retry 只做账本侧调度**:认领、计次、按退避排下次时间;**不发请求**。外发实现(签名 / 超时 / HTTP)\n 今天仍在 runtime/clients/notification-webhook,照 C11 先例将迁入。这不是占位——调度与外发本就该分开,\n 而认领 + 退避正是\"同一条消息不被两个工作进程同时投\"的保证。\n\n认领做成**乐观抢占**:updateMany + 条件(claim 为空或已过期),并发下只有一个进程 count=1,其余拿 0 并跳过。\n用\"先读后写\"会在两个进程之间留竞态窗口——这条在 store 注释里写明了。\n退避是纯函数(base 指数增长、封顶),base/max 由路由策略给,作业不自己发明节奏。\n\nPrisma store 的每个操作都在事务里先 set_config('app.current_tenant_id', …, true)(FORCE RLS 下不设读不到;\ntrue 限定本事务内,避免连接复用带租户)。描述符同批补 health 真检查项(database up/down)。\n\n单测 5 例:三条失败关闭前提、认领成功才记尝试且退避指数封顶、已被他人认领则跳过且不记尝试、\n过期认领释放且不动 attempts、退避纯函数取值。\ncheck:stub-surface 反向逼着删两条桩登记,CLAUDE.md 桩数 14 → 12;治理单测 480 例 479 通过 / 0 失败。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/394ad9b7cd96348b1d2d83e50c9b26ddffa4a842","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:39:06-07:00","added":["runtime/modules/notification-webhook/src/jobs/claim-expiry.ts","runtime/modules/notification-webhook/src/jobs/delivery-retry.ts","runtime/modules/notification-webhook/src/jobs/index.ts","runtime/modules/notification-webhook/src/jobs/jobs.test.ts","runtime/modules/notification-webhook/src/persistence/delivery-store.ts","runtime/modules/notification-webhook/src/persistence/prisma-delivery-store.ts"],"removed":[],"modified":["CLAUDE.md","governance/stub-surface.json","runtime/modules/notification-webhook/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"9dc4f3236199294415bd7cb15547687667940246","message":"chore(reports): deployed-runtime 回绑 —— 常驻容器跑的是 c0bc8c0 的镜像\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9dc4f3236199294415bd7cb15547687667940246","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:57:37-07:00","added":[],"removed":[],"modified":["reports/deployed-runtime.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":24178,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":44,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-19T21:18:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}
TEXT
trigger_event
push
TEXT
status
INTEGER
version
INTEGER (default 0
started
INTEGER
stopped
INTEGER
previous_duration
INTEGER
created
INTEGER
updated
INTEGER
raw_concurrency
group: platform-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }}
TEXT
concurrency_group
platform-platform.yml-refs/heads/main
TEXT NOT NULL (default ''
concurrency_cancel
INTEGER NOT NULL (default FALSE
Update
Cancel