@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geminixiang/mikan",
3
- "version": "1.0.0-beta.96",
3
+ "version": "1.0.0",
4
4
  "description": "Self-hosted AI coding agent for organizations: every Slack channel and DM gets its own sandboxed workspace, credentials, and memory.",
5
5
  "keywords": [
6
6
  "agent",