Changelog
Unreleased — 2027 edition
- A new lineup. ProSearcher Toolbar 2027 Edition (required), Baghdad Translation and the Jazz Bar. The eight stock toolbars of 0.3 (Bonzi Buddy, Yahoo Toolbar, Ask Jeeves, MyWebSearch, Smiley Central, WeatherBug, Babylon and Hotbar) are retired, with Ask.com's destinations and the opt-in model; a 0.3 profile migrates once.
- ProSearcher. Search with simulated suggestions, Ask an agent and a Premium that installs nothing; weather that holds all day and counts the water the week's searches used; horoscopes for AI doomers or AI boomers; and the Search Buddies. Mona counts AI websites and notices searches made elsewhere, Biscuit reads the search or the page's heading and is reminded of something else, and Guy quotes 42 theses from The Society of the Spectacle without repeats. Each is a 96 px animated sprite with its own finish (a CRT, dithered clip art, an offset print), drawn with WebGL2 or plainly without it. Balloons type out and offer up to two choices; Not Now quiets a buddy for ten minutes.
- Baghdad Translation. Literal translates each Han character separately and other words through its glossary; Script sets the page in Aref Ruqaa under a strip with Show Original; Read page (stutter) catches on consonants, Mild or Severe; Baghdad Daily is a two-host podcast of the page, read aloud.
- Jazz Bar: public-domain tunes in the style of famous recordings by Kenny G, John Coltrane, Marvin Hamlisch, Sidney Bechet and the Jacques Loussier Trio, from Mutopia Project MIDI files kept in its source and voiced on the sound library. The Dry martini on a Night plate, Play/Pause, an LCD equalizer, the Lounge menu with its songs and Extra smooth, and liner notes crediting the files. Nothing loads from the internet.
- Banner 2. One design for every surface: nine inks, plates, tabs, modules, push buttons, menus with sections, hanging and floating windows, Tinos wordmarks. The Windows 98, XP and Vista appearances, product palettes, window dragging and per-toolbar close buttons are gone. Every bar is 32 px and steps down from Wide to Medium and Narrow before it overflows. Controls hold still while they are used.
- Setup, the first-run wizard: Toolbars (ProSearcher Locked), Local Model, User Scripts and Finish. Run Setup Again, in Settings, only adds.
- The Dashboard replaces the Toolbar Workshop: Toolbars (the On column, Add a Toolbar), Editor, Local Model (Prepare Model, progress, Cancel Download) and Settings (User Scripts, Setup, Data with Export and Import Collection).
- Uninstall challenges. ProSearcher leaves after one round of Pong, Baghdad Translation after choosing the three real photos of six, the Jazz Bar after three computer trivia questions. Your own toolbars take one confirmation.
- The popup lists the installed toolbars, Locked when required, with what each does on the tab, and the local model and user scripts with their next step.
- Script API. Inks, plate shapes, wordmarks and edition badges;
<Toolbar.Module>,<Toolbar.Strip>,<Toolbar.Menu.Section>, push-button kinds,<Toolbar.Search.Suggestion>andonSearch; persisted stores; window options (icon, ink, badge, strip, width);speakwithrateandonEnd; and thehoroscope,forecastandpodcasttasks. The 0.3 theme options still load and are ignored. - Docs site.
npm run docs:buildbuilds the Toolbar Script Reference, published at bundleware.net/doc, from the guide,src/api/script.tsanddocs/reference/, anddocs:checkverifies its links and examples. The docs describing 0.3's toolbars and appearances were removed. - The website. A landing page at bundleware.net/ runs the three toolbars on the page itself, under a poster-glass hero, sticking to the top once the hero has scrolled away; visitors with Bundleware installed see the extension's bars instead.
npm run landing:buildbuilds it,npm run website:buildbuilds it with the docs, anddeploy/site/Dockerfileserves the result with nginx, for Coolify. - CI runs on Ubuntu 24.04;
scripts/ci-linux/run.shruns the same steps in Docker. - npm and Node. Bun is no longer used: dependencies install with
npm cifrompackage-lock.json, the scripts run on Node 24 withtsx, esbuild builds the user-script runtime, and markdown-it renders the docs site.
Unreleased — toolbar scripts (API 2)
- Toolbar scripts are JSX with React-style function components and hooks, rendered by Preact:
useState,useEffectand React's other hooks, plususePage,useAiSite,useActivity,useSpeech,useGenerate, andReadoutandIconcomponents. The worker compiles JSX before injection (sucrase), keeping line numbers; the content script and the Dashboard never load the compiler. Lit templates,context.state/effect/viewand the legacy Svelte copies of the bundled toolbars are gone. - The toolbar is a live component composed of Raycast-style parts:
Bundleware.defineToolbar(<MyToolbar />)renders<Toolbar>with<Toolbar.Button title icon onAction />,<Toolbar.Menu>/<Toolbar.Menu.Item>,<Toolbar.SplitButton>,<Toolbar.Search>,<Toolbar.Text>,<Toolbar.Status>,<Toolbar.Separator>,<Toolbar.Right>and<Toolbar.Widget>; prebuilt<Action.OpenInBrowser>,<Action.OpenWindow>and<Action.ShowPopup>;Icon.Search-style constants. State changes re-render the row: titles,checked(controlled),disabledand which parts exist update in place without remounting widgets.Bundleware.store()withuseStoreshares state between the row, widgets and windows. Windows open by element (openWindow(<Details />, { title })), and popups withshowPopup. The object form (items,setup,widgets,windows), string action names,useModel,useAction,context.modelandcontext.actionare removed. - Toolbar sources are TSX: the extension strips TypeScript types as it compiles the JSX, the Editor highlights and validates TypeScript and exports
.toolbar.tsx, and local Gemini may write types. Plain JSX remains valid. The bundled toolbars are TypeScript, checked withstrictinnpm run check; a window body's host-givencloseneed not be passed where it is opened. - Toolbars can make music:
useSound()andcontext.sound()give a deck (play, pause, resume, stop,onEnd) of the toolbar's own Web Audio band, with built-in instruments (sax, trumpet, flute, piano, electric piano, vibes, bass, pad), scheduling ahead and closing with the toolbar;useLevels()andcontext.levels()hear what the toolbar plays;Bundleware.music.readMidi()reads MIDI files andmusic.melody()finds a part's melody. No permissions: the sound never leaves the page. - An editor with CodeMirror, separate drafts and installed revisions, imports, reviewed updates, rollback and explicit previews.
- Chrome user-script worlds with scoped messaging, lifecycle cleanup and runtime errors; Firefox keeps packaged originals.
- Local Gemini generation/refinement with streaming, cancellation, context checks, a syntax-repair attempt and source review.
- API 1 is retired; every toolbar is a script. The contributor template is a TSX toolbar script written like the bundled ones, and adding
src/toolbars/<id>/<id>.toolbar.tsxregisters it.defineToolbarfrom~/api, Svelte widgets,theme.css, the module-onlycta,iconandfake-popupitems, thestandardlayout andapiVersionare removed. Standalone author declarations remain inpublic/bundleware.d.ts. - Toolbars run on every website by default:
@matchis optional, new drafts and the example use<all_urls>, Gemini requests need no website, and the page picker belongs to Preview. - The Dashboard guides users to Chrome's Allow User Scripts setting when they install or preview without it, and detects the change when they return.
- Reviewed and cleaned up API 2 before release: a synchronous
openWindow, one page snapshot, typedicons,context.speech,generate({ … })andaiSite. Bundled and installed toolbars share one context layer and definition intake, checked by a conformance test; curated typings are checked against every shipped script. - Installed toolbars follow in-page navigation even while every toolbar on the page is dismissed or disabled, and the page-text observer runs only while a shown toolbar reads the page. Bundled and installed toolbars hear of a content change only when their own snapshot changed, and both cut reported errors and failed-command messages at 2,000 characters; a command that throws a non-Error shows it as text.
- Floating-character toolbars render command items (actions, menus, split buttons and popups) instead of failing the whole toolbar stack.
0.3.0 richer behaviors and optional local AI — 2026-09-06
- Added retained Jeeves source/results, five-pass Babylon comparisons, three Hotbar skins with preview/cancel and bundle-dependent completion; twelve drawn smileys, wink previews, forecast/radar, activity ledger, local offers and Bonzi controls.
- Added genuine opt-in Chrome local AI setup and a bounded, cancellable worker broker. Explicit generation uses fresh local sessions; authored routines remain available with engine labels and feedback. Actual Nano inference is unverified.
- Standardized additive version-1 commands, transient models, custom windows, selection capture and local-generation contracts with a tested contributor starter.
- Preserved drafts through suspension, menu focus, speech priority and cancellation; expanded deterministic browser checks and three-mode visual walkthroughs.
0.3.0 Vista Aero window reconstruction — 2026-09-06
- Rebuilt Vista windows from original references: glass reflections/rails, edge-mounted caption close, separate Aero wizard header, native-sized controls and command order.
- Added an unmodified, OFL-licensed local Selawik fallback, bounded to window lifetimes.
- Fit measured window bounds on first open and theme/viewport changes; retained checkbox identity, keyboard focus, dragging and Escape. Added normal/2× comparisons and browser checks, including restrictive page font CSP.
0.3.0 toolbar icon coverage — 2026-09-06
- Product-local brand and command image lists for all eight specimens, shared public pictograms, optional search icons, complete Babylon menu images and branded settings. New dated Yahoo reference and three-mode icon comparison captures; uncertain vendor editions remain explicitly qualified.
0.3.0 page context API — 2026-09-06
- Added bounded page text/selection snapshots and scoped subscriptions to content, navigation, document activity and detected AI state. Snapshots are read-only; form values, hidden text and embedded documents are excluded from page excerpts.
- Migrated five specimens to the shared context and added an executable contributor excerpt example, lifecycle checks and body-replacement coverage.
0.3.0 Windows 98 presentation — 2026-09-06
- Added a persistent Windows 98 SE / IE5-inspired mode with square frames, gray close buttons, classic bevels and menu states. XP remains the default.
- Extended per-product appearance overrides to
win98; three-mode changes preserve open dialogs, fields and dismissals. Added browser captures and regression checks.
0.3.0 independent product skins — 2026-09-06
- Added five original historical source images, provenance receipts and visual guidance distinguishing colored Hotbar commands from neutral companion rows.
- Extended the version-1 API with product palettes and optional XP/Vista overrides; repaired dark control colors and product CSS precedence. OS menus/windows retain their own framing. Hotbar now owns its gold command styling in its module.
- Added a textured contributor example, XP/Vista comparisons and browser checks for palette isolation, input state, focus, overflow and native menu colors.
0.3.0 sticky-sidebar correction — 2026-09-05
- Fixed Wikipedia's Appearance sidebar drifting and oscillating by preventing animated layout values from becoming the baseline for another toolbar inset. Shared layout transactions preserve unrelated fades and restore page transition declarations. Added an XP/Vista browser regression for animated sticky thresholds.
0.3.0 historical fidelity follow-up — 2026-09-05
- Added a promise audit and static historical-package dossier with PE resource, dependency and checksum inventories; no installer execution or bundled vendor resources.
- Added persistent XP Luna / Vista Aero appearance, defaulting to XP, with coherent settings, control and theatrical-window framing. Theme changes retain live state.
- Added keyboard menus, split commands, checked/disabled states, tooltips and command overflow. Inputs/widgets remain mounted; windows drag below the collection.
- Redrew shared small command/weather icons, refined all eight specimens and Bonzi's character, and documented reference-linked comparisons in both skins for the collection and every popup variant. Original voice and exact vendor builds remain unverified where identified in the dossier.
0.3.0 candidate follow-up — 2026-09-05
- Separated host management, root offsets and reversible style ownership; documented the code-organization review and retained the independent toolbar API.
- Generalized popup placement to semantic dialogs/menus/tooltips, HTML popovers, expanded-control targets and floating iframe containers across origins. Preserve focus and geometry, yield to modal/fullscreen or unsafe surfaces, and restore when the actual blocking overlay closes or loses modality.
- Rebuilt theatrical windows with a shared Bits UI/Svelte frame and aligned corners; anchored Bonzi's close control and removed invisible pointer-blocking areas.
- Verified the actual extension action popup; added individual Restore actions and startup preference reads that do not wait for a cold background worker.
- Moved specimens into independent folders, documented the version 1 developer API, and exercised a copied custom widget's styles, local state and owned lifecycle.
- Added reversible fixed/sticky-header and overlay positioning, nested-scroll handling, top-layer collection placement, open-shadow-root observation and zoom checks.
- Move fitting reCAPTCHA popups below the collection without shrinking their frames; temporarily yield in that document when the complete challenge cannot fit, then restore the existing toolbar preferences when it closes.
0.3.0 release candidate — 2026-09-05
- Document-local dismissal until reload, persistent disable/restore across tabs, serialized preference changes, validated messages, worker-independent initial reads and bounded startup recovery.
- Cleanup for observers, listeners, margins, body replacement, reinjection, speech and pending dialogs; no residual offset when all bars are hidden.
- Host-restricted Gemini, Copilot, ChatGPT and Perplexity website adapters with prefilled/replaced prompt support, selected-link reporting and simulated regions.
- Exactly twelve-word summaries with content refresh, local caret-aware smileys, tested broken-English transforms and local-only English speech with error states.
- Reference-linked visual refinements, separate settings/dialog styles, focus restoration, Escape, reduced motion, narrow layouts and zoom checks.
- Ask.com retirement handled locally; other unavailable destination checks are explicitly unverified.
- Validated contributor template and schema, historical/asset provenance inventory, pinned Bun/frozen installation, unit and packaged-browser regression suites.
- Candidate ZIP/checksum, install screenshots, data-handling documentation and an unpublished Store-description draft.
AI website fixtures are verified; authenticated vendor interaction and native panels are not. Firefox build validation is separate from runtime validation. Historical versions/images with incomplete evidence are marked in the provenance index. Licensing, publication, native integration and outreach remain follow-ups.