@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 +20 -0
- package/dist/index.js +2 -1
- package/package.json +1 -1
- package/templates/basic/package.json +1 -1
- package/templates/discord/package.json +1 -1
- package/templates/full/package.json +4 -4
- package/templates/full/scripts/hoist-fluxy-sdk.mjs +1 -1
- package/templates/full/src/App.tsx +20 -6
- package/templates/minimal/package.json +4 -4
- package/templates/react/package.json +2 -2
- package/templates/react/src/App.tsx +8 -2
- package/templates/slack/package.json +1 -1
- package/templates/telegram/package.json +1 -1
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
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"postinstall": "node scripts/hoist-fluxy-sdk.mjs"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@fluxy-chat/react": "^0.1.
|
|
20
|
-
"@fluxy-chat/sdk": "^0.6.
|
|
21
|
-
"@fluxy-chat/ui": "^0.1.
|
|
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.
|
|
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
|
|
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 {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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.
|
|
13
|
-
"@fluxy-chat/ui": "^0.1.
|
|
14
|
-
"@fluxy-chat/react": "^0.1.
|
|
15
|
-
"@fluxy-chat/sdk": "^0.6.
|
|
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.
|
|
13
|
-
"@fluxy-chat/sdk": "^0.6.
|
|
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>
|