sqlite-web 0.7.2
gitea.db
issue
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 743 in issue
id
Primary key.
INTEGER NOT NULL
repo_id
INTEGER
index
INTEGER
poster_id
INTEGER
original_author
TEXT
original_author_id
INTEGER
name
feat(script): 接入大语言模型——歌词/文案 → 拍摄脚本 → 角色确认 → 定格图
TEXT
content
本仓此前零 LLM 接入(全仓只有 DashScope 的图像调用),「歌词成图」屏是纯前端 原型(procedural.ts 画色块 + setTimeout 假装推理,不落库不接后端)。本轮把这条 动线升级为真链路 + 真持久化。 契约单源(packages/contracts/src/script.ts) - 角色确认状态机 scriptRoleMachine、脚本状态机 shootingScriptMachine - 景别/运镜用枚举而非自由文本:LLM 一旦自由发挥,下游 prompt 与统计就没有稳定口径 - scriptDraftSchema 是 LLM 输出的唯一判据;prompt 构造器单源,两后端禁止各拼一份 - evaluateRoleReadiness:本域核心不变量,双后端硬拦截 + 前端同源即时反馈 - 前端私有的 findBannedHits 上收为 contracts 的 findBannedWords(后端也要逐镜标记, 两份并行就是双真源) LLM 不是权威 - sidecar /v1/script 只保证「返回长得像脚本的 JSON」,两个后端各自再 parse 一次才落库 - 模型引用未声明角色键 → 422 SCRIPT_ROLE_KEYS_DANGLING(幻觉护栏) - 连续给不出合法 JSON → 502 LLM_OUTPUT_UNPARSEABLE,绝不返回占位脚本 - parse_json_object 只剥围栏、截首尾花括号,不做字段猜测或补齐 角色必须先确认才允许出定格图 - 判据 = status CONFIRMED 且有 referenceAssetId(没有参考图就没有一致性锚点) - CONFIRMED --reset--> DRAFT 会解除参考图绑定:人确认的是那一张图,不是那个名字 - 出图时按 roleKeys 顺序喂参考图,与指令里「第 N 张参考图」编号严格对齐 写链纪律与物料链路同构:tenant 全覆盖、updateMany 带状态前置条件(0 行即 409)、 终态与 outbox 同 tx、能力不可用 → job BLOCKED + 诚实 reason,禁止静默降级。 品牌准绳只逐镜标记不拒绝整份脚本(脚本属创作内容),硬拦截点在出定格图这个受控出口, 显式放行需带参数且落审计事件。 顺带修掉三个既有缺陷 1. 合并遗留:sidecarEdit 用 sidecarGenerateResponseSchema 校验响应(要求 steps/ loadSeconds),但 run_hosted_edit 两个字段都不返回 —— 托管改字会在客户端边界 直接 Zod 抛错(本地路径返回这两个字段,所以一直没暴露) 2. check-migrations 的列检查只扫 CREATE TABLE,凡 ALTER TABLE ADD COLUMN 追加的 @map 列一律误报 drift(此前唯一的 ALTER 列 brand_kits.profile 没 @map 才没现形) 3. ktv-poster-master.png 血统在合并两侧打架,git log --all 证明该文件自初始化提交后 从未重新生成,取诚实标注 prototype-demo-master 验收 - 新增 pnpm check:script → reports/script-acceptance.latest.json(双后端各 8 passed + 1 skipped-live);own-tests floor 10→14,棘轮已收紧 - pnpm check / check:runtime 均 exit 0 - 浏览器实测:未确认角色 → 按钮 disabled 且提示缺哪个角色;绕过前端直打后端 → 422 ROLE_NOT_CONFIRMED;跨租户 404;无凭证生成 → UI 显示 503 且不产生占位脚本 诚实边界(已写入 CLAUDE.md) - liveLlmAsserted=false:本机无 DASHSCOPE_API_KEY,真调 LLM 的 live 断言被 skip, 门禁成立 ≠ LLM 出脚本已验证 - check:inference 在本机为 failed(动手前即为 failed):本工作副本的模型权重是 git-lfs 指针存根,非本轮改动导致;基线表该行已从 GREEN 改为 OPEN - ui-acceptance 报告早于本屏,未覆盖 script 屏,已标 STALE - 新开缺口 G16(LLM 只做结构校验、无事实性校验)、G17(同步 HTTP 挂分钟级推理 / render_jobs 索引非 CONCURRENTLY / 本地多图 I2I 未在本机验证) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> <!-- PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。 CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck); 有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。 --> ## 变更内容 <!-- 简述这次改了什么、为什么改(聚焦 why) --> - ## 涉及业务概念 <!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md --> - ## 检查清单 ### 命名一致性 - [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词) - [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE - [ ] `pnpm check:naming` 通过 - [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源 ### API / 契约 - [ ] 不涉及 API 变更 - [ ] 新增/修改了 API,路由符合 `/api/v1/{resources}` 规范 - [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份) - [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案) ### 数据库 - [ ] 不涉及数据库变更 - [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status) - [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id - [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理 ### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致) - [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name <change>`),未只改 schema 不落迁移 - [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移) - [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移) - [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切 - [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration - [ ] 高危但确需的 DDL 已加 `-- migration-allow:<原因>` 留痕,并在下方回滚方案说明 - [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift ### 实时 / 队列 - [ ] 不涉及 - [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub) - [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish - [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket) ### 质量与发布 - [ ] 通过 `pnpm lint` 与 `pnpm typecheck` - [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退 - [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新 - [ ] 已补充/更新必要的测试 - [ ] 不需要回滚方案 - [ ] 需要回滚方案,已在下方说明 ## 回滚方案 / 其他说明 -
TEXT
milestone_id
INTEGER
priority
INTEGER
is_closed
INTEGER
is_pull
INTEGER
num_comments
INTEGER
ref
TEXT
deadline_unix
INTEGER
created_unix
INTEGER
updated_unix
INTEGER
closed_unix
INTEGER
is_locked
INTEGER NOT NULL (default 0
content_version
INTEGER NOT NULL (default 0
time_estimate
INTEGER NOT NULL (default 0
Update
Cancel