You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+193-7Lines changed: 193 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## v2.7.0
9
9
10
-
Vix.cpp v2.7.0 introduces two new foundations for the framework: `vix::ui` for server-rendered interfaces and `vix::note` for visual, runnable C++ learning documents.
10
+
Vix.cpp v2.7.0 introduces three new foundations for the framework: `vix::ui` for server-rendered interfaces, `vix::note` for visual runnable C++ learning documents, and the first CLI foundations for desktop and mobile app shells.
11
11
12
-
This release keeps the core framework focused while adding first-class UIand notebook workflows to the umbrella build, SDK packaging, examples, CLI, and CI validation.
12
+
This release keeps the core framework focused while adding first-class UI, notebook, desktop shell, and mobile WebView workflows to the umbrella build, SDK packaging, examples, CLI, and CI validation.
13
13
14
14
### Added
15
15
@@ -22,13 +22,15 @@ This release keeps the core framework focused while adding first-class UI and no
22
22
-`vix::ui::ViewContext`
23
23
-`vix::ui::ViewResult`
24
24
-`vix::ui::HtmlResponse`
25
+
25
26
- Added HTML helpers for escaping, attributes, and small HTML generation tasks.
26
27
- Added asset pipeline helpers:
27
28
-`Asset`
28
29
-`AssetManifest`
29
30
-`AssetManager`
30
31
-`AssetMap`
31
32
-`AssetMode`
33
+
32
34
- Added support for asset versioning, manifest lookup, hashed asset paths, CSS/JS grouping, preload helpers, module scripts, and production/development asset modes.
33
35
- Added server-rendered form helpers for fields, select options, checkbox/radio state, file inputs, form data binding, old values, CSRF helpers, and validation errors.
34
36
- Added live UI helpers for fragments, WebSocket-friendly updates, flash messages, and toast notifications.
@@ -40,6 +42,7 @@ This release keeps the core framework focused while adding first-class UI and no
40
42
-`ServerReadiness`
41
43
- descriptor shell backend
42
44
- Linux WebView shell backend
45
+
43
46
- Added platform descriptors for web, desktop, and mobile targets.
44
47
- Added `examples/ui/`.
45
48
- Added SDK and install support for `#include <vix/ui.hpp>`.
@@ -56,6 +59,7 @@ This release keeps the core framework focused while adding first-class UI and no
56
59
-`vix::note::NoteResult`
57
60
-`vix::note::NoteOutput`
58
61
-`vix::note::NoteError`
62
+
59
63
- Added C++ cell execution through `vix run`.
60
64
- Added Reply cell execution through the embedded Vix Reply runtime.
61
65
- Added runtime session and kernel support for running cells, storing outputs, and tracking execution records.
@@ -66,25 +70,188 @@ This release keeps the core framework focused while adding first-class UI and no
66
70
- Added Note API routes for document loading, cell editing, cell execution, cell movement, run-all, and document saving.
67
71
- Added browser UI rendering for cells, execution status, outputs, and errors.
68
72
- Added static HTML export for `.vixnote` lessons.
69
-
- Added `vix note <file.vixnote>`.
73
+
- Added `vix note` workspace mode, allowing Vix Note to start directly in the current directory without requiring an existing `.vixnote` file.
74
+
- Added `vix note <file.vixnote>` for opening an existing note document.
75
+
- Added `vix note --desktop` and `vix note <file.vixnote> --desktop` for opening Vix Note in a desktop WebView shell.
- Added modern C++, Reply, and HTML `.vixnote` learning examples.
72
88
89
+
#### CLI desktop shell
90
+
91
+
- Added `vix desktop` as the CLI entry point for desktop app shell workflows.
92
+
- Added `vix desktop run` for development desktop workflows.
93
+
- Added simple target-based desktop run support:
94
+
95
+
```bash
96
+
vix desktop run ui_dashboard.cpp
97
+
vix desktop ui_dashboard.cpp
98
+
```
99
+
100
+
- Added `vix desktop run --url <url>` for opening an existing local or remote web app in a desktop shell.
101
+
- Added support for launching a desktop shell around a local server command:
102
+
103
+
```bash
104
+
vix desktop run --server "vix run --force-server main.cpp" --port 8080
105
+
```
106
+
107
+
- Added automatic desktop server environment forwarding through `SERVER_HOST` and `SERVER_PORT`.
108
+
- Added `vix desktop build <target.cpp|binary>` for generating a distributable desktop folder.
109
+
- Added `vix desktop package <target.cpp|binary> --target dir` as the first packaging target.
110
+
- Added support for packaging an already-built server binary through:
111
+
112
+
```bash
113
+
vix desktop build --binary ./build/my_server
114
+
vix desktop package --server-binary ./build/my_server --target dir
115
+
```
116
+
117
+
- Added generated desktop bundle layout:
118
+
119
+
```txt
120
+
dist/<app-name>/
121
+
<app-name>
122
+
<app-name>.desktop
123
+
vix-desktop.json
124
+
bin/
125
+
vix
126
+
<server-binary>
127
+
resources/
128
+
<icon>
129
+
```
130
+
131
+
- Added generated launcher script for running the packaged desktop app.
132
+
133
+
- Added generated `vix-desktop.json` manifest with app metadata, server path, URL, window size, readiness URL, and desktop options.
134
+
135
+
- Added generated Linux `.desktop` file for directory-based desktop bundles.
136
+
137
+
- Added desktop build/package options:
138
+
-`--out`
139
+
-`--target`
140
+
-`--binary`
141
+
-`--server-binary`
142
+
-`--clean`
143
+
-`-j`
144
+
-`--jobs`
145
+
-`--with-sqlite`
146
+
-`--with-mysql`
147
+
-`--local-cache`
148
+
149
+
- Added desktop metadata options:
150
+
-`--name`
151
+
-`--title`
152
+
-`--app-id`
153
+
-`--app-version`
154
+
-`--version`
155
+
-`--vendor`
156
+
-`--icon`
157
+
158
+
- Added desktop shell options for app name, title, URL, host, port, size, fullscreen mode, resizable mode, devtools, startup timeout, server readiness, and package output.
159
+
160
+
- Added CLI integration with `vix::ui::AppShell` and `vix::ui::ShellConfig`.
161
+
162
+
- Added optional build detection for `vix::ui` through `VIX_CLI_HAS_UI`.
163
+
164
+
#### CLI mobile shell
165
+
166
+
- Added `vix mobile` as the CLI entry point for mobile WebView shell workflows.
167
+
- Added Android WebView shell generation:
168
+
-`vix mobile init android`
169
+
-`vix mobile android`
170
+
171
+
- Added Android project generation for WebView/PWA wrappers, including:
172
+
- Gradle project files
173
+
- Android manifest
174
+
- Java `MainActivity`
175
+
- app resources
176
+
- generated README
177
+
- optional `local.properties` SDK detection
178
+
179
+
- Added Android build support:
180
+
-`vix mobile build`
181
+
-`vix mobile build android`
182
+
183
+
- Added Android run support:
184
+
-`vix mobile run`
185
+
-`vix mobile run android`
186
+
187
+
- Added Gradle wrapper generation:
188
+
-`vix mobile wrapper`
189
+
-`vix mobile wrapper android`
190
+
191
+
- Added Android device listing:
192
+
-`vix mobile devices`
193
+
194
+
- Added Android mobile shell options:
195
+
-`--name`
196
+
-`--url`
197
+
-`--package`
198
+
-`--output`
199
+
-`--min-sdk`
200
+
-`--target-sdk`
201
+
-`--compile-sdk`
202
+
-`--version-code`
203
+
-`--version-name`
204
+
-`--agp`
205
+
-`--allow-cleartext`
206
+
-`--no-cleartext`
207
+
-`--gradle`
208
+
-`--gradle-version`
209
+
-`--distribution-type`
210
+
-`--project`
211
+
-`--debug`
212
+
-`--release`
213
+
-`--no-install`
214
+
-`--force`
215
+
216
+
- Added support for launching generated Android shells on connected devices through `adb`.
217
+
73
218
### Changed
74
219
75
220
- Updated the umbrella build so `vix::ui` and `vix::note` are built, linked, installed, and exported as part of Vix.cpp.
76
221
- Updated `vix::vix` to link `vix::ui` and `vix::note` when enabled.
77
222
- Updated Core to support optional UI response integration.
78
223
- Updated the HTTP response layer to return Vix UI responses and views directly.
79
-
- Updated the CLI registry to expose the new `vix note` command.
224
+
- Updated the CLI registry to expose the new `vix note`, `vix desktop`, and `vix mobile` commands.
225
+
- Updated `vix note` so a note file is optional. Running `vix note` now starts a workspace in the current directory, similar to notebook workflows.
226
+
- Updated `vix note` so existing `.vixnote` files can still be opened explicitly with `vix note <file.vixnote>`.
227
+
- Updated `vix note` to support desktop WebView mode through `vix note --desktop`.
80
228
- Updated Vix Note assets so the browser UI is served from real local assets with embedded fallback.
81
229
- Updated Note routing so the UI can fetch document state, edit cells, save documents, and execute cells through API calls.
82
230
- Updated Note serialization to preserve stable cell ids and titles during save/load cycles.
231
+
- Updated C++ note execution defaults to avoid unnecessary clean rebuilds during normal cell execution.
83
232
- Updated module examples to focus on UI and Note workflows.
84
233
- Updated release, SDK, module test, security, and build-safety CI profiles to cover UI and Note.
234
+
- Updated CLI release and strict CI profiles to cover desktop shell and mobile shell command registration.
85
235
- Updated package validation so UI and Note headers/libraries are checked after installation.
86
236
- Updated Vix Note documentation, roadmap, and version metadata for the v1.0.0 stable release.
87
237
238
+
* Updated `vix desktop` so `run` is clearly the development workflow, while `build` and `package --target dir` generate distributable desktop folders.
239
+
* Updated `vix desktop run` to accept a direct C++ target:
240
+
241
+
```bash
242
+
vix desktop run ui_dashboard.cpp
243
+
```
244
+
245
+
- Updated `vix desktop` so a direct target defaults to desktop run mode:
246
+
247
+
```bash
248
+
vix desktop ui_dashboard.cpp
249
+
```
250
+
251
+
- Updated desktop server startup so the configured host and port are forwarded to the launched server through `SERVER_HOST` and `SERVER_PORT`.
252
+
- Updated desktop startup timeout defaults for server-backed desktop apps.
253
+
- Updated desktop CLI help to document run, build, package, metadata, window, server, and build/package options.
254
+
88
255
### Fixed
89
256
90
257
- Fixed package export validation for `vix::ui` and `vix::note`.
@@ -97,8 +264,20 @@ This release keeps the core framework focused while adding first-class UI and no
97
264
- Fixed Note server and route tests for local HTTP behavior, document JSON, cell execution, run-all execution, static assets, and custom asset directories.
98
265
- Fixed Note storage tests for stable metadata preservation after save/load.
99
266
- Fixed Note serialization so cell ids are not lost after editing and saving `.vixnote` documents.
267
+
- Fixed Vix Note startup behavior so the command can start from the current directory without requiring a pre-existing note file.
268
+
- Fixed Vix Note desktop mode so the local Note server is started in-process and opened through `AppShell`.
269
+
- Fixed Android mobile shell generation so the generated project can build without missing launcher icon resources.
270
+
- Fixed Android mobile shell build behavior to prefer `./gradlew` when a Gradle wrapper exists.
271
+
- Fixed Android mobile shell project detection so `vix mobile build`, `vix mobile run`, and `vix mobile wrapper` work from inside the generated Android project directory.
272
+
- Fixed Android mobile launch behavior to use the generated package and `MainActivity`.
100
273
- Fixed scheduler and worker test behavior in the threadpool module for the release branch.
101
274
275
+
* Fixed desktop shell startup so the WebView waits for the configured server readiness URL before opening.
276
+
* Fixed desktop shell behavior when the readiness endpoint is already in use by another process.
277
+
* Fixed desktop server lifecycle handling so server processes launched by `vix desktop run` are cleaned up when the desktop shell closes.
278
+
* Fixed supervised server shutdown so `vix run --force-server` does not report a normal desktop shutdown as a runtime error.
279
+
* Fixed desktop server startup so `--port` is applied to both the shell URL and the launched server process.
280
+
102
281
### Removed
103
282
104
283
- Removed early Note prototype examples:
@@ -113,22 +292,29 @@ Vix.cpp v2.7.0 is a foundation release for:
113
292
```txt
114
293
Vix UI
115
294
Vix Note
295
+
Vix Desktop Shell
296
+
Vix Mobile Shell
116
297
```
117
298
118
299
Vix UI provides the server-rendered interface layer for C++ applications.
119
300
120
-
Vix Note provides the visual learning workspace for C++ and Vix.cpp lessons, with runnable C++ and Reply cells, saved `.vixnote` files, browser-based editing, and static HTML export.
301
+
Vix Note provides the visual learning workspace for C++ and Vix.cpp lessons, with runnable C++ and Reply cells, saved `.vixnote` files, browser-based editing, desktop WebView mode, workspace startup, and static HTML export.
302
+
303
+
Vix Desktop Shell provides the first CLI workflow for opening Vix web applications in a native desktop WebView shell, plus the first distributable desktop folder workflow through `vix desktop build` and `vix desktop package --target dir`.
304
+
305
+
Vix Mobile Shell provides the first CLI workflow for generating, building, and running Android WebView wrappers around Vix web or PWA applications.
121
306
122
307
The direction of this release is:
123
308
124
309
```txt
125
310
server-rendered UI first
126
311
visual C++ learning with Vix Note
127
-
WebView app shell later
312
+
desktop and mobile WebView shells for real apps
313
+
PWA as the mobile foundation
128
314
native UI only when truly needed
129
315
```
130
316
131
-
The goal is to make C++ development easier to teach, inspect, and turn into real interfaces without making the core runtime heavier by default.
317
+
The goal is to make C++ development easier to teach, inspect, package, and turn into real interfaces without making the core runtime heavier by default.
0 commit comments