diff --git a/apps/api/config.ts b/apps/api/config.ts
index 4864a64e..c223b761 100644
--- a/apps/api/config.ts
+++ b/apps/api/config.ts
@@ -10,7 +10,7 @@ const DEFAULT_PORT = 3760;
const DEFAULT_GATEWAY_PORT = 31879;
const DEFAULT_GATEWAY_BASE_PATH = '/tracevane';
const DEFAULT_BIND_HOST = '127.0.0.1';
-const TRACEVANE_VERSION_FALLBACK = '0.2.7';
+const TRACEVANE_VERSION_FALLBACK = '0.2.8';
let cachedTracevaneVersion: string | null = null;
diff --git a/apps/api/package.json b/apps/api/package.json
index 4399d1af..f00ea436 100644
--- a/apps/api/package.json
+++ b/apps/api/package.json
@@ -1,6 +1,6 @@
{
"name": "tracevane-api",
- "version": "0.2.7",
+ "version": "0.2.8",
"private": true,
"type": "module",
"scripts": {
diff --git a/apps/web/package.json b/apps/web/package.json
index a5bf2951..0a6637ad 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -1,6 +1,6 @@
{
"name": "tracevane-web",
- "version": "0.2.7",
+ "version": "0.2.8",
"private": true,
"type": "module",
"scripts": {
diff --git a/apps/web/src/features/channel-connectors/views/V3AccountsView.tsx b/apps/web/src/features/channel-connectors/views/V3AccountsView.tsx
index cd105ee2..f3c4364f 100644
--- a/apps/web/src/features/channel-connectors/views/V3AccountsView.tsx
+++ b/apps/web/src/features/channel-connectors/views/V3AccountsView.tsx
@@ -114,7 +114,7 @@ function accountTemplate(platform: "feishu" | "octo"): ChannelConnectorAccount {
id,
platform,
displayName: platform === "feishu" ? "新飞书机器人" : "新 Octo 账号",
- lifecycle: "draft",
+ lifecycle: platform === "octo" ? "enabled" : "draft",
externalAccountId: null,
botId: null,
credentials: {},
@@ -451,7 +451,11 @@ function AccountEditor({
});
} else if (draft.platform === "octo") {
octoSmoke.mutate({ action: "register", binding }, {
- onSuccess: (result) => setPreflight({ ok: result.transport.ok === true, message: result.transport.error || `HTTP ${result.transport.statusCode ?? "ok"}` }),
+ onSuccess: (result) => {
+ const ok = result.transport.ok === true;
+ setPreflight({ ok, message: result.transport.error || `HTTP ${result.transport.statusCode ?? "ok"}` });
+ if (ok) setDraft((current) => ({ ...current, lifecycle: "enabled" }));
+ },
onError: (error) => setPreflight({ ok: false, message: error.message }),
});
}
@@ -606,7 +610,7 @@ function AccountEditor({