Commit Graph

87 Commits

Author SHA1 Message Date
imbytecat dd1facd240 refactor(imports): #nitro 重命名为 #server,imports 字段 ASCII 排序
命名上避开实现耦合:被指向的 .output/server/index.mjs 本质是"编译后的 HTTP 服务器入口",与 nitro(构建器)无关;包装器 _serve-nitro.mjs 仍持"nitro"。未来即便切换至 hono / vite-ssr / h3,#server 名字仍准确。

字段排序改为 ASCII 升序:#drizzle/*.sql < #package < #server,便于 sort-package-json 与人眼对账。

端到端验证(compose + Postgres 18):
- ./server migrate ✓ (embedded SQL)
- /health = ok ✓
- /api/spec.json title=fullstack-starter version=1.0.0 ✓ (#package)
- RPC todo create+list 完整 round-trip ✓ (#server 解析 nitro 产物)
- biome/typecheck/test/build/compile 全绿
2026-04-25 15:28:04 +08:00
imbytecat 5174cff3c5 refactor(cli): _serve-nitro 改用 #nitro subpath import
src/cli/_serve-nitro.mjs 原本用 ../../.output/server/index.mjs 跨边界导入 nitro 构建产物,与 #package / #drizzle/* 同属 "src/ 跳出根目录" 场景。统一改为 #nitro。

新增 package.json#imports:
  "#nitro": "./.output/server/index.mjs"

端到端验证(compose + Postgres 18):
- 编译二进制内嵌 nitro serve() 入口 ✓
- ./server migrate:embedded SQL 应用成功 ✓
- ./server 运行:/health、/api/spec.json (title/version)、RPC create+list 全 OK ✓
- Stack trace 印证 #nitro 由 Bun 正确解析到 .output/server/index.mjs ✓
- biome/typecheck/test/build/compile 全绿
2026-04-25 15:23:05 +08:00
imbytecat 2209ab0b27 chore: 推荐 sort-package-json/gitignore 扩展并排序 package.json 键 2026-04-25 15:20:28 +08:00
imbytecat 7f4cfc8973 refactor: 跨边界导入改用 Node # subpath imports(package.json + drizzle SQL)
业务代码沿用 @/* (shadcn 等生态约定);仅"跳出 src/"的真实跨边界场景采用 Node 标准 #name:

- #package → ./package.json:替换 @/../package.json (2 处) 这种用 alias 跳出根目录的 hack
- #drizzle/*.sql → ./drizzle/*.sql:让 codegen 输出的 migrations.gen.ts 不再走 ../../../

效果:
- tsconfig.paths 与 vite.resolve.tsconfigPaths 维持,业务代码 0 改动
- 配置仅新增 package.json#imports 4 行
- Bun runtime / Vite 8 / TS bundler / 编译产物均原生支持

端到端验证:
- 编译二进制:CREATE TABLE 和 'fullstack-starter' 内嵌 ✓
- ./server migrate:应用嵌入式迁移成功 ✓
- ./server 运行:/health、/api/spec.json (title/version)、RPC create+list、OpenAPI create、Scalar /api/docs 全部 OK ✓
- bun run dev:Vite SSR <title>fullstack-starter</title> 注入 ✓
- fix/typecheck/test/build/compile 全绿
2026-04-25 15:15:20 +08:00
imbytecat afc8b0b077 chore(deps): 升级 nitro-nightly 至 20260424 构建
全量依赖审计:bun outdated 已 0 项;package.json ^ 范围内所有包均解析至 latest(react 19.2.5、vite 8.0.10、TS 6.0.3、tailwind 4.2.4、tanstack 1.168.x、orpc 1.14.0、biome 2.4.13 等)。仅 nitro-nightly 因日构建版本号锁定到具体哈希需手动 bump。drizzle-orm/kit 维持 0.x 最新(0.45.2 / 0.31.10),未跟进 1.0 beta(AGENTS.md 政策)。
2026-04-25 14:57:59 +08:00
imbytecat d9210b3b0b chore(deps): 升级 TanStack Start 至 1.167.48,移除 start-plugin-core patch
upstream 已修(PR #7249,1.169.4 拆分 vite/rsbuild subpath,
@rsbuild/core 列为 optional peer),patches/ 不再必要。

- @tanstack/react-start ^1.167.43 → ^1.167.48
- @tanstack/react-router ^1.168.23 → ^1.168.24
  (react-start@1.167.48 exact 依赖,避免 lockfile 双版本)
- 删除 patches/@tanstack%2Fstart-plugin-core@1.168.0.patch
- 删除 package.json patchedDependencies 块
- AGENTS.md 移除 patches/ layout 说明

验证:fix / typecheck / test / build / compile 均通过;
start-plugin-core@1.169.4 dist 不再静态 import rsbuild。
2026-04-25 14:52:15 +08:00
imbytecat 7e27640a26 feat(deploy): migrations 嵌入二进制,实现真单文件部署
- embed-migrations.ts:扫 ./drizzle/meta/_journal.json,生成 src/server/db/migrations.gen.ts,每条 SQL 通过 `import sql_<idx> from '../../../drizzle/<tag>.sql' with { type: 'text' }` 在 bun build --compile 时被静态嵌入二进制
- migrate.ts 重写:runtime 用 createHash('sha256') 计算迁移哈希,仅用 db.execute(sql) + db.transaction() 公开 API 写入 drizzle.__drizzle_migrations 簿记表(不依赖 @internal 的 db.dialect/db.session)
- db:generate 链 db:embed,保证 SQL 改动总是同步到 migrations.gen.ts
- Dockerfile 删 COPY drizzle/,binary 是部署唯一 artifact
- 同步 README / AGENTS / biome.json
2026-04-25 14:05:58 +08:00
imbytecat 6dc7f9f791 test: 启用 bun test 并补 todo contract 示例
- package.json 加 "test": "bun test"
- todo.contract.test.ts 给 starter 一个可复制的 colocated 测试样板
  覆盖 valid input / missing field / wrong type 三种 case
2026-04-25 13:31:34 +08:00
imbytecat f6b6edee23 fix(deps): 补丁绕过 @tanstack/start-plugin-core 误引 @rsbuild/core
@tanstack/start-plugin-core@1.168.0 的 dist/esm/index.js 在 Vite 场景
下也会静态导入 ./rsbuild/planning.js,而后者硬依赖被标为 optional peer
的 @rsbuild/core,导致 vite build 启动阶段 ERR_MODULE_NOT_FOUND。

引入 bun patch 只保留 vite 相关导出(删掉 RSBUILD_ENVIRONMENT_NAMES
和 tanStackStartRsbuild),不安装 rsbuild 全家桶(rspack 很重)。
等上游修复再移除本补丁。
2026-04-24 20:35:22 +08:00
imbytecat 19e60d358f feat(cli): 引入 citty CLI,迁移改为显式 ./server migrate
- 顶层新增 bin.ts 作为编译入口,citty 懒加载 src/cli/ 下子命令
- src/cli/serve.ts 通过 _serve-nitro.mjs 桥接启动 Nitro(规避
  .output/server/index.mjs 顶层 serve(...) 的副作用导入)
- src/cli/migrate.ts 显式跑 drizzle migrate;env / drizzle 都在 run()
  里 await import,避免 citty --help 遍历 subCommands 时触发 env 校验
- compile.ts 入口切到 bin.ts;移除 src/server/plugins/migrate.ts
  与 vite.config.ts 中的启动时自动迁移
- compose.yaml 新增一次性 migrate 服务,app depends_on
  service_completed_successfully,保证迁移先行再起服
- tsconfig 排除 .output / out;AGENTS.md 补充 CLI 与部署规约
2026-04-24 20:32:32 +08:00
imbytecat 75c77159b4 refactor(db): 适配 drizzle-orm 0.x API 并引入 drizzle-zod
drizzle-orm 从 1.0 beta 降级到 0.45 后,1.0 的 defineRelations、drizzle-orm/zod
子路径以及 RQB v2 的 orderBy 对象语法均不可用。改用 schema 作为 drizzle()
入参、从独立的 drizzle-zod 包导入 schema 生成器,并将 orderBy 改回 0.x 的
回调写法。同时删除因降级而失效的旧迁移。
2026-04-24 20:08:41 +08:00
imbytecat 02757226f7 chore(deps): 锁定 Bun 版本并升级依赖
- Dockerfile 与 mise.toml 固定 bun 至 1.3.13
- 升级 ORPC/TanStack/Biome/Vite/TypeScript 等依赖
- drizzle-orm 与 drizzle-kit 回退至稳定版
2026-04-24 19:50:17 +08:00
imbytecat 934ba80c94 chore(deps): 升级 TanStack Router/Start 及 @types/bun 依赖 2026-04-11 20:53:34 +08:00
imbytecat 15118e8aa2 chore(deps): 升级 ORPC、React 与 Vite 相关依赖 2026-04-10 10:34:31 +08:00
imbytecat b38d475b6f chore(deps): 升级 @orpc/* 至 1.13.13, @tanstack/react-query 至 5.96.1, @biomejs/biome 至 2.4.10 2026-04-01 23:18:42 +08:00
imbytecat cd7b65fda4 refactor: flatten monorepo into standalone project 2026-04-01 19:43:21 +08:00
imbytecat 036afb8d20 chore: remove React Compiler and @rolldown/plugin-babel 2026-04-01 18:26:09 +08:00
imbytecat 688252fd49 chore(deps): bump @biomejs/biome to 2.4.9 and @orpc/* to 1.13.11 2026-03-26 01:14:09 +08:00
imbytecat 034f570794 chore(deps): update TanStack devtools packages 2026-03-25 09:51:21 +08:00
imbytecat ea5935e29b chore(deps): remove babel-plugin-react-compiler 2026-03-25 09:45:37 +08:00
imbytecat 3663f3d010 chore(deps): add @rolldown/plugin-babel and update dependencies
- Add @rolldown/plugin-babel for React compiler support
- Update TypeScript to 6.0.2
- Update TanStack packages (@tanstack/react-query, @tanstack/react-router, @tanstack/react-start)
- Update @vitejs/plugin-react to 6.0.1
- Update Vite to 8.0.2 and Nitro nightly
- Refactor vite.config.ts to use separate babel plugin with reactCompilerPreset
2026-03-25 09:44:13 +08:00
imbytecat 9d1beab2e1 chore: migrate to TypeScript 6.0.2
- Upgrade typescript from 5.9.3 to 6.0.2
- Add explicit types: ['node'] to base tsconfig (TS6 breaking change)
- Remove deprecated baseUrl from server tsconfig
- All typecheck passing
2026-03-25 09:23:07 +08:00
imbytecat 88326c4992 refactor(server): 改用 Vite 原生 tsconfig 路径解析 2026-03-22 01:27:47 +08:00
imbytecat 9da3df6ad7 chore: 升级 monorepo 依赖版本 2026-03-22 00:02:55 +08:00
imbytecat afc3b66efa refactor: 移除根 package.json 中冗余的 --filter 参数
Turbo 会自动只在定义了对应 script 的包上执行任务,无需手动指定 filter。
2026-03-05 12:08:48 +08:00
imbytecat 58620b4d4b feat: 补充 root compile/dist 脚本,通过 Turbo filter 委托到对应 app 2026-03-05 11:56:49 +08:00
imbytecat 04b8dedb3e fix: 修正 middleware 导入路径、清理 catalog 冗余项、同步文档 2026-03-05 11:22:49 +08:00
imbytecat 73614204f7 chore(deps): 升级 Drizzle ORM 到 1.0 beta 并迁移至 RQBv2
- drizzle-orm/drizzle-kit 从 0.45.1/0.31.9 升级到 1.0.0-beta.15
- 移除独立的 drizzle-zod 包,改用 drizzle-orm/zod 内置导入
- DB driver 从 bun-sql 切换到 postgres-js
- 新增 defineRelations 入口 (RQBv2)
- 查询语法迁移到 RQBv2 对象风格 orderBy
2026-03-05 10:17:10 +08:00
imbytecat 61e7a1b621 chore(deps): 升级依赖并同步 VSCode 配置 2026-03-05 10:00:13 +08:00
imbytecat 0553347bfe chore(deps): 升级 TanStack Start 与构建相关依赖 2026-02-26 12:09:37 +08:00
imbytecat d478b94c13 chore(server): 切换 Bun 运行链路并同步升级核心依赖 2026-02-17 17:43:07 +08:00
imbytecat 93a2519012 feat(desktop): 迁移启动页到 React 并接入 Motion 动画 2026-02-16 05:10:15 +08:00
imbytecat aa1e2c81c6 chore: remove unused fingerprint utility and stale deps 2026-02-16 03:03:33 +08:00
imbytecat 7e2621ae37 chore(build): 调整脚本顺序并移除多余空行 2026-02-16 00:05:22 +08:00
imbytecat 94a9122f34 feat(build): 统一编译命令并默认启用双架构 2026-02-15 23:48:37 +08:00
imbytecat 627e6f9dd3 chore: bump dependency catalog and lockfile versions 2026-02-15 22:01:03 +08:00
imbytecat f9edfd0058 fix(desktop): guard shutdown race and kill sidecar process tree 2026-02-09 00:57:30 +08:00
imbytecat e171db8196 refactor: simplify compile.ts to single-target and add per-platform compile scripts
- Rewrite compile.ts from 112 to 66 lines: single target with auto-detect host, remove multi-target batch logic
- Add compile:linux/mac/win scripts to server, root, and turbo configs
- Wire desktop dist:* to depend on matching server compile:* (avoid unnecessary cross-platform compilation)
- Update AGENTS.md docs across root, server, and desktop
2026-02-08 22:25:30 +08:00
imbytecat dac6bb1643 refactor: 统一打包命令为 dist 体系,build 仅编译不打包
- build:linux/mac/win → dist/dist:linux/dist:mac/dist:win
- Turbo 任务依赖:desktop#dist:* → server#compile → server#build
- 根目录 bun dist 一条命令完成完整打包流水线
- 更新 AGENTS.md 文档同步命令变更
2026-02-08 20:48:58 +08:00
imbytecat 7318600e20 refactor(desktop): 替换 WebUI 为 Electron + electron-vite 桌面壳方案
- 使用 electron-vite 构建 main/preload,electron-builder 打包分发
- main process: dev 模式直连 localhost:3000,生产模式 spawn sidecar binary
- 添加 loading 页面,server 就绪前显示加载动画
- 更新 catalog 依赖: electron, electron-vite, electron-builder
- 移除 @webui-dev/bun-webui 依赖
2026-02-08 18:16:13 +08:00
imbytecat e8e473b357 refactor(desktop): 替换 Electrobun 为 WebUI 作为桌面窗口方案
Electrobun 太不稳定,改用 webui-dev/webui(轻量 C 库,~300KB)通过
系统浏览器或 WebView 提供桌面窗口。已验证 bun:ffi 加载和
bun build --compile 均正常工作。

- 移除 electrobun 依赖和配置
- 添加 @webui-dev/bun-webui 依赖
- 重写桌面入口为 WebUI 窗口方案
- 移除 Conveyor 打包工具(mise.toml)
2026-02-08 04:15:34 +08:00
imbytecat 41d97ca312 refactor(deps): 将 @hydraulic/conveyor 从 bun 依赖迁移到 mise 全局工具 2026-02-08 03:21:38 +08:00
imbytecat cfe7de2a70 chore(deps): 添加 @hydraulic/conveyor 依赖到 desktop 应用 2026-02-08 03:11:43 +08:00
imbytecat b87de26e17 chore(deps): 升级 TanStack devtools 和 vite-tsconfig-paths 依赖版本 2026-02-08 02:41:22 +08:00
imbytecat 14bcdb33af chore(deps): 升级 TanStack 路由和 Start 依赖版本 2026-02-07 19:11:28 +08:00
imbytecat cc81d95178 chore(desktop): 升级 electrobun 至 1.12.0-beta.1 2026-02-07 19:10:33 +08:00
imbytecat 4bbb0c4a16 refactor(server): simplify build script, remove Effect dependency 2026-02-07 16:44:56 +08:00
imbytecat 2b3026cf69 chore(turbo): simplify and optimize monorepo configuration 2026-02-07 16:35:30 +08:00
imbytecat 59b4edc2d2 chore(desktop): 降级 electrobun 至 0.8.0 稳定版 2026-02-07 06:59:19 +08:00
imbytecat 26f9421130 chore: 统一 Node/TypeScript 配置并修复桌面端类型环境 2026-02-07 05:53:38 +08:00