Skip to content

Commit cbd2ea7

Browse files
Update 3.0.5 (#509)
* added color picker * better splitting * hack to bypass blank target on docs * ne notebook format sketch * GraphicsRow/Col/Grid fallbacks * Support for new notebooks format * Refactor loader integration and update settings management across frontend components. Bump version to 3.0.5. * Refactor kernel initialization and update component imports across frontend files * Add kernel autolaunch functionality to the notebook startup script * Implement file hash checking and reload functionality in notebook components * added news block on launch * examples update * EOL windows fix * DOSTextFormat->False * fixed CRLF on windows * added wls, wlt file extensions * removed clutter from GUI * fixed multiple lines inside graphics complex lines * added debug failure info * update * update * windows test * Updated TeXView and TeXFormAsync * start kernel a bit earlier * moved kernel after the downloader * AnchorPoint * Sort file tree by directories/files * removed ViewBox from FrontEndExecutable. Better separation * better context isolation * release notes * final update * fixed path * save as wln directly * fixed obejcts fileds * Colon and Cross * release notes finished * don't ask for cli * fixed cli installation * Colon, Cross implemented. Fixed error with ListLinePlotly * Added AppGlobals to track focused windows and notebooks * added NodeJS extensions support * PublicFields * changed API for external apps * Added MCP server * release notes * stripped some tools * compressed MCP description. Moved VFX package * removed extras * removed chat entirely * CLI implemented * fixed CLI * Unicode support for file format * update * enforce unicode safe test * added new API and fixed some styles * qfix * made Events widely available, corrected descrition * autoproject output js, html cells from the notebook to window * updated release notes * improved loading signals, removed depricated code, limit sidebar max file size * qfix * Package json optional dependencies (#507) * fix: two macosxspecific dependencies has been moved to the 'optionalDependencies' section * fix: updated git ignore * Added V8 * added proper AnchorPoint for Inset and TeXView * AlignmentPoint alias * removed depricated * removed depricated * added support for colored Image3D * updated examples and improved image3d * updated examples and image3D * removed some examples * v8 added to dirs * Added Sequence Iconize * fixed sync issue with demo folder * qfix for DeleteDirectory * fixed false CurrentWindow assigment * Total Kernel IO refactor * fixed double connection * rolledback to a simpler solution * added support for `Inset` with size provided * Added automatic and image sizes predefined * avoid flickering * added spinner to show connection progress * adjusted for Windows machine * qfix demo --------- Co-authored-by: Kirill Belov <KirillBelovTest@gmail.com>
1 parent 6aa56ac commit cbd2ea7

243 files changed

Lines changed: 101599 additions & 431288 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DS_Store

0 Bytes
Binary file not shown.

.github/workflows/build-win.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ jobs:
8989
"Packages\CSockets\Fallback",
9090
"Packages\CSockets\LibraryResources\Windows-x86-64-v6",
9191
"Packages\CSockets\LibraryResources\Windows-x86-64-v7",
92+
"Packages\CSockets\LibraryResources\Windows-x86-64-v8",
9293
"Packages\CSockets\UV\Windows-x86-64"
9394
)
9495
# Persist for later steps (semicolon-separated)

.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,12 @@ node_modules
77
/test-results/
88
/playwright-report/
99
/blob-report/
10-
/playwright/.cache/
10+
/playwright/.cache/
11+
/package-lock.json
12+
/.vscode/
13+
/.idea/
14+
.DS_Store
15+
*.log
16+
*.tmp
17+
routes_cache.wl
18+
runtime_cache.wl

Common/Patches/NoWR.wl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@ Begin["`Private`"]
66
nouns = StringSplit[Import[FileNameJoin[{$InputFileName//DirectoryName, "Nouns.txt"}], "Text"], "\n"];
77
nouns = Select[nouns, StringMatchQ[WordCharacter..] ];
88

9-
Unprotect[RandomWord];
109

11-
ClearAll[RandomWord];
12-
RandomWord[] := RandomChoice @ nouns;
13-
RandomWord[n_Integer] := RandomChoice[nouns, n];
10+
Internal`NoWR`RandomWord[] := RandomChoice @ nouns;
11+
Internal`NoWR`RandomWord[n_Integer] := RandomChoice[nouns, n];
1412

1513
End[]
1614

Components/ExtendedTopbar.wlx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ subscribeToNotebookSocketState[client_, messages_, localController_String] := Wi
3535
]
3636

3737
timedSaveButton[client_, localController_, controls_, parameters_] := With[{clonedControls = EventClone[controls], socket = EventClone[client]},
38-
Module[{task, reset, alive = True},
38+
Module[{task, reset, alive = True, taskFile},
3939
reset := With[{},
4040
If[MatchQ[task, _TaskObject], TaskRemove[task]];
4141
task = SetTimeout[(
@@ -48,6 +48,10 @@ timedSaveButton[client_, localController_, controls_, parameters_] := With[{clon
4848

4949
reset;
5050

51+
taskFile = SetInterval[(
52+
EventFire[controls, "CheckFileHash", <|"Client"->client|>];
53+
), 4000];
54+
5155
EventHandler[clonedControls, {"Save" -> Function[Null,
5256
EventFire[localController, "Reset", <|"Client"->client|>];
5357
reset;
@@ -60,6 +64,7 @@ timedSaveButton[client_, localController_, controls_, parameters_] := With[{clon
6064
EventRemove[clonedControls];
6165
EventRemove[localController];
6266
TaskRemove[task];
67+
TaskRemove[taskFile];
6368
ClearAll[reset];
6469
EventRemove[socket];
6570
]}];

Components/Kernel/Kernel.wlx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ Component[OptionsPattern[]] := With[{controls = OptionValue["Controls"], deinitK
4040
EventHandler[ButtonId, {"New" -> Function[Type,
4141
Echo[Type];
4242
With[{client = $Client, m = Messager, kernel = Switch[Type,
43-
"Master", MasterKernel["Name"->RandomWord[]],
44-
_, LocalKernel`LocalKernel["Name"->RandomWord[]]
43+
"Master", MasterKernel["Name"->(Internal`NoWR`RandomWord[])],
44+
_, LocalKernel`LocalKernel["Name"->(Internal`NoWR`RandomWord[])]
4545
]
4646
},
4747
Print["Working!"];

Components/Kernel/Minimal.wlx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ Component[OptionsPattern[]] := With[{controls = OptionValue["Controls"], deinitK
5858
EventHandler[ButtonId, {"New" -> Function[Type,
5959
Echo[Type];
6060
With[{client = $Client, m = Messager, kernel = Switch[Type,
61-
"Master", MasterKernel["Name"->RandomWord[]],
62-
_, LocalKernel`LocalKernel["Name"->RandomWord[]]
61+
"Master", MasterKernel["Name"->(Internal`NoWR`RandomWord[])],
62+
_, LocalKernel`LocalKernel["Name"->(Internal`NoWR`RandomWord[])]
6363
]
6464
},
6565
Print["Working!"];

Components/Sidebar/Components/ItemList.wlx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Component[OptionsPattern[]] := With[{
2828
<li class="list-none"><Dir ElectronQ={electronQ} Icons={Icons} Port={Port} Parameters={Parameters} ListComponent={Component} Level={Level+1} File={i} Selected={SameQ[Current, i]}/></li>,
2929
<li class="list-none"><Fl ElectronQ={electronQ} Icons={Icons} Port={Port} Parameters={Parameters} File={i} Selected={SameQ[Current, i]}/></li>
3030
]
31-
, {i, Select[FileNames["*", Path], !StringMatchQ[#, ___~~".DS_Store"]&]}],
31+
, {i, SortBy[Select[FileNames["*", Path], !StringMatchQ[#, ___~~".DS_Store"]&], Not@*DirectoryQ]}],
3232

3333
Extra =
3434
With[{

Components/Sidebar/Sidebar.wlx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ With[{
163163

164164
]];
165165

166-
EventFire[modals, "TextBox", <|"Promise"->promise, "title"->"Enter new name", "default"->RandomWord[]|>];
166+
EventFire[modals, "TextBox", <|"Promise"->promise, "title"->"Enter new name", "default"->(Internal`NoWR`RandomWord[])|>];
167167
];
168168
];
169169
]];
@@ -252,10 +252,10 @@ With[{
252252
const files = [...e.dataTransfer.items]
253253
.filter(item => item.kind === "file")
254254
.map(item => item.getAsFile());
255-
const MAX_SIZE = 30 * 1024 * 1024;
255+
const MAX_SIZE = 15 * 1024 * 1024;
256256
files.forEach(file => {
257257
if (file.size > MAX_SIZE) {
258-
interpretate.alert(`"${file.name}" is too large (${(file.size / 1024 / 1024).toFixed(1)} MB). Maximum allowed size is 30 MB.`);
258+
interpretate.alert(`"${file.name}" is too large (${(file.size / 1024 / 1024).toFixed(1)} MB). Maximum allowed size is 15 MB.`);
259259
return;
260260
}
261261
const reader = new FileReader();

Components/Topbar.wlx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ subscribeToNotebookSocketState[client_, messages_, localController_String] := Wi
3535
]
3636

3737
timedSaveButton[client_, localController_, controls_, parameters_] := With[{clonedControls = EventClone[controls], socket = EventClone[client]},
38-
Module[{task, reset, alive = True},
38+
Module[{task, reset, alive = True, taskFile},
3939
reset := With[{},
4040
If[MatchQ[task, _TaskObject], TaskRemove[task]];
4141
task = SetTimeout[(
@@ -46,6 +46,10 @@ timedSaveButton[client_, localController_, controls_, parameters_] := With[{clon
4646
), parameters["BackupTimeout"]];
4747
];
4848

49+
taskFile = SetInterval[(
50+
EventFire[controls, "CheckFileHash", <|"Client"->client|>];
51+
), 4000];
52+
4953
reset;
5054

5155
EventHandler[clonedControls, {"Save" -> Function[Null,
@@ -60,6 +64,7 @@ timedSaveButton[client_, localController_, controls_, parameters_] := With[{clon
6064
EventRemove[clonedControls];
6165
EventRemove[localController];
6266
TaskRemove[task];
67+
TaskRemove[taskFile];
6368
ClearAll[reset];
6469
EventRemove[socket];
6570
]}];

0 commit comments

Comments
 (0)