diff --git a/DEVLOG.md b/DEVLOG.md
index 6ed1fc625..66d7ae27c 100755
--- a/DEVLOG.md
+++ b/DEVLOG.md
@@ -1,164 +1,3 @@
# Snap! (BYOB) Dev History
## in development:
-* **New Features:**
- 1. OOP 2.0
- * new list-dictionary based object system with data scope and Lieberman style prototypical inheritance
- * new "parent" selector for accessing list items, points to entry at ellipsis "..."
- * new "object" item in the THIS (runtime environment) primitive reporter's dropdown menu
- * new OOP library
- 2. support for input-groups in custom blocks
- * new "group" option in custom block slot type editor's special settings menu for multiple inputs
- * metaprogramming support for input groups (represented by a list of slot types)
- * new "Declare & Initialize Script Variables" library
- 3. UI Looks
- * flat / default (skeuomorphic) design
- * bright / dark (color) theme
- * new "theme" configuration key in the API
- * new "cube" and "cubeSolid" symbols
- 4. Other
- * new Continuations library for run/cc and call/cc
-* **Notable Changes:**
- * preserve the order of items when using lists as dictionaries or data objects
- * variadic slots in custom blocks now support '%nl' as separators and expansion labels
- * Boolean input slot default values can be specified through metaprogramming
- * variadic Boolean input slot defaults can be specified both in the UI and through metaprogramming
- * added an official "Restore primitives" item to the project menu, if a project / scene has customized prims
- * default values and expansion labels of variadic input slots in custom blocks are now translatable by prefixing them with $-underscore
-* **Notable Fixes:**
- * exclude variables declared inside input rings from the dropdown menu of reachable variables
- * automatically declare variadic upvars inside custom blocks when evaluating them
- * fixed a LISP-encoding conflict between a variadic expression and formal ring parameters
- * fixed naming a block to a JS property such as "constructor"
-* **Documentation Updates:**
- * updated API.md with new "theme" configuration key for "bright" or "dark" UI modes
- * updated LISP syntax documentation for script parameters
-* **Translation Updates:**
- * German
-
-### 2024-09-11
-* blocks: fixed #3401 - naming a block "constructor" fails
-* threads: removed explicit macros for data objects
-
-### 2024-09-10
-* threads: changed evaluation of input groups to return a 2D (or empty) list
-* objects: adjusted LISP formulation of primitive IF block to the new input group evaluation
-* byob: for input groups set "initial slots" to the length of the group
-* libraries: adjusted variable declaration module to the new input group evaluation
-* libraries: adjusted OOP module to the new input group evaluation
-* html: adjusted obsolete "apple" meta tags for mobile sites
-* reduced and re-activated pwa service worker
-* reduced number of pwa-cached files
-* added everything except libraries to pwa cache
-* added everything except some libraries to pwa cache
-* added Beetle and MQTT libraries to pwa cache
-* added Tunescope library to pwa cache
-* added SciSnap library to pwa cache
-* removed SciSnap library from pwa cache (again)
-* added SciSnap library to pwa cache (again), except for the costume js file
-* new "Continuations" library
-* updated "iteration / composition" library with new continuation blocks
-* updated dev version
-* v10.1-rc1
-* added skipWaiting() to service worker
-* v10.1-rc2
-
-### 2024-09-09
-* updated from master branch
-
-### 2024-09-18
-* blocks: fixed unevaluated slots for input groups
-* updated OOP library
-* updated dev version
-* threads: added read-only access to global variables to unbound data objects
-
-### 2024-09-17
-* blocks, threads: new "object" item in the THIS (runtime environment) primitive reporter's dropdown menu
-* updated German translation for "object" string
-* updated dev version
-* updated from master branch - fixed canvasBoundingBox() bug
-* updated dev version
-
-### 2024-09-16
-* lists: preserve the order of items when using lists as dictionaries or data objects
-* updated from master branch
-* updated dev version
-
-### 2024-09-14
-* blocks, byob: made default values and expansion labels of variadic input slots in custom blocks translatable
-* German translation update for "field" (in the OOP library)
-* updated OOP library with German translation
-* updated variable declaration library with German translation
-* updated dev version
-
-### 2024-09-13
-* updated from master branch
-* updated dev version
-* updated OOP library: added "FIELD OF" reporter
-* symbols: new "cube" and "cubeSolid" symbols
-
-### 2024-09-12
-* threads: fixed #3394 - LISP-encoding conflict between a variadic expression and formal ring parameters
-* updated LISP syntax documentation for script parameters
-* changed dev version to 10.1
-* updated dev version
-* gui: added an official "Restore primitives" item to the project menu, if a project / scene has customized prims
-
-### 2024-09-11
-* threads: bind looked up variables inside objects to their receiver ("self")
-
-### 2024-09-10
-* threads: bind rings to object scope when INSERT / REPLACE -ing them into an object-list
-* updated OOP library: added "ADD field" command
-* updated dev version
-
-### 2024-09-09
-* blocks: disabled experimental change allowing dropping reporters into variable accessor input slots and auto-ringification
-* blocks, morphic: exclude variables declared inside input rings from the dropdown menu of reachable variables
-* threads: automatically declare variadic upvars inside custom blocks when evaluating them
-* threads: automatically declare upvars inside custom block input groups
-* updated OOP library
-* new "Declare & Initialize Script Variables" library
-* updated dev version
-
-### 2024-09-06
-* API: new "theme" configuration key for "bright" or "dark" GUI theme
-* updated pyret transpilation study with new "bright" theme configuration
-* updated dev from master (pulled Polish translation update v10.0.7)
-* updated dev version
-
-### 2024-09-05
-* blocks: auto-ringify variable getter reporters when they are dropped into the variable (name) slot of variable accessor commands
-* blocks: support for setting (variadic) Boolean input slot defaults
-
-### 2024-09-03
-* gui, objects, blocks, byob: decoupled skeuomorphic/flat UI design from dark/bright UI theme
-* German translation update for UI Looks
-* updated dev version
-* threads: reverted to ringified variable blobs as valid inputs for variable setters
-
-### 2024-09-02
-* lists: let list-based objects inherit variables from both other lists and also sprites and the stage, including from global variable scope
-
-### 2024-08-29
-* blocks: avoid errors when specifying default values for non-editable slots
-* updated dev from master (pulled Catalan translation update v10.0.6)
-* store: updated file version to 11-dev
-* updated dev version
-
-### 2024-08-28
-* threads: added metaprogramming support for input groups
-* updated dev version
-
-### 2024-08-27
-* blocks, threads: new localized "parent" selector for accessing list items, points to entry at ellipsis "..."
-* byob: use slot numbers and support mnemonics for input groups
-* updated dev version
-
-### 2024-08-26
-* new list-dictionary based object system with data scope and prototypical inheritance
-* new OOP library
-* updated dev version
-
-### 2024-08-20
-* new dev version
diff --git a/HISTORY.md b/HISTORY.md
index a58da392f..cf070cb9a 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -2,6 +2,172 @@
## in development:
+## 10.1.0:
+* **New Features:**
+ 1. OOP 2.0
+ * new list-dictionary based object system with data scope and Lieberman style prototypical inheritance
+ * new "parent" selector for accessing list items, points to entry at ellipsis "..."
+ * new "object" item in the THIS (runtime environment) primitive reporter's dropdown menu
+ * new OOP library
+ 2. support for input-groups in custom blocks
+ * new "group" option in custom block slot type editor's special settings menu for multiple inputs
+ * metaprogramming support for input groups (represented by a list of slot types)
+ * new "Declare & Initialize Script Variables" library
+ 3. UI Looks
+ * flat / default (skeuomorphic) design
+ * bright / dark (color) theme
+ * new "theme" configuration key in the API
+ * new "cube" and "cubeSolid" symbols
+ 4. Other
+ * new Continuations library for run/cc and call/cc
+* **Notable Changes:**
+ * preserve the order of items when using lists as dictionaries or data objects
+ * variadic slots in custom blocks now support '%nl' as separators and expansion labels
+ * Boolean input slot default values can be specified through metaprogramming
+ * variadic Boolean input slot defaults can be specified both in the UI and through metaprogramming
+ * added an official "Restore primitives" item to the project menu, if a project / scene has customized prims
+ * default values and expansion labels of variadic input slots in custom blocks are now translatable by prefixing them with $-underscore
+* **Notable Fixes:**
+ * exclude variables declared inside input rings from the dropdown menu of reachable variables
+ * automatically declare variadic upvars inside custom blocks when evaluating them
+ * fixed a LISP-encoding conflict between a variadic expression and formal ring parameters
+ * fixed naming a block to a JS property such as "constructor"
+ * fixed a variable refactoring (renaming) bug in custom block definitions
+* **Documentation Updates:**
+ * updated API.md with new "theme" configuration key for "bright" or "dark" UI modes
+ * updated LISP syntax documentation for script parameters
+* **Translation Updates:**
+ * German
+
+### 2024-09-11
+* blocks: fixed #3401 - naming a block "constructor" fails
+* threads: removed explicit macros for data objects
+* objects: fixed a variable refactoring (renaming) bug in custom block definitions
+* prepared v10.1 release
+
+### 2024-09-10
+* threads: changed evaluation of input groups to return a 2D (or empty) list
+* objects: adjusted LISP formulation of primitive IF block to the new input group evaluation
+* byob: for input groups set "initial slots" to the length of the group
+* libraries: adjusted variable declaration module to the new input group evaluation
+* libraries: adjusted OOP module to the new input group evaluation
+* html: adjusted obsolete "apple" meta tags for mobile sites
+* reduced and re-activated pwa service worker
+* reduced number of pwa-cached files
+* added everything except libraries to pwa cache
+* added everything except some libraries to pwa cache
+* added Beetle and MQTT libraries to pwa cache
+* added Tunescope library to pwa cache
+* added SciSnap library to pwa cache
+* removed SciSnap library from pwa cache (again)
+* added SciSnap library to pwa cache (again), except for the costume js file
+* new "Continuations" library
+* updated "iteration / composition" library with new continuation blocks
+* updated dev version
+* v10.1-rc1
+* added skipWaiting() to service worker
+* v10.1-rc2
+
+### 2024-09-09
+* updated from master branch
+
+### 2024-09-18
+* blocks: fixed unevaluated slots for input groups
+* updated OOP library
+* updated dev version
+* threads: added read-only access to global variables to unbound data objects
+
+### 2024-09-17
+* blocks, threads: new "object" item in the THIS (runtime environment) primitive reporter's dropdown menu
+* updated German translation for "object" string
+* updated dev version
+* updated from master branch - fixed canvasBoundingBox() bug
+* updated dev version
+
+### 2024-09-16
+* lists: preserve the order of items when using lists as dictionaries or data objects
+* updated from master branch
+* updated dev version
+
+### 2024-09-14
+* blocks, byob: made default values and expansion labels of variadic input slots in custom blocks translatable
+* German translation update for "field" (in the OOP library)
+* updated OOP library with German translation
+* updated variable declaration library with German translation
+* updated dev version
+
+### 2024-09-13
+* updated from master branch
+* updated dev version
+* updated OOP library: added "FIELD OF" reporter
+* symbols: new "cube" and "cubeSolid" symbols
+
+### 2024-09-12
+* threads: fixed #3394 - LISP-encoding conflict between a variadic expression and formal ring parameters
+* updated LISP syntax documentation for script parameters
+* changed dev version to 10.1
+* updated dev version
+* gui: added an official "Restore primitives" item to the project menu, if a project / scene has customized prims
+
+### 2024-09-11
+* threads: bind looked up variables inside objects to their receiver ("self")
+
+### 2024-09-10
+* threads: bind rings to object scope when INSERT / REPLACE -ing them into an object-list
+* updated OOP library: added "ADD field" command
+* updated dev version
+
+### 2024-09-09
+* blocks: disabled experimental change allowing dropping reporters into variable accessor input slots and auto-ringification
+* blocks, morphic: exclude variables declared inside input rings from the dropdown menu of reachable variables
+* threads: automatically declare variadic upvars inside custom blocks when evaluating them
+* threads: automatically declare upvars inside custom block input groups
+* updated OOP library
+* new "Declare & Initialize Script Variables" library
+* updated dev version
+
+### 2024-09-06
+* API: new "theme" configuration key for "bright" or "dark" GUI theme
+* updated pyret transpilation study with new "bright" theme configuration
+* updated dev from master (pulled Polish translation update v10.0.7)
+* updated dev version
+
+### 2024-09-05
+* blocks: auto-ringify variable getter reporters when they are dropped into the variable (name) slot of variable accessor commands
+* blocks: support for setting (variadic) Boolean input slot defaults
+
+### 2024-09-03
+* gui, objects, blocks, byob: decoupled skeuomorphic/flat UI design from dark/bright UI theme
+* German translation update for UI Looks
+* updated dev version
+* threads: reverted to ringified variable blobs as valid inputs for variable setters
+
+### 2024-09-02
+* lists: let list-based objects inherit variables from both other lists and also sprites and the stage, including from global variable scope
+
+### 2024-08-29
+* blocks: avoid errors when specifying default values for non-editable slots
+* updated dev from master (pulled Catalan translation update v10.0.6)
+* store: updated file version to 11-dev
+* updated dev version
+
+### 2024-08-28
+* threads: added metaprogramming support for input groups
+* updated dev version
+
+### 2024-08-27
+* blocks, threads: new localized "parent" selector for accessing list items, points to entry at ellipsis "..."
+* byob: use slot numbers and support mnemonics for input groups
+* updated dev version
+
+### 2024-08-26
+* new list-dictionary based object system with data scope and prototypical inheritance
+* new OOP library
+* updated dev version
+
+### 2024-08-20
+* new dev version
+
## 10.0.13:
* **Notable Changes:**
* disabled pwa service worker in yet an attempt to address reporterd Chrome v129 memory issue
diff --git a/snap.html b/snap.html
index e4c54523f..fcb84a267 100755
--- a/snap.html
+++ b/snap.html
@@ -18,9 +18,9 @@
-
+
-
+
diff --git a/src/gui.js b/src/gui.js
index 377a1f495..aee164708 100644
--- a/src/gui.js
+++ b/src/gui.js
@@ -87,11 +87,11 @@ BlockVisibilityDialogMorph, ThreadManager, isString, SnapExtensions, snapEquals
// Global stuff ////////////////////////////////////////////////////////
-modules.gui = '2024-October-10';
+modules.gui = '2024-October-11';
// Declarations
-var SnapVersion = '10.1-rc2';
+var SnapVersion = '10.1.0';
var IDE_Morph;
var ProjectDialogMorph;
diff --git a/src/objects.js b/src/objects.js
index 33a874cae..131535040 100644
--- a/src/objects.js
+++ b/src/objects.js
@@ -96,7 +96,7 @@ CustomBlockDefinition, exportEmbroidery*/
/*jshint esversion: 11*/
-modules.objects = '2024-October-10';
+modules.objects = '2024-October-11';
var SpriteMorph;
var StageMorph;
@@ -4999,9 +4999,11 @@ SpriteMorph.prototype.renameVariable = function (
container, newWatcher, targets;
function renameVariableInCustomBlock(definition) {
- definition.scripts.forEach(eachScript =>
- eachScript.refactorVariable(oldName, newName)
- );
+ definition.scripts.forEach(eachScript => {
+ if (eachScript instanceof BlockMorph) { // skip comments
+ eachScript.refactorVariable(oldName, newName);
+ }
+ });
if (definition.body) {
definition.body.expression.refactorVariable(
oldName,
diff --git a/sw.js b/sw.js
index c4ed9c416..b68016207 100644
--- a/sw.js
+++ b/sw.js
@@ -1,6 +1,6 @@
/*global self, caches*/
/*jshint esversion: 6*/
-var snapVersion = '10.1-rc2',
+var snapVersion = '10.1.0',
cacheName = `snap-pwa-${snapVersion}`,
filesToCache = [
'snap.html',