@goodfish/jarvy 0.8.0 → 0.10.0
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 +60 -0
- package/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/dist/server/cli.js +3974 -3091
- package/dist/web/assets/index-4qw6VTNA.js +603 -0
- package/dist/web/assets/index-BoYSS3TL.css +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/skills/dev-team/SKILL.md +1 -1
- package/dist/web/assets/index-Cl_aFSP0.js +0 -594
- package/dist/web/assets/index-CxbCVrx3.css +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,66 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Jarvy. Versions follow [semantic versioning](https://semver.org/) as used before 1.0: a patch release only fixes bugs; a minor release adds features or upgrades the database.
|
|
4
4
|
|
|
5
|
+
## 0.10.0 — 2026-10-29
|
|
6
|
+
|
|
7
|
+
Upgrading moves the database from schema v25 to v29 on first start: the inbox gets a category for each delivery (v26), SSH machines get a description (v27), attachment contents move out of the database into files under `attachments/` in the data directory, after which the database is compacted (v28), and every Bot's default environment becomes its own sandbox (v29). A start interrupted midway finishes the job on the next start. Read **Before you upgrade** first.
|
|
8
|
+
|
|
9
|
+
### Before you upgrade
|
|
10
|
+
|
|
11
|
+
- **Bots no longer work on your computer by default.** The computer running Jarvy stops being a work environment of its own: the upgrade removes it and what was granted on it, and a Bot that was working there is back in its own sandbox. For Bots to keep working on this computer, add it under Settings → Environments → Add machine as an SSH machine (address 127.0.0.1 and your user; the computer needs an SSH server running) and turn it on in their Bot info. Adding it on 0.9.0, before upgrading, keeps their work going.
|
|
12
|
+
- **Without Docker, Bots have no file and command tools.** A Bot's sandbox needs Docker. Where there is none, a Bot still runs and chats, but `bash`, `read`, `write` and `edit` report that Docker is missing until Docker is installed and Jarvy restarted, or the Bot switches to an SSH machine.
|
|
13
|
+
- **Back up the whole data directory.** Attachments are files now, so a copy of `jarvy.db` alone no longer holds them.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Every Bot works on a computer of its own.** A new Bot gets its own Docker sandbox, which is its default; a Bot without one gets it at the next start. Bot info shows the sandbox (state, container, image, workspace mount; start, stop and reset) and the external environments the Bot may use, or Add machine when there are none. Every Bot's prompt now says the same: its files are on its own machine, other members can't reach its files, addresses or anything it starts there, and files go to them as attachments.
|
|
18
|
+
- **Attachments up to 4 GB**, up to five per message, for people and Bots alike. Uploads show their progress and can be cancelled; downloads stream and resume. A Bot's files move in 4 MB pieces, to and from SSH machines too.
|
|
19
|
+
- **A Bot reads a chat's notice before it sends there.** Being told that a notice has a new version no longer counts as reading it, and when a Bot's context is compacted it has to read again. Until it has read a channel's notice, or in a thread the thread's summary and its channel's notice, each batch reminds it and a message, card or request it sends there is refused with what to read. `chats.info` on a thread also returns its channel's notice. Direct messages and people are not checked.
|
|
20
|
+
- **Reset models** for a built-in model connection, in Settings → Models: it first shows what will happen (models restored to their defaults, models removed and the Bots that use them), then does it in one step.
|
|
21
|
+
- **Machine descriptions.** An SSH machine can have a description of up to 2000 characters, which Bots read in `environments.list`.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **Machine settings in three parts**: the machine (name, start directory and description), how Jarvy reaches it (fingerprints and login), and the Bots that may use it, shown as tags that can be removed. The add form takes the page's full width. Secrets show their Bots as tags too.
|
|
26
|
+
- **A new Bot's setup asks only for its model**: there is no default environment to choose. The agent Bot's `bots.create` has no `environment` any more.
|
|
27
|
+
- **The model catalog is checked every 4 hours** while Jarvy runs, and when a connection is opened if a check is due, not only at start. A model saved from the catalog keeps the address its entry gives.
|
|
28
|
+
- **Notices about no chat stay out of DMs.** The agent Bot's welcome, a change to a Bot's settings and a due task reach the Bot without opening or using a DM.
|
|
29
|
+
- **API**: `PUT /bots/:id/environment` takes only `{machineId, granted}` (`home` and `hostGranted` are gone), and `POST /bots` takes no `environment`. An upload over 4 GB is refused with 413.
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- Models that only pi.dev's catalog lists, such as Kimi K3.1 Pro on Kimi Coding, take their compatibility settings from the catalog, so their requests are in the provider's format.
|
|
34
|
+
- On a phone, the Settings header fits its six sections: the title stays on one line, the tabs scroll on their own and none of them sits under the close button.
|
|
35
|
+
|
|
36
|
+
### Known limits
|
|
37
|
+
|
|
38
|
+
- On an SSH machine, `write` and `edit` fail for a path that exists on the machine running Jarvy but that Jarvy's user can't read there. `bash` still works there. This waits on a fix in Pi, the agent library Jarvy uses.
|
|
39
|
+
- A service a Bot starts in its sandbox can't be reached by other members or from the browser. Results go to them as attachments.
|
|
40
|
+
|
|
41
|
+
## 0.9.0 — 2026-10-23
|
|
42
|
+
|
|
43
|
+
Upgrading moves the database from schema v23 to v25 on first start. Each step adds one column and rewrites no rows: `environments.password` holds the sealed password of an SSH machine that refuses keys (v24), and `messages.folded_at` marks a folded message (v25). A v25 database cannot be opened by 0.8.0; keep a copy if you may need to go back.
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- **SSH machines with either a password or a key.** A machine that only takes passwords can now be added. Jarvy still installs its key with the password. When the machine refuses keys, the password is kept sealed under the master key and used to log in. In the machine's details you can update the password, or switch to key login once keys are allowed; the saved password is then deleted. A machine that only takes keys can be added without a password: choose Public key, add the line Jarvy shows to `~/.ssh/authorized_keys`, then verify. A Bot's machine request card offers both. Each machine's details show Jarvy's public key with a copy button. Errors now tell a wrong password from a machine that takes no passwords and from a key that wasn't accepted. (A59)
|
|
48
|
+
- **Long and folded messages.** Message text longer than 12 lines shows its start with Show all. Any message can be folded to one line from its hover actions; a folded message shows the start of its text and a quiet "Folded", and the same action unfolds it. Folding stays after a reload and on other devices. It only changes what you see: Bots read the message as before and are not told. (A60)
|
|
49
|
+
- **Dates in chats.** Channels, threads and DMs show a divider for each day: Today, Yesterday, or the date. In DMs, the first bubble of a group shows its time. Hovering any time shows the full date, and a thread's last reply shows the date when it isn't today.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- **The @ list in a thread puts the people in it first**, under "In this thread": the root's author, whoever replied, and whoever was @-mentioned there. The rest of the channel follows under "Others in the channel".
|
|
54
|
+
- **A Bot can search only its own messages** with `messages.search {mine: true}`, and its prompt now tells it how to recall past work: find its own message, then read the History around that turn.
|
|
55
|
+
- **Less secondary text in the interface.** Subtitles, page descriptions and second lines that repeat what a heading or the layout already says are gone. A second line stays only for warnings, side effects, limits and steps.
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- The model menu in Bot info scrolls with the mouse wheel and by touch.
|
|
60
|
+
|
|
61
|
+
### Known limits
|
|
62
|
+
|
|
63
|
+
- On an SSH machine, `write` and `edit` fail for a path that exists on the machine running Jarvy but that Jarvy's user can't read there. `bash` still works there. This waits on a fix in Pi, the agent library Jarvy uses.
|
|
64
|
+
|
|
5
65
|
## 0.8.0 — 2026-10-22
|
|
6
66
|
|
|
7
67
|
Upgrading moves the database from schema v21 to v23 on first start: the environments table is rebuilt to hold SSH machines, with their sealed keys and host keys (v22), and scheduled tasks get a table of their own while the inbox table is rebuilt with all its rows (v23). A v23 database cannot be opened by 0.7.0; keep a copy if you may need to go back.
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ The interface comes in English and Chinese, following your browser's language; s
|
|
|
34
34
|
|
|
35
35
|
**Watch it work.** In a DM, the Bot's block cat acts out its turn as it happens: it thinks, reads, types and turns to you, and a dialogue beside it shows what it is thinking, muttering and sending, and each tool it runs. Click the dialogue to see every step.
|
|
36
36
|
|
|
37
|
-
**Each Bot in its own sandbox.** With Docker installed, a Bot can work in a Linux container only it uses, with Node, Python, git, build tools and Playwright with its browsers, and it can install whatever else it needs. Its workspace is its home there and outlives a reset.
|
|
37
|
+
**Each Bot in its own sandbox.** With Docker installed, a Bot can work in a Linux container only it uses, with Node, Python, git, build tools and Playwright with its browsers, and it can install whatever else it needs. Its workspace is its home there and outlives a reset. Other machines, your computer among them, are added in Settings › Environments and reached over SSH; you choose in Bot info which Bots may switch to each.
|
|
38
38
|
|
|
39
39
|
**An agent Bot that runs Jarvy for you.** Jarvy, the first Bot, wears a crown. Tell it what you want to get done and it builds the team: it creates Bots, writes their personas and picks their models. Later it starts and stops them, checks their usage and clears things away. Anything it deletes waits for your confirmation on a card.
|
|
40
40
|
|
|
@@ -103,7 +103,7 @@ Jarvy is not an internet service.
|
|
|
103
103
|
|
|
104
104
|
- It listens on `127.0.0.1` by default. With `--host 0.0.0.0` (or any address other devices can reach) it serves HTTPS with a certificate it makes itself, and sends plain HTTP from other machines to HTTPS. Install that certificate once on each device (Settings → Network), or accept the browser's warning once. Plain HTTP from other machines can be allowed there; the page then warns that passwords, API keys and conversations cross the network unencrypted.
|
|
105
105
|
- Model API keys, secrets (Settings → Secrets) and the certificate keys are encrypted with a master key kept outside the data directory, in `~/.config/jarvy/` (mode `0600`). Back that file up together with the data directory: without it they can't be decrypted. Bots that work on your computer run as your user and could read it; sandboxed Bots can't. The data directory is created with mode `0700` and the database with `0600`.
|
|
106
|
-
- A Bot works
|
|
106
|
+
- A Bot works in its own sandbox, a Docker container that sees only its workspace and runs with your user and group ids, and on the machines you let it use, where it runs `bash` as the user it logs in as and reaches everything that user can. Being able to use Docker is equivalent to root on this machine.
|
|
107
107
|
|
|
108
108
|
## License
|
|
109
109
|
|
package/README.zh-CN.md
CHANGED
|
@@ -34,7 +34,7 @@ Jarvy 在本地运行,只有一个用户。账号、Bot、聊天、文件和
|
|
|
34
34
|
|
|
35
35
|
**看着它干活。** 在私信里,Bot 的方块猫会实时演出它正在做的事:思考、读文件、敲键盘、转过来跟你说话。旁边的对话框显示它在想什么、在自言自语什么、发了什么消息,以及调用的每个工具。点开对话框能看到这一轮的每一步。
|
|
36
36
|
|
|
37
|
-
**每个 Bot 有自己的沙箱。** 装了 Docker,Bot 就可以在只属于它的 Linux 容器里干活,里面有 Node、Python、git、编译工具和带浏览器的 Playwright
|
|
37
|
+
**每个 Bot 有自己的沙箱。** 装了 Docker,Bot 就可以在只属于它的 Linux 容器里干活,里面有 Node、Python、git、编译工具和带浏览器的 Playwright,缺什么它可以自己装。它的工作区就是它在里面的主目录,重置也不会丢。其他机器(包括你的电脑)在「设置 › 工作环境」里添加,通过 SSH 连接;哪些 Bot 可以切换过去,在 Bot 信息里设置。
|
|
38
38
|
|
|
39
39
|
**主 Bot 替你打理 Jarvy。** 第一个 Bot Jarvy 戴着皇冠。告诉它你想做什么,它就帮你组好团队:创建 Bot、写好 Persona、选好模型。之后启停 Bot、查用量、清理不用的东西也找它。它要删除任何东西,都会先弹卡片等你确认。
|
|
40
40
|
|
|
@@ -103,7 +103,7 @@ Jarvy 不是面向互联网的服务。
|
|
|
103
103
|
|
|
104
104
|
- 默认只监听 `127.0.0.1`。用 `--host 0.0.0.0`(或其他设备能访问到的地址)时,Jarvy 用自己生成的证书提供 HTTPS,其他机器的明文 HTTP 请求会跳转到 HTTPS。在每台设备上装一次这个证书(设置 → 网络),或者在浏览器的警告页上继续访问一次。那里也可以允许其他机器用明文 HTTP 访问,这时页面会提示密码、API Key 和对话内容以明文经过网络。
|
|
105
105
|
- 模型 API Key、密钥(设置 → 密钥)和证书私钥都用主密钥加密,主密钥保存在数据目录之外的 `~/.config/jarvy/`(权限 `0600`)。备份时请把它和数据目录一起保留,否则这些内容无法解密。在你的电脑上工作的 Bot 以你的用户运行,能读到它;沙箱里的 Bot 读不到。数据目录权限是 `0700`,数据库文件是 `0600`。
|
|
106
|
-
- Bot
|
|
106
|
+
- Bot 在自己的沙箱里干活(一个只看得到它工作区的 Docker 容器,用你的用户和组 ID 运行),也可以在你允许的机器上以登录用户的身份运行 `bash`,那个用户能碰到的它都能碰到。能使用 Docker 就等于拥有这台机器的 root 权限。
|
|
107
107
|
|
|
108
108
|
## 许可证
|
|
109
109
|
|