Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions .github/workflows/upload.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,15 @@ jobs:
- name: Enable Corepack
run: |
corepack enable
corepack prepare yarn@4.12.0 --activate
corepack prepare yarn@4.18.0 --activate
yarn --version

- uses: calcit-lang/setup-calcit@704b3f5cd6f9ce3bd1e0c926dbdd1d181adb8180 # v1.4.0
with:
tools: calcit,caps

- name: Resolve Calcit dependencies
# Upstream Calcit modules publish prereleases at different cadences.
# caps reports their version skew while selecting the highest requested versions.
# Resolve the declared formal module tags independently of local module exports.
run: caps --ci

- name: Install JavaScript dependencies
Expand All @@ -57,16 +56,18 @@ jobs:
git diff --exit-code -- calcit.cirru

- name: Check Calcit types
run: calcit calcit.cirru --check-only
run: |
calcit calcit.cirru --check-only --all-defs
calcit calcit.cirru fix --workflow strict --verify --format json

- name: Check application dynamic methods
run: calcit calcit.cirru analyze dynamic-methods --format json
run: calcit calcit.cirru analyze weak-types --only dynamic-method --format json

- name: Check deprecated Calcit APIs
run: calcit calcit.cirru analyze deprecated --summary-only
run: calcit calcit.cirru analyze weak-types --only deprecated-call --summary-only

- name: Audit provider dynamic methods
run: calcit calcit.cirru analyze dynamic-methods --deps --format json
run: calcit calcit.cirru analyze weak-types --only dynamic-method --deps --format json

- name: Check Calcit quality baseline
run: calcit calcit.cirru analyze quality --baseline config/calcit-quality.cirru
Expand Down
4 changes: 3 additions & 1 deletion Agents.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 45 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,51 @@ PR 网页预览按 `Termina/msg-buffer/pr/<PR 编号>/<run ID>/<attempt>/` 隔
同仓库 PR 与生产上传需要 `COS_BUCKET`、`COS_SECRET_ID`、`COS_SECRET_KEY`;fork PR 不上传。
服务器继续仅在 main push 部署 `dist/*` 到原路径,本次只更新前端资源配置。

本次是独立 COS/CDN 配置变更,仍使用原 Calcit 0.25.1。正式 0.28 候选已修复本项目的
DOM、存储与同步回调类型问题,但完整门禁仍被已发布依赖阻断,不能据此声称升级完成。
### Calcit 0.30.1 迁移候选(尚未交付)

本分支将 CLI 与 `@calcit/procs` 配对固定为已发布的 `0.30.1-alpha.5`,Calcit 模块改用正式 tag。
0.30.1 正式版的 CLI/npm 配对发布尚未完成,暂不只升级其中一端。

存档格式、模型选择、扩展消息和网页/扩展资源分离的合同不变。DOM 挂载查询改为带明确能力合同的函数,
存档恢复区分具名 Struct 与旧 Map,并检查 Map 的键和值;同步回调明确返回 Unit。
存储读取仍传播宿主异常,不把权限错误静默当作“没有存档”。

Chrome 扩展检测保留可选链语义:普通网页没有 `chrome.runtime` 时返回 false,不要求可选字段实际存在。
挂载后找不到 textarea 时跳过选择,不再解引用空元素;下载仍保留原 EDN MIME、文件名和 object URL 回收。
聊天状态解码保留旧 nil 字段的默认行为;扩展 fill 消息的文本与提交标志则在写入状态前检查类型。

Anthropic 流改为缓存不完整 SSE 行,避免网络拆包时丢失文本,并修正 delta 更新多传 dispatch 参数的问题。
保留 Axios 懒加载、原请求设置、取消信号及异常传播;没有收到 `message_stop` 时不会仅因 EOF 就标记完成。
本地以合成字节流验证 Unicode 拆包、CRLF、末尾未换行及失败传播;不等同于真实模型或生产网络验收。

GenAI 缓存改用 `Option` 标记未初始化状态,保留懒加载和 SDK 实例复用。流响应的可选字段通过已发布
js-ffi 的 object/primitive guard 读取,保留 SDK 文本 getter 与异常传播,不把响应类复制为普通对象。
搜索与 URL 工具仍由原两个开关决定;不再用不透明 JS 数组的 length 证明其类型。

图片返回时若预览节点已移除,将跳过 DOM 写入;替换图片时回收旧 object URL,缓存改为 `Option<String>`。
图片 delta 更新也修正为单参数 dispatch。Imagen 取消参数按已安装 SDK 改为 `abortSignal`;这仅取消客户端操作,
不保证停止服务端生成或计费。请求地址、模型名及原 base64/Blob MIME 行为保持不变。

OpenRouter 与直连 DeepSeek 现在由菜单调用方明确指定提供方,不再根据模型名包含 deepseek 来猜地址。
切换提供方或更换密钥时会重建对应 SDK 客户端;相同地址和密钥仍复用实例,删除密钥后不会继续用旧缓存发请求。
保留原两处目标地址和模型名,不新增密钥持久化或日志;仅完成合成流验收,未调用真实模型服务。

输入框状态改为校验真实具名 Struct,存档和事件字段在进入具体操作前校验;可空 DOM 节点不再直接调用方法。
空存档列表仍显示原提示,修正其列表项层级。状态游标保留 Respo 支持的 Tag/String/Number 混合路径,
流式更新先读取最新状态再合并,保留未变字段,不让旧回调覆盖新内容;非法字段更新会明确失败。
Reel 的开放回调在应用入口校验后进入具名 Store/updater,热更新保留原流程;不改变存档格式或部署路径。

旧 Map 存档先解析为列表,再复用 session/message normalizer;保存后的 EDN Struct 也重新绑定当前具名类型,
避免历史首次可读、刷新后却不能再更新。挂载容器使用发布库的 Element guard,不要求普通 div 具有输入框字段。
合成浏览器回放已覆盖空/非空存档、详情、历史载入,以及消息、输入和搜索开关的保存/刷新恢复。
normalizer 会复用当前 Struct 定义已构造的值,只为反序列化的旧值递归恢复;不增加常驻缓存。
本机 5,000 条合成历史消息夹具中,Store 规范化中位数约 3.3 ms → 0.004 ms;这不是跨设备性能保证。

本地全定义检查 487/487、完整 strict、原有七项测试及新增一项状态/序列化往返回归(合计 8/8)和相对路径资源构建已经通过,规范化建议为零;
原质量基线与原门禁没有放宽。生成代码已回放混合游标、最新状态合并及错误载荷拒绝;三组 SDK 合成流都经过真实 updater。
扩展包已检查本地相对资源、懒加载与原 manifest/脚本约束,但完整应用交互与独立 CI
仍待验收。未调用外部模型服务,未读取真实密钥,未安装扩展或验证实际 Chrome 运行,
不能把构建通过视为升级或功能验收完成。PR 沿用隔离 COS 预览上传;本候选不触发合并、生产部署或发版。

### License

Expand Down
Loading
Loading