@forsion/extend 0.9.4 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +14 -0
- package/SIGNATURE +10 -8
- package/dist/desktop.mjs +46 -35
- package/dist/main.js +224 -50
- package/manifest.json +2 -2
- package/package.json +3 -1
- package/tangu-plugins/store-update/dist/index.mjs +2 -0
- package/tangu-plugins/store-update/tangu-plugin.json +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## 0.9.6 — 2026-11-02
|
|
4
|
+
|
|
5
|
+
- 新增活动中心:签到、任务、小游戏和公告都在一个面板里,左边选活动,右边看奖励、进度和结束时间,可以直接签到、领取。Ribbon 上的礼物图标有可领奖励或新活动时亮红点,当前没有活动时不显示;⌘K 搜「活动」随时能打开。手机上是一页完整列表。
|
|
6
|
+
- 活动由官方在后台发布,同一时间可以有多个,奖励发到账户或背包。
|
|
7
|
+
- Amadeus 协作共享:可以把关联的页面一起共享,邀请链接直接打开文件;新增「我共享的」和共享与发布总览。走出页面目录的相对引用也能按共享绑定找回文件。
|
|
8
|
+
- 云同步更稳:单个二进制文件上传、下载失败或卡住时不再拖住笔记同步,也不会让引擎显示离线;1 MiB 以上文件的合并基线会保留,删掉的行不再回来。
|
|
9
|
+
- 需要 Forsion 2.13.8-beta.3 或更高版本。
|
|
10
|
+
|
|
11
|
+
- New Events center: check-ins, tasks, mini games and announcements in one panel. Pick an event on the left and see its rewards, progress and end time on the right, then check in or claim right there. The gift icon on the Ribbon shows a red dot when a reward or new event is waiting, and stays hidden when nothing is running; search "Events" in ⌘K to open it any time. On phones it is a full-page list.
|
|
12
|
+
- Events are published by Forsion from the admin console. Several can run at once, and rewards go to your account or backpack.
|
|
13
|
+
- Amadeus sharing: share linked pages together, and invite links open the file directly. New Shared by me and a sharing and publishing overview. Relative references that leave a page's folder now find their files through the share binding.
|
|
14
|
+
- Steadier cloud sync: a failed or stuck upload or download of one binary file no longer holds up note sync or takes the engine offline. Merge baselines for files over 1 MiB are kept, so deleted rows stay deleted.
|
|
15
|
+
- Needs Forsion 2.13.8-beta.3 or later.
|
|
16
|
+
|
|
17
|
+
## 0.9.5 — 2026-10-27
|
|
18
|
+
|
|
19
|
+
- Tangu 可以替你提交自己投稿的商店更新:说一句「我在 GitHub 上发了 v1.1.0,把商店更新也提交了」,Tangu 先检查读到的新版本,再弹审批卡请你确认,确认后送审。GitHub / npm 来源可申请新版本,任何来源都可以改商店信息;ZIP 包仍在投稿页上传。每次提交都要你本人批准,自动任务里不会提交。
|
|
20
|
+
- 提交后对话里显示一张「商店更新」卡片:待审核、已通过或没通过(附审核意见),打开时读一次最新状态;可直接跳到投稿页里的这一条。
|
|
21
|
+
- 需要支持官方插件云端接缝的 Tangu 引擎;旧引擎上这两个工具不出现,其余功能不受影响。
|
|
22
|
+
|
|
23
|
+
- Tangu can submit Store updates for your own submissions: say "I published v1.1.0 on GitHub, submit the Store update" and Tangu checks the new version it finds, asks you on an approval card, then sends it to review. GitHub and npm items can request a new version, and any item can change its store info; ZIP packages are still uploaded on the Submissions page. You approve every submission yourself, and automated runs never submit.
|
|
24
|
+
- After submitting, the chat shows a Store update card: in review, approved, or not approved (with the review note). It reads the latest state each time it is shown and can open that item on the Submissions page.
|
|
25
|
+
- Needs a Tangu engine that offers the official-plugin cloud seam; on older engines the two tools do not appear and everything else works as before.
|
|
26
|
+
|
|
3
27
|
## 0.9.4 — 2026-10-24
|
|
4
28
|
|
|
5
29
|
- 插件投稿改成左右分栏:左边是你的投稿,右边看版本、商店信息和历史。上传 ZIP 后先由云端检查并列出读到的版本、图标和说明,确认后再提交;GitHub / npm 来源可以检查上游新版本并申请更新;只改商店信息不用重新上传包。版本号一律从包里或上游读取,不用手填。
|
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ Forsion Extend 是 Forsion 桌面端内置的扩展,负责和你的 Forsion
|
|
|
20
20
|
- **笔记云同步与协作**:云端笔记库、按条目同步、与我共享,以及页面分享、发布和在线成员。
|
|
21
21
|
- **设备互联**:让你的其他设备经 Forsion 云端连上这台电脑;账号下的设备可以查看、改名、换图标、移除,或在浏览器中打开。
|
|
22
22
|
- **Forsion Connect**:把 Coding Space 里的项目发布成网页、申请上架商店;预览项目时也能用上 Forsion 的 AI。「Forsion 云端 → 我的网页」列出你发布过的所有网页(包括让 Tangu 发的),桌面、网页和手机上都能复制链接、下线、申请上架或撤回。
|
|
23
|
+
- **让 Tangu 提交商店更新**(0.9.5,需要较新的 Tangu 引擎;旧引擎上不出现):在对话里说「我在 GitHub 上发了 v1.1.0,把商店更新也提交了」,Tangu 先检查读到的新版本,再弹审批卡请你确认,确认后送审;也可以只改商店信息。只能更新你自己的投稿,ZIP 包仍在投稿页上传。提交后对话里有一张「商店更新」卡片,显示待审核、已通过或没通过(附审核意见)。可以在「设置 → 插件」的引擎插件里关掉。
|
|
23
24
|
- **诊断数据**(可选,默认关闭):在「Forsion 云端 → 账号」里打开后,这台电脑会定期上传一份 Forsion 信息快照到你的账号,帮助 Forsion 团队排查问题、改进产品;多久上传一次由 Forsion 团队设定(默认每天一次,也可以只在需要时采集)。包含应用与系统版本、这台电脑的内存与磁盘余量、模型与语音的选择、后台 Agent 与插件设置里的开关和数值、MCP 服务与消息通道的名字、Agent 与团队的配置(描述与提示词只记长度)、已安装的插件与技能名单,以及最近 7 天的运行记录(每次运行的状态和报错原因,模型调用与工具的用量、耗时,引擎最近的运行日志;不带对话内容和工具读写的内容)。会话内容(这台电脑上的对话文字、思考过程和工具名,含团队成员、讨论、委派在后台做的那部分;不含工具读写的内容和附件本身,消息里出现的文件名、Agent 在回复里复述的笔记或文件内容会在其中;常见格式的密钥会遮掉,其余原样上传)与活动日志各有一个开关,可以先关掉再打开上传;这两项每次只上传还没上传过的部分,最多往前 7 天。Agent 的人设、记忆与进化记录(每个 Agent 的人设和配置里的描述与开发者指令、记忆和记忆候选、进化记录、写给你的协作说明、最近 7 天的日志和记忆整理记录、项目记忆,以及团队的设定和你的用户画像;每次上传它们当前的内容,很长的会截断,常见格式的密钥会遮掉,其余原样上传)也有一个开关,同样可以先关掉。保存在这台电脑上的登录凭据与 API 密钥、笔记文件、Agent 的资料库、插件数据不会上传。
|
|
24
25
|
|
|
25
26
|
## 设置在哪里
|
|
@@ -50,6 +51,7 @@ Forsion Extend is built into Forsion Desktop and takes care of everything to do
|
|
|
50
51
|
- **Note sync and collaboration**: the cloud vault, per-item sync, shared with me, and page sharing, publishing and presence.
|
|
51
52
|
- **Device connectivity**: let your other devices reach this computer through the Forsion cloud, and view, rename, change the icon of, remove or open in your browser the devices on your account.
|
|
52
53
|
- **Forsion Connect**: publish Coding Space projects as web pages and apply for a store listing; project previews can use Forsion's AI too. Forsion Cloud → My web pages lists every page you have published (including the ones Tangu published for you); on desktop, web and mobile you can copy a link, take a page down, or apply for or withdraw a store listing.
|
|
54
|
+
- **Tangu submits Store updates** (0.9.5, needs a newer Tangu engine; it doesn't appear on older ones): say "I published v1.1.0 on GitHub, submit the Store update" and Tangu checks the new version it finds, asks you on an approval card, then sends it to review. It can also change just the store info. Only your own submissions can be updated, and ZIP packages are still uploaded on the Submissions page. After submitting, a Store update card in the chat shows whether it is in review, approved, or not approved (with the review note). Turn it off among the engine plugins in Settings → Plugins.
|
|
53
55
|
- **Diagnostic data** (optional, off by default): when you turn it on under Forsion Cloud → Account, this computer periodically uploads a snapshot of its Forsion setup to your account to help the Forsion team troubleshoot problems and improve the product; the Forsion team sets how often (once a day by default, or only when a snapshot is needed). It covers app and system versions, this computer's free memory and disk space, your model and voice choices, the switches and numeric values in background agent and plugin settings, the names of MCP servers and message channels, agent and team configuration (descriptions and prompts by length only), the list of installed plugins and skills, and run records from the last 7 days (each run's status and error reason, usage and timing of model calls and tools, and the engine's recent log output; no conversation text and nothing those tools read or wrote). Conversations (the text of conversations on this computer, the agent's reasoning and tool names, including the background work of team members, discussions and delegated tasks; without what the tools read or wrote and without the attachments themselves, though file names that appear in messages and anything the agent repeated from your notes or files are included; keys in common formats are masked, everything else is uploaded as is) and the activity log each have their own switch, which you can turn off before you turn uploads on; each upload only includes the part of these two that hasn't been uploaded yet, going back at most 7 days. Agent personas, memory and evolution records (each agent's persona with the description and developer instructions in its configuration, its memory and memory candidates, its evolution record, its collaboration notes for you, the last 7 days of its logs and memory-consolidation activity, project memory, your teams' charters, and your user profile; each upload carries their current content, with very long ones cut short, keys in common formats masked and everything else as is) have a switch of their own, which you can also turn off first. The sign-in credentials and API keys saved on this computer, your note files, agent libraries, and plugin data are never uploaded.
|
|
54
56
|
|
|
55
57
|
## Where to find it
|
|
@@ -95,3 +97,15 @@ The Web entry and native mobile reuse Extend's account pages, membership and poi
|
|
|
95
97
|
With the matching Genesis host and Server, Penzor Cloud provides per-folder bidirectional rules. The deepest path wins; destinations are the default `/Forsion/`, a device directory, or off. Scope changes require a fresh preview. Old destinations are retained; newly selected scopes reconcile before any deletion, and unavailable roots stop reconciliation. Stable directory identities carry renames. Database rows use the host merger, ordinary conflicts retain both versions, and transfers show actual byte progress. `human/CALENDAR.db` remains the shared default calendar. Older hosts keep their original sync page.
|
|
96
98
|
|
|
97
99
|
Validation: `npm test` and `npm run typecheck`. The filesystem/HTTP two-client suite is `test/vitest/contentSync.test.ts`; renderer acceptance is `test/vitest/renderer/contentRules.test.tsx`. Real desktop acceptance: Genesis `EXTEND_PKG=<built Extend checkout> npm run e2e:contentsync` under the repository devlock.
|
|
100
|
+
|
|
101
|
+
### 同步提交与凭据续期 / Sync commits and credential refresh
|
|
102
|
+
|
|
103
|
+
Amadeus 入站拉取和三方合并通过 `CoreHost.compareAndReplace` 提交。桌面实现复用 Genesis 的 `contentSync.withWriteLock`,在与编辑器相同的锁内复查目标字节和会话条件;不匹配时保留本地编辑并重新对账。旧宿主缺少这把共享锁时,入站覆盖会明确失败并保持可重试状态,不能退回无锁替换。该保证针对遵循宿主写锁协议的写入,不承诺与任意外部程序之间的文件系统级 CAS。
|
|
104
|
+
|
|
105
|
+
REST 请求和 SSE 重连读取当前同账号令牌;旧令牌 401 的完整正文返回后若凭据已续期,REST 最多重试一次。换账号或退出登录时拒绝继续使用旧会话。未完成上传的节点身份先写入本地日志;仅本机创建且服务端确认无内容的节点可被取消,已上传但响应丢失的内容会重新下载保留。
|
|
106
|
+
|
|
107
|
+
Amadeus downloads and merges commit through `CoreHost.compareAndReplace`. The desktop adapter uses Genesis's `contentSync.withWriteLock` to verify target bytes and session guards under the editor's lock. A mismatch retains local edits and reconciles again. Older hosts without that shared lock reject inbound replacement with a retryable error; they never fall back to an unguarded overwrite. This protects writers participating in the host lock protocol, not arbitrary external processes.
|
|
108
|
+
|
|
109
|
+
REST requests and SSE reconnects read current credentials for the same account. An old-token 401 can retry once after its complete body arrives if credentials have refreshed; account changes and sign-out reject the old session. Pending node identities are journaled before creation. Cancellation applies only to this device's unpopulated nodes; content uploaded before a lost response is downloaded and preserved.
|
|
110
|
+
|
|
111
|
+
验证 / Validation: `npx vitest run test/vitest/engine.localCas.test.ts test/vitest/tokenRefresh.test.ts test/vitest/contentSync.test.ts`; `npm run typecheck`; `npm run check:core`. These tests use real temporary files and controlled local/fixture transports, without production accounts or storage.
|
package/SIGNATURE
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"alg": "ed25519",
|
|
3
3
|
"files": {
|
|
4
|
-
"CHANGELOG.md": "
|
|
4
|
+
"CHANGELOG.md": "0f9b9f3750085e3f1dbf3de4d72df15c66905a047db661f26fbb881aa46a6e35",
|
|
5
5
|
"LICENSE": "5594544ee08011ed5785ee26410f1f2ef005f66e9283833e8d435e34c10de1ed",
|
|
6
|
-
"README.md": "
|
|
6
|
+
"README.md": "a9b52eb0d8cdf09fe55845be5df57549e6f72de327ca579093955d0039545bd7",
|
|
7
7
|
"dist/THIRD_PARTY_NOTICES.md": "0af426bcae1e6cd82d3f6255768ac232eea116c7079706ae237d2f1f494531b4",
|
|
8
|
-
"dist/desktop.mjs": "
|
|
9
|
-
"dist/main.js": "
|
|
10
|
-
"manifest.json": "
|
|
11
|
-
"package.json": "
|
|
8
|
+
"dist/desktop.mjs": "ec90d454cbf25b16ce76dcea3d49a42469d73acd61656edaaa7bff5ff1f7ddb1",
|
|
9
|
+
"dist/main.js": "1abaacbbecfd2a0705fc0dc451e79b1814f29e197bdab791d6cf22f52f078c02",
|
|
10
|
+
"manifest.json": "958946ccf10681a500e159e1e3363e3ee5f76c1bd5bf50a525b502af30a5828c",
|
|
11
|
+
"package.json": "846b59f685d6c77d44d954450af0adbc4d2fbd46d7f8fdd5cd998683bd2a3174",
|
|
12
12
|
"spaces/guide/space.json": "7da9fb9373278e9e1f75c65f697a21f25b0b45792def0ce94ed5e7f6473979b1",
|
|
13
13
|
"spaces/penzor/icon.svg": "3c212d9f121ae54a0a84042c19ff5573e22cb236718ae4de11fc3c19f0c3b634",
|
|
14
|
-
"spaces/penzor/space.json": "a3b6c4d86c54dca38b24d3efe352fed860ce7accc934f9f160600ff65ed4f0e6"
|
|
14
|
+
"spaces/penzor/space.json": "a3b6c4d86c54dca38b24d3efe352fed860ce7accc934f9f160600ff65ed4f0e6",
|
|
15
|
+
"tangu-plugins/store-update/dist/index.mjs": "d8f531b7d6acf5d6369ac4d2383ec33b2b615a283d56b0087b467a123ac3bb8d",
|
|
16
|
+
"tangu-plugins/store-update/tangu-plugin.json": "a99e71329e705793eec46d9e8d4b790017136c328f670161cd4d57e49ee4dd0a"
|
|
15
17
|
},
|
|
16
|
-
"sig": "
|
|
18
|
+
"sig": "5pTrp2n8kLXpvsOkA3GZtG+gDhanXS26cJPbqfIS53A57kcAm9WuAwroky5DNnNgUo0VX/98FT14eZqSAKbtBA=="
|
|
17
19
|
}
|