Habblaud 开发者指南:从本地测试到发布 Release 的完整工作流

发布时间:2026/11/3 10:22:00

Habblaud 开发者指南:从本地测试到发布 Release 的完整工作流 【免费下载链接】habblaud项目地址https://gitcode.com/gh_mirrors/ha/habblaud点击查看免费下载Habblaud 是一个像素风虚拟办公室把 Claude Code 与 Codex 代理的实时工作状态可视化每个项目是一间办公室每个代理是一个像素小人谁在敲代码、谁在等你审批、谁已经交付一眼就能看到。本文为贡献者整理了一套从本地开发、测试验证到发布 Release 的完整工作流全部命令可直接照抄执行。快速总览Habblaud 开发工作流一图看懂 在动手之前先了解整体流程共 5 步准备环境npm installnpm run dev本地跑起来本地验证npm run typecheck→npm test→npm run build三连演示模式用 Demo 模式和调试工具做可视化验证理解结构知道代码在shared/、server/、client/里各管什么发布 Release改版本号 → 写 CHANGELOG →npm run release一键发布第一步准备开发环境并本地运行 Habblaud环境要求Node.js 22.12与npm项目用 Node 24 开发macOS 或 LinuxDocker 可选用于容器化验证克隆并启动git clone https://gitcode.com/gh_mirrors/ha/habblaud cd habblaud npm install npm run devnpm run dev会同时启动 Node 服务器和带热重载的 Vite 客户端打开http://localhost:4747即可看到办公室。常用开发命令汇总如下均定义在 package.json 中命令作用npm run dev服务器 Vite 热重载跑在 4747 端口npm run dev:client只跑 Vite5173 端口/api自动代理到 4747npm run demo开启演示模式的开发环境npm test运行全部 Vitest 测试npm run typecheck客户端 服务器类型检查npm run build构建生产版本到dist/npm run i18n:check检查未翻译/多余翻译npm install只下载构建工具Vite、TypeScript、tsx 等。Habblaud 服务器本身零运行时依赖只用 Node 内置模块——这也是 Dockerfile 里运行阶段只需拷贝dist/的原因。第二步本地验证三连——typecheck、npm test 与 build在提交 Pull Request 之前CONTRIBUTING.md 要求跑完这三步npm run typecheck # ① 类型检查覆盖 client 与 server 两套 tsconfig npm test # ② 单元测试Vitest 全量运行 npm run build # ③ 生产构建验证打包无误几个值得了解的设计细节测试分布测试文件与源码同目录*.test.tsvitest.config.ts 扫描server/、shared/、client/src/三处环境为 node。CHANGELOG 守护测试server/test/release.test.ts 中有一条特殊测试——如果package.json的版本号在 CHANGELOG.md 里没有对应章节npm test会直接失败。这意味着每次发版必须写 changelog是由测试强制的而不是口头约定。改了文案界面支持葡萄牙语、英语、西班牙语、法语原文为葡萄牙语翻译统一走tr()函数见 shared/i18n.ts跑npm run i18n:check可列出缺失和冗余的翻译。改了 Claude Code 插件mod额外验证claude plugin validate mod/habblaud # 校验插件列出事件与调用 claude plugin test mod/habblaud # 跑插件测试无需会话、账号和网络✅ 三步全绿才建议发起 Pull Request。第三步用演示模式与调试工具做可视化验证改了渲染、动画或世界逻辑光看测试不够。Habblaud 提供了完整的假数据体系不需要真的开着 Claude Code 会话浏览器模拟URL 加?mock1如http://localhost:4747/?mock1纯前端模拟所有代理speed3加速时间sessions6调整模拟会话数。服务端演示npm run demo等价于HABBLAUD_DEMO1启动时即带假代理。时间旅行URL 加?hora21:30直接设定打开时的时刻浏览器控制台还有habblaud.world.debug工具例如habblaud.world.debug.setHour(21)立刻切到夜晚场景无头截图不想开浏览器也能截图scripts/shot.mjs 用 Playwright 驱动隔离的无头 Chromiumnpx playwright-core install chromium-headless-shell # 首次只需一次 node scripts/shot.mjs http://localhost:4747/?mock1speed3 /tmp/habblaud.png --size 1400x900 --wait 4000假时间线npm run demo:timeline离线生成一整天的模拟时间线数据供时光回放功能使用可配--date、--seed等参数见 scripts/demo-timeline.ts。第四步项目结构与关键文件速览Habblaud 是纯 Node 后端 Vite 前端的三层结构改代码前花一分钟定位归属目录职责典型入口shared/前后端共享协议、活动文案、多语言词典shared/types.tsserver/HTTP SSE 服务器读会话、建模办公室、权限/消息 APIserver/index.tsclient/Vite 前端程序化像素美术、Canvas 世界、界面client/src/main.tsscripts/构建、Docker、安装器与发布脚本scripts/release.tsmod/装入 Claude Code 的 mod 与权限/消息插件mod/README.md服务器细节数据源、API 路由表、安全边界都在 server/README.md是排查为什么页面没数据的第一站。前端构建行为产物进dist/client、带 hash 的资源进/bundle/由 vite.config.ts 决定。构建流程npm run build先用 Vite 打客户端再打服务端产物到dist/npm start即node dist/server/index.js。第五步发布 Release——从 CHANGELOG 到 npm run releaseHabblaud 的发布流程被 scripts/release.ts 严格化版本号、changelog 章节、tag 三者的对应关系由脚本自动校验任何一步不齐都发不出去。1. 提升版本号遵循语义化版本npm version minor --no-git-tag-version # 有新功能0.11.0 → 0.12.0 npm version patch --no-git-tag-version # 纯修 bug0.11.0 → 0.11.1只改package.json里的数字不自动打 tagtag 留给发布脚本。2. 写 CHANGELOG 章节CHANGELOG.md 采用 Keep a Changelog 格式。操作要点开发期间改动先记在顶部的## [Não lançado]未发布章节里发版时把该章节标题替换为## [0.12.0] - 2026-XX-XX版本号 日期并在其上方留一个空的## [Não lançado]同步更新文件末尾的版本对比链接。⚠️ 这一步漏掉的话npm test会失败前文提到的守护测试即使侥幸绕过npm run release也会报错CHANGELOG.md 没有该版本章节。3. 合并到 main 并一键发布git checkout main git pull git merge 你的分支 npm test # 合并后再确认全绿 npm run release -- --dry-run # 先干跑只展示将发布的 release notes npm run release # 正式发布需要已登录的 gh CLInpm run release的完整校验链源码见 scripts/release.ts✅package.json版本必须有对应 CHANGELOG 章节且内容非空✅ 必须处于main分支、工作区干净、本地与远端完全同步✅ tagvX.Y.Z不得已存在通过后创建附注 tag → 推送 → 用 CHANGELOG 章节文本作为 notes 创建 Release脚本还会把换行折在 120 列内的长句自动合并保证 release notes 排版完整。发布之后用户如何感知新版服务器内的更新检查器server/updates/checker.ts每 6 小时匿名查询一次 Releases API带 ETag不消耗额度结果缓存在updates.json发现新版本后顶栏版本号位置会变成绿色的New version徽章配合通知提醒用户git pull更新用户跳过检查可设HABBLAUD_UPDATE_CHECK0。发布前检查清单与常见问题 最后过一遍清单避免白忙npm run typecheck、npm test、npm run build全绿改动package.json版本后CHANGELOG 有对应章节且npm test通过视觉类改动附了截图/GIF建议用?mock1演示模式截取不含真实数据当前在main、工作区干净、gh已登录先用--dry-run预览过 release notes常见问题问题处理Port 4747 is already in use另一个 Habblaud 实例在跑npm run docker:down或HABBLAUD_PORT4848 npm start换端口release 报tag 已存在说明版本号没升npm version patch/minor --no-git-tag-version后再发插件改动测试不通过用claude plugin test mod/路径定位是哪个插件habblaud/habblaud-permissoes/habblaud-mensagens总结把每次发版变成肌肉记忆Habblaud 的贡献闭环可以浓缩成一条命令链npm run dev # 跑起来 npm run typecheck npm test npm run build # 验证 # …写 changelog、提 PR、合并… npm version minor --no-git-tag-version npm run release # 发布工作流细节参考 CONTRIBUTING.md 与 server/README.md。祝你在像素办公室里开发愉快 赞分享【免费下载链接】habblaud项目地址https://gitcode.com/gh_mirrors/ha/habblaud点击查看免费下载相关推荐OpenHuman 开发者指南从源码构建、测试到发布的完整工作流OpenHuman 开发者指南从源码构建、测试到发布的完整工作流 OpenHuman 是一个面向 Mac、Windows、Linux 的开源个人 AI 桌面应人工智能AI Agent多智能体Agent 编排工具调用桌面应用SDRPlusPlus SDR接收软件快速上手5分钟装好收到你的第一个信号SDRPlusPlus SDR接收软件快速上手5分钟装好收到你的第一个信号 SDRPlusPlus原名 SDR是一款跨平台、开源的 SDR软件定义桌面应用音频处理智能硬件Vite 贡献者开发指南从本地搭建、测试体系到发布流程的完整工程实践Vite 贡献者开发指南从本地搭建、测试体系到发布流程的完整工程实践 本文基于 Vite 仓库根目录的 CONTRIBUTING.md https://lin前端前端构建开发工具上一篇InternVL2_5-38B-MPO项目概览MPO偏好优化加持的38B开源多模态大模型为什么值得你上手下一篇如何5分钟装好zhengxi-views覆盖Claude Code与WorkBuddy的完整安装教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/3 10:22:00

AutoHotkey 鼠标宏实战:快速写出第一个点击连招脚本

AutoHotkey 鼠标宏实战:快速写出第一个点击连招脚本 【免费下载链接】AutoHotkey AutoHotkey - macro-creation and automation-oriented scripting utility for Windows. 项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey AutoHotkey 是一款面向 Wi…

2026/11/3 10:22:00

三步装好 Folia:第一次打开就铺满全屏歌词

三步装好 Folia:第一次打开就铺满全屏歌词 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 是一款以全屏歌词动画为招牌的播放…

2026/11/3 11:22:40

抽象类在面向对象编程中的核心应用与实践

1. 抽象类:面向对象编程的进阶利器 第一次接触抽象类时,我正试图重构一个电商系统的支付模块。当时系统里有微信支付、支付宝支付和银联支付三种实现,每个支付类都有自己独特的处理逻辑,但对外又需要保持统一的调用接口。正是在这…

2026/11/3 11:22:40

MATLAB数值分析实战:样条插值、重积分外推与ODE求解

简介:一份围绕数值分析课程上机作业整理的 docx 文档,面向正在学习数值分析、需要完成 MATLAB 编程实验的本科生与研究生。内容以三次样条插值函数、重积分计算和常微分方程初值问题数值解三条主线展开:既给出第一型三次样条通用程序的构造思…

2026/11/3 11:22:40

SQL Server 2019安装配置与性能优化指南

1. SQL Server 2019概述与下载准备 SQL Server 2019作为微软推出的旗舰级关系型数据库管理系统,在性能、安全性和AI集成方面都有显著提升。根据实际项目需求选择合适的版本是安装前的关键决策。目前主要提供以下版本选择: Developer版 :功能…

2026/11/3 11:22:40

HarmonyOS弹簧动效实现与优化指南

1. 项目背景与核心价值 在HarmonyOS应用开发中,动效设计是提升用户体验的关键环节。弹簧拉伸回缩动效作为一种常见的物理模拟效果,能够赋予界面元素更自然的交互反馈。这种效果模拟了真实世界中弹簧的物理特性,当用户拖拽组件释放后&#xff…

2026/11/3 11:22:40

跨境电商如何应对美国TRO商标侵权诉讼

1. 跨境电商法律风险现状解析最近两年,跨境电商卖家群体中出现了一个令人担忧的现象:美国商标侵权诉讼(TRO)案件数量激增,而90%以上的案件最终以和解收场。这个数字背后反映的是中小卖家面对跨国法律纠纷时的普遍困境—…

2026/11/3 11:17:37

35岁测试工程师转型指南:技术升级与职业突破

1. 35岁软件测试工程师的职场困境解析 35岁对于软件测试从业者而言,往往是一个关键的分水岭。在这个阶段,我们通常会面临三个维度的职业挑战: 首先是技术迭代带来的压力。随着DevOps和持续测试的普及,传统的功能测试岗位需求正在…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑