@geminixiang/mikan 1.0.0-beta.96 → 1.0.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 +7 -50
- package/README.md +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,9 +6,13 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/
|
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
|
7
7
|
from 1.0.0 on. The package interface is the root export of `@geminixiang/mikan`; the
|
|
8
8
|
CLI, `settings.json`, `mikan.env`, and the state layout under `~/.mikan` are covered too.
|
|
9
|
+
The GitHub adapter is experimental and excluded: its settings and conversation layout may
|
|
10
|
+
change in a minor release.
|
|
9
11
|
|
|
10
12
|
## [Unreleased]
|
|
11
13
|
|
|
14
|
+
## [1.0.0] - 2026-10-06
|
|
15
|
+
|
|
12
16
|
1.0.0 is the first stable release. It replaces the 0.5.3 runtime, which ran on
|
|
13
17
|
`pi-coding-agent`, with mikan's own harness on `pi-durable` and `pi-ai`, and gives every
|
|
14
18
|
conversation its own office. The 97 `1.0.0-beta.*` prereleases are summarized here; their
|
|
@@ -29,9 +33,10 @@ deployment guide, which lists what migrates, what does not, and what to check af
|
|
|
29
33
|
(`v1-<platform>-<readable-id>-<hash>`) so two platforms never collide on one raw id. Offices
|
|
30
34
|
are public or private, following the Slack conversation type, and `image:*` sandboxes enforce
|
|
31
35
|
it: a private office sees only itself plus shared knowledge. `mikan office list` prints them.
|
|
32
|
-
- **GitHub adapter.** A regular GitHub account, bound with a fine-grained token and an
|
|
36
|
+
- **GitHub adapter (experimental).** A regular GitHub account, bound with a fine-grained token and an
|
|
33
37
|
organization webhook, answers mentions, assignments, and review requests; each issue or pull
|
|
34
|
-
request is one conversation.
|
|
38
|
+
request is one conversation. Its settings and conversation layout may change in a minor
|
|
39
|
+
release, and conversations from this version may not carry over.
|
|
35
40
|
- **Durable sessions.** Each office keeps its sessions in one SQLite database (`sessions.db`)
|
|
36
41
|
through `pi-durable`. Sessions survive restarts, a channel's top-level session stays current
|
|
37
42
|
until `/new` with Pi compacting old context, and threads keep their own sessions. The agent's
|
|
@@ -106,54 +111,6 @@ deployment guide, which lists what migrates, what does not, and what to check af
|
|
|
106
111
|
to restart, instead of running on without receiving messages.
|
|
107
112
|
- A Slack message whose acknowledgement was lost during a reconnect runs once, not twice.
|
|
108
113
|
|
|
109
|
-
## [1.0.0-beta.96]
|
|
110
|
-
|
|
111
|
-
The last prerelease before 1.0.0. Installs on 1.0.0-beta.95 run one migration,
|
|
112
|
-
`0012-legacy-office-files`, before the daemon starts.
|
|
113
|
-
|
|
114
|
-
### Removed
|
|
115
|
-
|
|
116
|
-
- `--state-dir` and the `STATE_DIR` / `MIKAN_STATE_DIR` variables: state always lives in
|
|
117
|
-
`~/.mikan`, and passing `--state-dir` is an error.
|
|
118
|
-
- The experimental `cloudflare:<sandbox-id>` sandbox with `CLOUDFLARE_SANDBOX_URL` and
|
|
119
|
-
`CLOUDFLARE_SANDBOX_TOKEN`, and `mikan --download`.
|
|
120
|
-
- The `@geminixiang/mikan/harness` and `@geminixiang/mikan/sandbox` entry points and every root
|
|
121
|
-
export an embedder does not need; the root keeps `createConversationRuntime`,
|
|
122
|
-
`createWorkspace`, `createOfficeAddress`, `officeKey`, `createConversationEvent`,
|
|
123
|
-
`createConversationMessage`, `defaultCommandHandlers`, `MikanModels`, and the types they use.
|
|
124
|
-
`MessagingBot` drops the optional `addReaction`, `uploadFile`, `openDirectConversation`,
|
|
125
|
-
`fetchHistory`, and `listUsers`.
|
|
126
|
-
- `SENTRY_ENABLED` and `HTTP_IDLE_TIMEOUT`, and the `sentry.dsn` setting: the DSN comes only from
|
|
127
|
-
`SENTRY_DSN`, and Sentry runs exactly when it is set.
|
|
128
|
-
- The `event` tool's `scope` parameter, and `channelId` in place of `conversationId` in event files.
|
|
129
|
-
|
|
130
|
-
### Changed
|
|
131
|
-
|
|
132
|
-
- The GitHub adapter's repositories and trigger rules move from `GITHUB_REPOS`,
|
|
133
|
-
`GITHUB_PUBLIC_REPOS`, `GITHUB_USERS`, `GITHUB_MIN_PERMISSION`, `GITHUB_TRIGGERS`, and
|
|
134
|
-
`GITHUB_CAPABILITIES` to the `github` block of `settings.json`, as JSON lists.
|
|
135
|
-
- At startup the daemon logs each `settings.json` key and each environment variable it no longer
|
|
136
|
-
reads, with what replaces it.
|
|
137
|
-
- `mikan onboard` asks fewer questions and lists only the variables it set; `mikan env` folds the
|
|
138
|
-
19 `OTEL_*` variables into one line and lists every variable mikan reads.
|
|
139
|
-
- `0012-legacy-office-files` removes the `last_prompt.jsonl` and `auto-reply.disabled` files 0.5.3
|
|
140
|
-
left in office directories.
|
|
141
|
-
- `@earendil-works/pi-codemode` and `@earendil-works/pi-mcp` are pinned to 1.0.0.
|
|
142
|
-
|
|
143
|
-
### Fixed
|
|
144
|
-
|
|
145
|
-
- Slack startup and reconnects give up a connection that stays silent for 30 seconds and retry,
|
|
146
|
-
instead of hanging without a log line; the daemon logs lost connections and reconnection time.
|
|
147
|
-
- Stopping the daemon while it connects to Slack ends in a graceful shutdown instead of
|
|
148
|
-
`Failed to start bot undefined` and exit code 1.
|
|
149
|
-
- When Telegram ends long polling on 401 or 409, the daemon logs why and exits for the process
|
|
150
|
-
manager to restart it, instead of running on without messages.
|
|
151
|
-
- `mikan migrate` refuses to run when the state directory or workspace is not a mikan install,
|
|
152
|
-
instead of recording every step as applied.
|
|
153
|
-
- Office state directories are created with mode `0700`.
|
|
154
|
-
- The startup log reports the HTTP idle timeout actually applied.
|
|
155
|
-
- A Slack App Home Force Stop button without a session key stops nothing.
|
|
156
|
-
|
|
157
114
|
## [0.5.3] - 2026-06-30
|
|
158
115
|
|
|
159
116
|
### Added
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ mikan keeps the chat record, agent session, and execution runtime separate:
|
|
|
28
28
|
|
|
29
29
|
## Features
|
|
30
30
|
|
|
31
|
-
- **Multi-platform** — Slack, Telegram, Discord, and GitHub adapters
|
|
31
|
+
- **Multi-platform** — Slack, Telegram, Discord, and GitHub (experimental) adapters
|
|
32
32
|
- **Concurrent conversations** — Slack threads, Discord replies/threads, and Telegram reply chains run as independent sessions
|
|
33
33
|
- **Conversation offices** — one office directory and one sandbox runtime per conversation, with public/private visibility derived from the platform conversation type
|
|
34
34
|
- **Sandbox execution** — host, shared container, or per-conversation managed container
|
|
@@ -111,7 +111,7 @@ The working directory is optional: it defaults to `~/.mikan/workspace` and is cr
|
|
|
111
111
|
- **Slack** — create a Socket Mode app using [src/content/docs/slack-bot-minimal-guide.md](src/content/docs/slack-bot-minimal-guide.md). The bot responds when `@mentioned` in channels and to all DMs.
|
|
112
112
|
- **Telegram** — create a bot via [@BotFather](https://t.me/BotFather). The bot responds to private messages, `@mention`, and reply chains in groups.
|
|
113
113
|
- **Discord** — create an application in the [Discord Developer Portal](https://discord.com/developers/applications), enable **Message Content Intent**, and invite it with message/file permissions.
|
|
114
|
-
- **GitHub** — bind a regular GitHub account with a fine-grained PAT, point an organization webhook at `<LINK_URL>/github/webhook`, and list the repositories mikan answers in. People mention, assign, and request reviews from it like a teammate; one issue or PR is one conversation. See [src/content/docs/platform-adapters/github.md](src/content/docs/platform-adapters/github.md).
|
|
114
|
+
- **GitHub (experimental)** — bind a regular GitHub account with a fine-grained PAT, point an organization webhook at `<LINK_URL>/github/webhook`, and list the repositories mikan answers in. People mention, assign, and request reviews from it like a teammate; one issue or PR is one conversation. See [src/content/docs/platform-adapters/github.md](src/content/docs/platform-adapters/github.md).
|
|
115
115
|
|
|
116
116
|
Slack threads, Discord replies/threads, and Telegram reply chains are mapped to independent session scopes. See [src/content/docs/sessions.mdx](src/content/docs/sessions.mdx).
|
|
117
117
|
|
package/package.json
CHANGED