← Commit history

Publish 0.3.10

John Lauer ·1147d2ff63 · ·parent a6fb10a
3 files changed +25−7
install.sh+23−5
@@ -62,6 +62,21 @@ html = open(wb).read() #      not land. # Takes effect on the NEXT load, because VS Code reads this state at startup. That is # what the two post-load re-assertions in ah's cascade are for in the current session.+# THE WRITE IS NOT ENOUGH, IT MUST BE FOLLOWED BY A RE-READ (John 2026-08-25).+# Measured on a real v25-full image: the seed wrote, its guard key landed, and the rail+# still showed Search/SCM/Debug because the running workbench persists pinnedViewlets2 from+# its own live UI state and overwrote us. ah's /demo/run hide-activitybar has always known+# this: it writes pinned:false and then RELOADS the workbench so VS Code re-reads the state.+# This seed now does the same thing in-page.+#+# Two field notes that cost real time:+#   - `pinned` is what hides an icon. `visible` is not: in a live image EVERY entry carries+#     visible:false, including Explorer and Extensions, which are plainly on the rail.+#   - reloading code-server raises Chrome's "Reload site?" beforeunload dialog, and pup has+#     no verb to answer one, so a single dialog wedges CDP browser-wide. We suppress it in+#     the CAPTURE phase (VS Code registers via addEventListener, so nulling the property is+#     not enough) and only ever on this one first-run reload, before the user has anything+#     open to lose. SCRIPT = ('<script>(function(){var db=null,n=0,done=false;'  'var iv=setInterval(function(){'  'if(done||++n>60){clearInterval(iv);if(db){try{db.close()}catch(_){}}return}'@@ -75,12 +90,15 @@ SCRIPT = ('<script>(function(){var db=null,n=0,done=false;'  'var pg=os.get("workbench.activity.pinnedViewlets2");'  'pg.onsuccess=function(){var arr=[];try{if(pg.result)arr=JSON.parse(pg.result)}catch(_){}'  'if(!arr.length)return;'- 'var ids=["workbench.view.search","workbench.view.scm","workbench.view.debug"];'- 'ids.forEach(function(id){var f=null;for(var i=0;i<arr.length;i++){if(arr[i].id===id)f=arr[i]}'- 'if(f){f.pinned=false;f.visible=false}else{arr.push({id:id,pinned:false,visible:false})}});'+ 'var ids=["workbench.view.search","workbench.view.scm","workbench.view.debug"],hit=0;'+ 'arr.forEach(function(e2){if(ids.indexOf(e2.id)>-1){e2.pinned=false;hit++}});'+ 'if(!hit)return;'  'os.put(JSON.stringify(arr),"workbench.activity.pinnedViewlets2");'- 'os.put("1","adom.activityBarSeeded");done=true}};'- 't.oncomplete=function(){if(done){clearInterval(iv);try{db.close()}catch(_){}}}}catch(_){}'+ 'os.put("1","adom.activityBarSeeded");done=true;'+ 't.oncomplete=function(){clearInterval(iv);try{db.close()}catch(_){}'+ 'try{window.addEventListener("beforeunload",function(ev){'+ 'ev.stopImmediatePropagation();delete ev.returnValue},{capture:true});'+ 'location.reload()}catch(_){}}}}}catch(_){}'  '},500);window.__hdTrustedDomains=1;window.__hdAbSeed=1})();</script>'  # Collapse the primary sidebar ONCE per profile so the golden image opens clean  # (no Explorer panel). Guarded by a localStorage marker so it won't fight the
package.json+1−1
@@ -4,7 +4,7 @@   "type": "bootstrap",   "title": "Adom Hydrogen (Windows / WSL2)",   "brief": "The Windows (WSL2) platform layer for Hydrogen.",-  "version": "0.3.9",+  "version": "0.3.10",   "description": "The Windows platform layer for Hydrogen, where the workspace runs in a WSL2 Ubuntu distro. Depends on adom/hydrogen-bootstrap (the platform-generic layer, which bundles the generic hydrogen-* skills) and adds everything specific to the WSL2 runtime: the WSL2/networking/lifecycle hydrogen-* skills (BUNDLED here by design, John+Kyle 2026-07-16) and the WSL2 code-server workbench seed. Sibling adom/hydrogen-mac-bootstrap carries the parallel mac skills. This is the package the golden WSL2 image installs.",   "org": "adom",   "platform": "linux",
page.json+1−1
@@ -4,7 +4,7 @@   "slug": "hydrogen-windows-bootstrap",   "title": "Adom Hydrogen (Windows / WSL2)",   "brief": "The Windows (WSL2) platform layer for Hydrogen.",-  "version": "0.3.9",+  "version": "0.3.10",   "author": {     "name": "John Lauer",     "email": "[email protected]"