@fluxy-chat/create-fluxy-chat 0.5.9 → 0.5.11

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
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.11] - 2026-08-25
4
+
5
+ ### Added
6
+
7
+ - React and full templates expose `stopAgentStream` (Stop / Stop generation) while an agent reply is streaming. Comes from `@fluxy-chat/sdk@0.6.3` via `useChat`.
8
+
9
+ ### Changed
10
+
11
+ - Templates pin `@fluxy-chat/sdk@^0.6.3`, `@fluxy-chat/react@^0.1.3`, `@fluxy-chat/ui@^0.1.4`, and `@fluxy-chat/ui-kit@^0.1.1` (minimal). Publish those packages **before** this CLI, or `pnpm create` will 404.
12
+
13
+ ## [0.5.10] - 2026-08-25
14
+
15
+ ### Added
16
+
17
+ - Gold-path outro mentions `@assistant` in the generated React app.
18
+
19
+ ### Changed
20
+
21
+ - Templates still depend on `@fluxy-chat/sdk@^0.6.2` (and `@fluxy-chat/react@^0.1.2` where used) so `pnpm create` works **before and after** sdk `0.6.3` is on npm. `^0.6.2` installs `0.6.3` once published.
22
+
3
23
  ## [0.5.9] - 2026-08-21
4
24
 
5
25
  ### Added
package/dist/index.js CHANGED
@@ -1158,7 +1158,8 @@ async function main() {
1158
1158
  `cd ${config.name}`,
1159
1159
  "cp .env.example .env",
1160
1160
  "# Set VITE_FLUXYCHAT_WORKER_URL + JWT or public room ID",
1161
- `${devCmd} dev`
1161
+ `${devCmd} dev`,
1162
+ "# In the room, send: @assistant hello"
1162
1163
  ].join("\n") : [
1163
1164
  `cd ${config.name}`,
1164
1165
  "cp .env.example .dev.vars",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxy-chat/create-fluxy-chat",
3
- "version": "0.5.9",
3
+ "version": "0.5.11",
4
4
  "description": "Scaffold a new FluxyChat bot project with a single command",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -9,7 +9,7 @@
9
9
  "type-check": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/sdk": "^0.6.0"
12
+ "@fluxy-chat/sdk": "^0.6.3"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@cloudflare/workers-types": "^4.0.0",
@@ -9,7 +9,7 @@
9
9
  "type-check": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/sdk": "^0.6.0",
12
+ "@fluxy-chat/sdk": "^0.6.3",
13
13
  "discord.js": "^14.0.0"
14
14
  },
15
15
  "devDependencies": {
@@ -16,9 +16,9 @@
16
16
  "postinstall": "node scripts/hoist-fluxy-sdk.mjs"
17
17
  },
18
18
  "dependencies": {
19
- "@fluxy-chat/react": "^0.1.1",
20
- "@fluxy-chat/sdk": "^0.6.2",
21
- "@fluxy-chat/ui": "^0.1.3",
19
+ "@fluxy-chat/react": "^0.1.3",
20
+ "@fluxy-chat/sdk": "^0.6.3",
21
+ "@fluxy-chat/ui": "^0.1.4",
22
22
  "class-variance-authority": "^0.7.1",
23
23
  "clsx": "^2.1.1",
24
24
  "lucide-react": "^0.511.0",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "pnpm": {
42
42
  "overrides": {
43
- "@fluxy-chat/sdk": "0.6.2"
43
+ "@fluxy-chat/sdk": "^0.6.3"
44
44
  }
45
45
  }
46
46
  }
@@ -13,5 +13,5 @@ const nestedSdk = join(
13
13
 
14
14
  if (existsSync(nestedSdk)) {
15
15
  rmSync(nestedSdk, { recursive: true, force: true });
16
- console.log("[fluxy] removed nested @fluxy-chat/sdk so Vite uses the complete 0.6.2 package");
16
+ console.log("[fluxy] removed nested @fluxy-chat/sdk so Vite uses the hoisted complete package");
17
17
  }
@@ -116,15 +116,24 @@ function LocalOnboarding() {
116
116
  }
117
117
 
118
118
  function ChatRoom({ session }: { session: CliSession }) {
119
- const { messages, sendMessage, invokeAgent, connectionState, agentTyping, typingUsers, online } =
120
- useChat({
121
- roomId: session.roomId,
122
- agentId: session.agentId || undefined,
123
- markReadLatest: true,
124
- });
119
+ const {
120
+ messages,
121
+ sendMessage,
122
+ invokeAgent,
123
+ connectionState,
124
+ agentTyping,
125
+ typingUsers,
126
+ online,
127
+ stopAgentStream,
128
+ } = useChat({
129
+ roomId: session.roomId,
130
+ agentId: session.agentId || undefined,
131
+ markReadLatest: true,
132
+ });
125
133
 
126
134
  const [error, setError] = useState<string | null>(null);
127
135
  const connected = connectionState.status === "connected";
136
+ const isStreaming = messages.some((m) => m.streaming);
128
137
 
129
138
  async function onSend(content: string) {
130
139
  setError(null);
@@ -152,6 +161,11 @@ function ChatRoom({ session }: { session: CliSession }) {
152
161
  </span>
153
162
  <span className="text-muted-foreground"> · {session.roomId}</span>
154
163
  </span>
164
+ {isStreaming ? (
165
+ <button type="button" className="btn-ghost" onClick={() => stopAgentStream()}>
166
+ Stop generation
167
+ </button>
168
+ ) : null}
155
169
  </div>
156
170
 
157
171
  <div className="chat-frame">
@@ -9,10 +9,10 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/ui-kit": "^0.1.0",
13
- "@fluxy-chat/ui": "^0.1.2",
14
- "@fluxy-chat/react": "^0.1.1",
15
- "@fluxy-chat/sdk": "^0.6.2",
12
+ "@fluxy-chat/ui-kit": "^0.1.1",
13
+ "@fluxy-chat/ui": "^0.1.4",
14
+ "@fluxy-chat/react": "^0.1.3",
15
+ "@fluxy-chat/sdk": "^0.6.3",
16
16
  "react": "^19.0.0",
17
17
  "react-dom": "^19.0.0"
18
18
  },
@@ -9,8 +9,8 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/react": "^0.1.1",
13
- "@fluxy-chat/sdk": "^0.6.2",
12
+ "@fluxy-chat/react": "^0.1.3",
13
+ "@fluxy-chat/sdk": "^0.6.3",
14
14
  "react": "^19.0.0",
15
15
  "react-dom": "^19.0.0",
16
16
  "zustand": "^5.0.0"
@@ -77,17 +77,23 @@ function useFluxySession(): {
77
77
  }
78
78
 
79
79
  function ChatPanel({ roomId }: { roomId: string }) {
80
- const { messages, sendMessage, connectionState } = useChat({
80
+ const { messages, sendMessage, connectionState, stopAgentStream } = useChat({
81
81
  roomId,
82
82
  markReadLatest: true,
83
83
  });
84
84
  const [draft, setDraft] = useState("");
85
+ const isStreaming = messages.some((m) => m.streaming);
85
86
 
86
87
  return (
87
88
  <section className="chat-panel">
88
89
  <header className="chat-header">
89
90
  <strong>{roomId}</strong>
90
91
  <span className="status">{connectionState.status}</span>
92
+ {isStreaming ? (
93
+ <button type="button" onClick={() => stopAgentStream()}>
94
+ Stop
95
+ </button>
96
+ ) : null}
91
97
  </header>
92
98
  <ul className="messages">
93
99
  {messages.map((m) => (
@@ -110,7 +116,7 @@ function ChatPanel({ roomId }: { roomId: string }) {
110
116
  <input
111
117
  value={draft}
112
118
  onChange={(e) => setDraft(e.target.value)}
113
- placeholder="Type a message"
119
+ placeholder="Type a message, or @assistant to mention the room agent"
114
120
  aria-label="Message"
115
121
  />
116
122
  <button type="submit">Send</button>
@@ -9,7 +9,7 @@
9
9
  "type-check": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/sdk": "^0.6.0",
12
+ "@fluxy-chat/sdk": "^0.6.3",
13
13
  "@slack/bolt": "^4.0.0",
14
14
  "@slack/web-api": "^7.0.0"
15
15
  },
@@ -9,7 +9,7 @@
9
9
  "type-check": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@fluxy-chat/sdk": "^0.6.0",
12
+ "@fluxy-chat/sdk": "^0.6.3",
13
13
  "node-telegram-bot-api": "^0.66.0"
14
14
  },
15
15
  "devDependencies": {