hongjr03
78f94fcc8c
fix(ci): sync npm lockfiles so fleet deploy npm ci succeeds
...
Hub and admin-web package-lock.json were missing @emnapi/* entries that
npm 11 on the Alpha host requires, so deploy_fleet_release failed at
npm ci. Regenerate both lockfiles and retry incomplete release trees.
2026-07-15 00:18:22 +08:00
hongjr03
7269480abb
ci: deploy Hub admin SPA fleets via Gitea Actions
...
Add deploy_fleet_release.sh and a workflow that rolls immutable Hub
releases (including admin-web) to educraft-dev on push/PR and educraft
on main/tags, selecting silos by HUB_PUBLIC_BASE_URL middle domain.
2026-07-15 00:14:22 +08:00
hongjr03
4e2699d0a5
fix(admin): serve built SPA and include it in release builds
...
registerStaticSpa was never mounted, so production only exposed org-admin
APIs. Wire it after auth/API routes, fold admin:build into npm run build,
and install admin-web deps during deploy so admin-web/build ships with the
release for same-origin /admin/*.
2026-07-14 23:54:47 +08:00
hongjr03
53d372e29b
fix: report untracked legacy symlinks
2026-07-11 23:37:25 +08:00
hongjr03
530fcdd2b7
feat: migrate legacy projects through binding search
2026-07-11 23:33:23 +08:00
hongjr03
53998d2651
fix: enable proxy use in new silos
2026-07-11 15:07:28 +08:00
hongjr03
19d942e812
feat: automate managed silo provisioning
2026-07-11 14:53:03 +08:00
hongjr03
e5e923dd34
feat: add repeatable alpha silo setup
2026-07-11 14:30:50 +08:00
hongjr03
d36b00bbec
feat: make agent roles and skills dynamic
2026-07-11 12:55:05 +08:00
hongjr03
7fcb57013e
fix: restore bounded agent sandbox execution
2026-07-11 02:34:56 +08:00
hongjr03
9e954790dc
feat: add deployable alpha silo
2026-07-11 00:25:45 +08:00
hongjr03
44557da499
feat: secure organization Feishu credentials
2026-07-10 23:13:11 +08:00
hongjr03
848f913597
feat: secure organization provider credentials
2026-07-10 22:04:43 +08:00
hongjr03
e049cb6880
fix: clear dependency security advisories
2026-07-10 18:59:03 +08:00
hongjr03
f07f280b8f
fix: prove Linux Agent sandbox boundary
2026-07-10 17:59:56 +08:00
hongjr03
73fa28a178
feat: provision non-root Hub service
2026-07-10 15:59:35 +08:00
hongjr03
a766d99573
fix(hub): 修复 Hub 部署脚本失败处理
2026-07-08 15:14:23 +08:00
hongjr03
ecbc2c8666
fix(hub): 对齐 ADR-0018 agent 执行面边界
...
runner.ts: 启用 SDK 内置沙箱(bubblewrap/seatbelt),写入限制在 workspace,
denyRead 敏感路径,failIfUnavailable 硬拒非沙箱运行。bypassPermissions 保留
(headless 无交互),沙箱是硬边界而非权限提示层。
install_service.sh: 默认 service user 从 root 改为 cph-hub;env 模板修正
OPENROUTER_API_KEY → ANTHROPIC_AUTH_TOKEN/ANTHROPIC_BASE_URL/ANTHROPIC_API_KEY
(与 server.ts 实际读取一致);补 __BASE_DIR__ sed 替换。
cph-hub.service: AssertPathExists=/usr/bin/bwrap 强制沙箱依赖;NoNewPrivileges。
不加 ProtectSystem/ProtectHome(会破坏 cph render-cache 与 bwrap user-namespace)。
trigger.ts: 权限闸门去掉 if (senderOpenId !== '') 短路——缺 open_id 一律
fail-closed 拒绝,不再静默跳过;role gate 同步去掉冗余守卫(已由上游保证)。
顺手把 JSON.parse(msg.content) 的 inline cast 换成 Zod schema parse
(FileMessageContentSchema / TextMessageContentSchema)。
ADR-0018: 状态改为 Accepted+implemented,机制段写定 SDK 沙箱,网络决定为开放,
Open Questions 更新。
2026-07-08 13:11:14 +08:00
hongjr03
ce767e9cab
feat(hub): 真实飞书读取 + 状态卡片 + 权限 gate + 部署脚本
...
FeishuRead(ADR-0003): feishuContextTool 从 stub 换成真实 lark
im.v1.message.get(单条 trigger/reply/status_card)+ list(thread 回复);
ADR-0003 chat 授权不变式不变(handler 已 gate)。
StatusCard: sendCard + buildRunStatusCard——完成/出错发 interactive card
(status 文案 + model 选择器 + 取消按钮带 runId),替代纯文本。
Permission(ADR-0004, project-wise): triggerAgent 查 PermissionGrant 对
project 的 edit+ 能力(manage⊇edit 单调);sender open_id 当 principal
(子类型学 OPEN,务实选择,permission.ts 标注);per-artifact OPEN;
settings 组合规则 OPEN。无权限回 '无权限触发'。
Deploy: cph-hub.service systemd unit(ExecStartPre 跑 prisma migrate)+
install_service.sh(idempotent,seed env)+ deploy_platform.sh
(rsync + npm ci + build + restart + healthz)。
client.ts 抽 createLarkClient/startFeishuListenerWithClient,tools 与
ws 共用同一 client。
tsc rc=0;prisma validate 通过;deploy 脚本 bash -n 通过。
2026-07-06 23:44:07 +08:00