Repository navigation
Releases: bonklek/milXdy
Release list
milXdy 0.2.5 Experimental
milXdy 0.2.5 Experimental
This experimental prerelease includes the new Remilia account connection,
reorganized settings, and reader and interface improvements. Version 0.2.4
remains the latest stable release.
Downloads
- Chrome, Brave, and Edge: download
milXdy-0.2.5-chromium.zip, extract it,
and load the folder from the browser's extensions page with Developer mode enabled. - Firefox and Waterfox: use
milXdy-0.2.5-firefox.zipwith temporary add-on
loading. Authenticated Remilia Login is available in the Chromium build;
Firefox supports public and non-authenticated features. - Verify downloads against
milXdy-0.2.5-checksums.sha256.
Update the existing milXdy extension in place. The Chromium build retains the
registered extension identity and login callback; there is no separate beta build.
What changed
- Official Remilia Login with PKCE, visible connection and permission states,
and explicit reconnect and disconnect controls. - Reorganized popup settings, clearer account status, improved navigation,
and controls for audio and interface preferences. - A temporary dual-auth holdover: milXdy uses Remilia Login for supported API
features; native Hunt, Claim, and Craft use the separate RemiliaNET website
sign-in. Connecting or disconnecting milXdy does not sign the website in or out. - Updated RemiStats, pokes, Beetle reads, and RemiNet Chat integration with
scoped API access and clearer service responses. - Article reader control placement, paragraph navigation, playback status,
and word tracking improvements. - An explicit Read visible messages aloud action for supported DM
conversations, with text review before browser-voice playback. Highlighting
preserves the original message text, spaces, and links. Private messages
bypass custom HTTP speech services; browser voices may use a remote service. - Review-first audio export through a configured local speech backend.
- Share Kit text layout, rich-text and drawing controls, reviewed export,
and composer integration improvements. - Non-followed GIF filtering, author badge layout improvements, and native
cheese claim streak feedback. - Tighter package permissions and trust checks, reproducible release archives,
and refreshed installation and account documentation.
Experimental compatibility
Features and browser integration may change during experimental testing.
Browser speech depends on the selected browser voice. Audio file export needs
an audio-producing backend; native browser speech cannot export MP3.
Reloading or disabling the extension, or ending the browser session, clears
its Remilia connection and requires an explicit reconnect. Native website
sessions remain separate.
See installation and updates
and the Remilia account guide.
Previews
Captured from the application with sample content; no private conversations
or connected account data are shown.
milXdy 0.2.4 — Post-Factory
milXdy 0.2.4 Release Notes
milXdy 0.2.4 is the Post-Factory release. It turns the App SDK groundwork
from earlier releases into visible composer, sharing, add-on, and custom-pet
workflows while tightening the shared runtime underneath them.
Post-Factory
- Adds one compact composer/reply add-on for quick replies, X native Drafts,
Remibooru reaction browsing and attachment, and reviewed Remilia
Maker/CHEESEWORLD handoffs. - Opens the quick-reply panel from the invoking Reply control, preserves focus
and dismissal behavior, and verifies a declared quick-reply value before the
configured submission action. - Uses X's native Drafts instead of creating a second local draft store.
- Browses bounded Remibooru pages and facets with visible attribution,
canonical-source links, and explicit thumbnail attachment to the initiating
composer. Nothing is attached or posted automatically. - Keeps package code away from X DOM, cookies, tabs, image bytes, raw browser
messaging, and remote-session details; reviewed host callbacks own those
boundaries.
See Post-Factory.
Share Kit
- Moves Tweet PNG into the reviewed Share Kit package while preserving its
stable feature identity and existing visual/profile settings. - Keeps selected post text, media, quote context, date, stats, borders, palette,
copy, download, and browser-share behavior inside a local review dialog. - Adds live color previews, full-text and cashtag rendering, improved quote-post
context, removable included images, themed link cards, and a subtle optional
milXdy watermark. - Adds deliberate Share to RemiNet staging. The reviewed PNG becomes a
pending local RemiNet Chat attachment and is not uploaded until the user
presses Send in Chat.
Miladychan Portal
- Adds explicit
milXdy-pseudonymous text-only thread and reply posting with an
editable visible name and final destination confirmation. - Keeps Miladychan credentials, RemiNet/X identity, wallet identity, cookies,
and extension identity out of the posting request. - Retains a failed text submission locally, preserves native fallback for
CAPTCHA/media/session/full-board behavior, and never uploads media. - Adds local watched threads, fresh-post rail feedback on open/refresh, clearer
board/thread navigation, top and bottom composers, JUMP controls, quote-link
insertion, and transient target highlighting.
See Miladychan Portal.
Pets Maker and the custom-pet pipeline
- Publishes Pets Maker as the first selectable maintainer-catalog add-on. It is
optional and remains disabled after installation until the user explicitly
enables it in Apps & Features. - Turns one user-selected transparent Milady, Remilio, Bonkler, or Kagami Maker
PNG plus declared traits and body choices into a deterministic, validated
two-fileremilia-pet-request.zip. - Adds a versioned local pet-request bundle and explicit Codex handoff.
- Adds an explicit, credentialless Fetch action that sends only the selected
public Maker family and NFT number to populate visible trait fields. - Gives the Pets Maker rail window Remilia-themed chrome plus movable and
resizable window controls. - Keeps source art, form state, generated bundles, and validation caches local.
Pets Maker does not upload the selected image, post, publish, invoke Codex,
infer missing traits, or add a rights declaration.
See Pets Maker export.
Add-ons Catalog and App SDK 0.2.4
- Adds a deterministic Chromium catalog-selection workflow for checked-in,
hash-pinned maintainer packages with explicit capability/privacy review,
acknowledgements, transactional promotion, rollback, and reload detection. - Makes Pets Maker and Share Kit selectable. Post-Factory remains visibly
Under review in the catalog until its exact source and trusted hash are
committed to an allowlisted catalog path; the record does not pretend to be
an installable artifact. - Supports reviewed external folder/ZIP staging and multi-package composition
without retaining author paths in provenance. - Adds generic package-owned composer/reply panels, native Drafts, maker
handoffs, bounded composer suggestions, reviewed Remibooru queries, and
explicit remote-result attachments. - Adds public starter templates, lifecycle harnesses, schemas, TypeScript types,
accessibility guidance, asset declarations, and contributor UI guidance.
See App SDK overview,
Local Add-ons, and
Add-ons Catalog.
RemiNet, Beetol, rail, and visual polish
- Keeps Remilia access and refresh tokens in background memory and clears
legacy content-readable token keys. - Improves RemiNet Chat placement on X Messages, reaction behavior, transient
authentication-tab handling, and hover/focus dismissal for Last read and
Jump to present markers. - Adds faster Beetle Crafting item placement through RemiliaNET's existing UI,
protects occupied slots, supports right-click clearing of selected items,
preserves native inspection, and never crafts or submits automatically. - Adds Beetol reward audio/visual feedback, lower-volume junk crunch, refresh
ordering, and signed-out-state cleanup. - Adds left/right rail switching, pointer reordering and persistence, a
whole-item reel with mechanical feedback, media-viewer hiding, shortcut
clearance, and stronger enable/disable recovery. - Aligns composer/factory/Drafts icons, themes quick replies, expands the em
dash helper to DMs, shows the standard 280-character zero boundary, improves
notification/read-state visuals, and keeps verified display names readable.
Runtime and maintenance
- Contains an individual Apps & Features card-render failure instead of losing
the rest of the catalog. - Stops automatically opening Apps & Features on first run; setup remains an
explicit user action. - Decomposes side-rail and app lifecycle ownership, centralizes background
message authorization, adds architecture/negative-fixture gates, and removes
more than two thousand lines of unreferenced legacy modules. - Reorganizes the public documentation by audience and preserves exhaustive
index/link coverage.
Known limitations
- milXdy remains an unpacked GitHub beta rather than a Chrome Web Store or
Firefox Add-ons listing. - Catalog-managed custom builds are Chromium-only in 0.2.4. Firefox/Waterfox
uses the normal release archive, and File System Access features remain
browser-limited. - Post-Factory is part of the reviewed 0.2.4 package composition but is not yet
selectable from the public catalog record. - Miladychan direct posting is text-only. CAPTCHA, media, session-bound, and
unsupported-board behavior remains on the native site. - Share to RemiNet stages a local attachment for review; it does not send a
chat message automatically. - Remibooru contribution, the rights-compatible visual-elements repository,
the Maker pet-import/QA pipeline, versioned catalog releases, and the broader
multi-site runtime are 0.2.5 follow-up work rather than 0.2.4 features.
Issue map
The user-visible release work spans Post-Factory and sharing issues #16,
#17, #25, #68, #79, #187, #188, and #189; Miladychan Portal
#41; the catalog work in #181; Pets Maker issues #190 and #191; and
RemiNet/Beetol work in #194. Issues #24, #74, #183, #192, and #193
are explicitly scheduled for 0.2.5 and are not represented as shipped here.
milXdy v0.2.3 — The Reliability Update
milXdy 0.2.3 Release Notes
milXdy 0.2.3 is the reliability and accessibility follow-up to 0.2.2. It brings a broad set of recovery, performance, and interface improvements across the extension.
Included Fixes
- Isolate shared runtime failures so one app cannot strand cleanup, surface delivery, or idle work for other apps.
- Make startup, network, storage, worker, speech, and local-file workflows cancelable and recoverable.
- Restore reversible feature teardown and last-user-intent behavior across Maxxer, Music, Post-reading, Chat, Wiki, and Miladychan.
- Improve keyboard, focus, reduced-motion, live-region, and screen-reader behavior across the popup and in-page app surfaces.
- Keep Beetol hunts responsive by returning the mutation result before a separate background state reconciliation.
- Keep fast RemiliaNET Hunt available through all three charges, immediately darken resolved Claim and exhausted Hunt controls, and refresh the fast-result display from current Beetle state.
- Recover RemiNet Chat from stalled authentication or WebSocket opening instead of leaving the composer permanently disconnected on Connecting.
- Keep connector logout authoritative over cached/in-flight Chat authentication and abort background fetches when their shared deadline expires.
- Group Root Visual controls by their actual X/app ownership while preserving existing visual-theme storage and profile-pack compatibility.
- Show when more pinned apps are available above or below the visible side rail.
- Keep rail settings compact and separate from the Apps & Features catalog, with one-row ordering controls and advanced app presets collapsed by default.
- Add a Local Add-ons panel in Apps & Features for loaded-build status, user-selected ZIP preflight, package handoff to a source checkout, and clear Chrome Load unpacked or Reload guidance. The running extension does not install package code or rebuild itself; the checked-in local manager performs authoritative validation and creates the custom Chromium build.
- Preserve responsive native Like animation while keeping lightweight Maxxer catch and level-up feedback.
- Reduce unnecessary work during browsing by using a bounded visible-page check for controls and a stable left-rail safe area for the dock.
- Show the final Beetle Hunt reward before the red Done state and normal persisted 90-minute cooldown.
- Open supported Wiki tabs, details, and collapsible sections before read-aloud highlights and scrolls their text.
- Show poke controls only for accounts with a confirmed RemiliaNET identity while retaining independent score and beetle badges.
- Make active Chat reaction counts visibly pressed, keep dark Chat pop-outs free of bright outer edges, and use darker Post/Reply buttons in the dark default preset.
- Match the Remilia Wiki read-aloud control to the square Wiki button treatment.
- Include Firefox/Waterfox compatibility, target-specific update downloads, fullscreen DM media, and Tweet PNG rendering improvements introduced after
0.2.2. - Localize the browser-provided extension name and description in Russian, falling back to English elsewhere. The in-app interface remains English in this release.
- Add an Appearance toggle for hiding X's dot-style hidden-message-request indicator without suppressing numbered unread badges.
- Add the opt-in Link Browser app: Alt-click a link on X/Twitter to inspect it in a docked, sandboxed reader panel while normal links keep their native behavior.
What This Means
- Apps recover more gracefully from failed, canceled, or stale work.
- Settings, startup, scanning, speech, and local-file actions are more dependable.
- Local custom builds now have an in-extension status and handoff surface while retaining the reviewed build-time package model.
- Chat, reading, music, Wiki, visual, and game surfaces clean up predictably when you switch pages or turn them off.
- Keyboard navigation, focus behavior, motion preferences, and screen-reader support are improved throughout the extension.
- Everyday browsing work is kept lighter, especially around interactive X surfaces.
milXdy 0.2.2
milXdy 0.2.2 Release Notes
milXdy 0.2.2, The Prepared App SDK Update, is a platform beta update focused on making apps, settings, package metadata, and release gates easier to reason about before broader community app loading work continues.
Status: released. Automated non-live release gates passed, release artifacts were verified, and live QA for the 0.2.2 release scope is complete.
Highlights
Apps & Features and settings cleanup
- Apps & Features now has clearer information architecture for full apps, feature modules, enablement, rail pinning, app-card details, reset actions, privacy notes, and diagnostics.
- First-run Lite, Balanced, and Full setup choices apply exact app enablement, rail defaults, and the matching Performance mode while keeping first-party apps available and toggleable.
- First-party app and feature settings declare manifest metadata for location, storage, reset behavior, preset participation, and generated control expectations.
- The settings migration audit records current storage ownership, popup mirrors, Apps & Features destinations, and profile-pack safety decisions.
- App settings mirror verification keeps popup compatibility and generated Apps & Features metadata from drifting.
- Composer Tools joins Apps & Features as a local-only feature module that converts typed double dashes into em dashes inside supported X/Twitter post composers.
App SDK preparation
- First-party app registry metadata now covers package kind, lifecycle mode, surfaces, site scopes, route scopes, cost, privacy labels, background message declarations, rail support, and app chrome compatibility.
- First-party apps are aligned with the shared runtime contract for lifecycle hooks, routed background messages, surface delivery, shared scheduler use, and bounded observer behavior.
- App SDK compliance verification now checks app metadata, direct messaging exceptions, settings declarations, background capabilities, and remaining internal bridges.
- Remaining direct runtime bridge use is classified as internal and verified: RemiNet Chat's stateful socket bridge and the Wiki sidebar frame bridge are both sender-restricted and intentionally not local package APIs.
App chrome and contributor UI guidance
- Shared app chrome style presets cover native app defaults, RemiliaNet-style chrome, and classic bevel utility-window chrome.
- App surfaces share theme variables for frames, headers, controls, dividers, shadows, and light/dark readability.
- The contributor UI style guide documents side-rail apps, app headers, controls, theme expectations, semantic variables, and do/do-not guidance for classic app windows.
- Overlay geometry hardening keeps app windows bounded around the side rail and preserves restore behavior.
Local app package and custom-build groundwork
- Local package examples now cover first-party replacement pilots and a novel local-dev package shape.
milxdy.app.jsonhas a documented schema with package kind, SDK compatibility, lifecycle, site scopes, settings, permissions, privacy, background metadata, and asset declarations.- The local package composer supports folder and zip package inputs, deterministic build plans, package hashes, permission summaries, web-accessible asset output, and custom Chromium build output under
dist/chromium-local-apps/. - Trust gates fail closed for blocked or unreviewed packages, unacknowledged privileged surfaces, unsafe paths, malformed zips, duplicate package IDs, storage conflicts, invalid host declarations, direct runtime messaging, and sensitive extension API use.
- Novel local packages can be controllable through generated Apps & Features enablement metadata, but package-owned background handlers, marketplace discovery, signatures, and polished install/update UI remain follow-up work.
Filesystem and release infrastructure
- Source layout is organized around
src/apps,src/platform,src/extension, andsrc/distributions. - Public extension assets live under
assets/extension; app assets live underassets/apps; user-download helper material is kept out of web-accessible resources. - Build, package, smoke, verify, and release scripts are grouped under
scripts/build,scripts/packages,scripts/smoke,scripts/verify, andscripts/release. verify:filesystem-layoutprevents historical roots such aspublic,src/features, flatscripts/*.mjs, and old example package paths from returning.- The canonical current release gate,
verify:release:gates, rebuilds Chromium/Firefox outputs, validates platform contracts, verifies package/composer trust gates, checks app smoke, packages release archives, verifies checksums, and checks archive reproducibility.
Security, privacy, and compatibility hardening
- App SDK
context.sendMessage()now enforces declared background message types for the sender app. - Beetol, Music, Milady Maxxer, RemiStats, Miladychan Portal, and Post-reading message paths are routed through App SDK or explicitly classified internal bridges.
- Post-reading full-quote fetching is off by default and uses credentialless public sources instead of active X/Twitter session material, bearer tokens, CSRF values, or GraphQL discovery.
- Post-reading OCR bridge responses no longer echo authentication tokens, and OCR/media URL policy is restricted to expected X/Twitter media sources.
- RemiNet media and avatar URL handling is allowlisted so the extension background is not a general-purpose remote fetcher.
- Release artifact verification locks expected archive behavior and avoids exposing mismatched browser ZIP downloads through the update flow.
GitHub Issue Coverage
The release/0.2.2 branch carried the accepted scope for this release. Update or close the matching issues based on the final shipped scope.
#42Overlay positioning, snap, and restore behavior: covered by overlay geometry hardening and live rail/app probe coverage.#43Contributor UI style guide: covered by the public contributor UI style guide for classic app surfaces.#52Apps & Features settings migration: covered by app/feature enablement, rail management, app-card metadata, and settings mirror verification.#53First-party App SDK compliance: covered by lifecycle metadata, shared runtime alignment, bounded observers, app compliance verification, and internal bridge classification.#54Future local apps-folder package shape: covered by package manifests, examples, schema, package verifier, composer, and custom Chromium build flow.#55Top-level settings and presets: covered by first-run setup, Performance mode/profile-pack metadata, and popup/App surface split.#57Settings schema: covered by manifest settings metadata, reset behavior, storage ownership, control metadata, and preset participation rules.#58Settings audit: covered by the settings migration audit and generated mirror verification.#59Apps & Features IA: covered by app/feature grouping, enable/open/reset roles, rail pinning, and privacy/cost metadata.#60Registry metadata: covered by first-party app registry metadata and release verifiers.#61Settings compatibility: covered by popup mirrors, storage migration notes, reset compatibility, and app settings verification.#62App chrome presets: covered by shared app chrome presets and style-guide documentation.#63Profile packs: covered by profile-pack import/export for Appearance plus Performance and safety rules for future sections.#64,#90, and#39: partially advanced by bounded Root Visuals observers and shared runtime guidance; deeper visual controls, Max long-task work, and scanner rewrites remain follow-up work.#66RemiNet Chat in X Messages: covered by placement fixes and route-scope declarations.#74Multi-site app runtime direction: advanced by site-scope metadata and privacy disclosure, while broad non-X content-runtime expansion remains future work.#94and#96Wiki sidebar dark-mode polish: covered by the dark-mode setting and footer styling fix.#101Local app composer/custom build: substantially advanced by the composer, build integration, and trust gates; marketplace discovery, signatures, and install/update UI remain follow-up work.#102Custom app authoring developer experience: advanced by the schema, novel verifier command, example package, and empty-folder-to-build docs.
QA Status
Passed locally on the prepared branch:
pnpm.cmd run verify:release:gatesgit diff --checkpnpm.cmd audit --json
The release gate includes TypeScript, Chromium and Firefox profile builds, current release contract checks, filesystem layout verification, platform contracts, URL allowlists, App SDK compliance, internal messaging bridge verification, local app package and trust-gate verification, app settings mirrors, Music build checks, Post-reading distribution checks, Firefox lint classification, current extension/app smoke, release archive packaging, checksum verification, and reproducible archive verification.
Known non-live warnings:
- App SDK compliance reports the RemiNet Chat socket bridge and Wiki sidebar frame bridge as intentional internal bridges with sender restrictions.
- Firefox lint continues to report classified warnings for generated/bundled code patterns such as OCR/worker eval and innerHTML use. The release gate treats the current warning class as expected while failing on unclassified release blockers.
Manual QA still required before publishing:
- Reload the unpacked
dist/chromiumbuild and refresh X/Twitter. - Open Apps & Features from the side rail.
- Confirm representative enabled and pinned apps open from the rail: Post-reading, RemiNet Chat, Beetol, Remilia Wiki Sidebar, Miladychan Portal, Music, and Milady Maxxer.
- Confirm disabled or unpinned apps are absent or reachable exactly as expected.
- Enable Composer Tools and confirm typing
--in a post composer becomes an em dash, while...
milXdy 0.2.1
milXdy 0.2.1 Release Notes
milXdy 0.2.1, The Polish Patch, is a public beta update focused on the fixes found during 0.2.0 platform testing: update flow correctness, cooldown memory, layout polish, and immediate usability repairs.
Status: released. Automated release gates passed, release artifacts were verified, and live QA for the 0.2.1 release scope is complete.
Highlights
Update flow
- The update checker now targets the latest normal published GitHub release and ignores drafts/prereleases on the normal user update channel.
- The popup prefers the release archive matching the current browser target.
- Safe manual update steps were tightened around replacing files in the same loaded extension folder so settings, diagnostics, and RemiNet/Beetol login state are preserved.
- The update flow can hand the copied checklist to a configured LLM target for testers who want guided instructions in ChatGPT, Claude, Grok, or a custom assistant URL.
App platform and performance polish
- Apps Hub setup choices now keep all first-party apps available and toggleable while applying the selected default pins and Performance mode.
- Expanded app cards expose the enable/disable control, and the selected-state color has stronger contrast.
- Runtime lag handling was improved through shared scanner behavior, performance budgets, and cached RemiStats work in Fast mode.
- Release packaging now keeps the public download choice to Chromium or Firefox while Lite, Balanced, and Full remain in-extension setup choices.
- The extension smoke verifier now follows the active package/manifest version and the 0.2.1 build-profile model where first-party apps stay available across profiles.
RemiStats, RemiNet, and Beetol
- Poke cooldowns are restored more consistently after refresh and fall back to a 24-hour cooldown when RemiliaNET does not return an explicit value.
- When the same user appears multiple times on screen, visible poke buttons for that user update together after a successful poke.
- Optional tweet-like-on-poke can click X's Like button for the poked tweet after a successful RemiNet poke.
- Incoming poke flags moved out of the tweet action row to reduce action-button crowding.
- RemiStats badge rendering sanitizes score and beetle metrics and cleans Remilia profile handles before using them in badge state or profile links.
- Beetol Hunt now remembers cooldown/exhausted state across refreshes, restores ready charges when no cooldown remains, and keeps the hunt action clickable when it is visually exhausted but not cooling down.
Post-reading
- Main-feed Post-reading playback gets the smoother estimated highlight behavior previously refined in the Wiki reader path.
- Hyperlink-skipping no longer drifts highlighting offsets.
- Voice selection now has compact language and gender filters, and voice testing respects the selected filter.
- Voice-highlight testing has a stop control, and runtime lag handling was tightened around smooth/estimated highlight work.
- The extra strip at the bottom of the Post-reading popout/control tab was removed so settings remain visible.
Music
- Compact mode has a maximum height so it cannot be stretched into the full-player use case.
- The panel can be resized narrower, and layout state is remembered.
- Minimized controls were simplified.
- The full player volume slider no longer overflows below the panel.
RemiNet Chat
- Scrolled chat history can load older messages in batches with a Show more control.
- Chat media preview behavior was hardened so the image viewer close button remains reachable.
X/Twitter visual polish
- Notification cards regain visible tinting.
- Replies that appear mid-thread on a user's Replies tab get a clearer connector hint even when the parent tweet is not loaded.
- Profile hover-card delay was reduced on the X Notifications tab.
Firefox and permissions
- Firefox profile builds remain part of the release matrix.
- X page CSP noise is classified separately from actionable extension-resource or RemiStats asset permission problems.
- RemiStats tooltip PFP loading documents the required
https://pfp.remilia.net/*permission behavior. esbuildwas updated to0.28.1while keeping release dependency overrides in place.
GitHub Issue Coverage
The public 0.2.1 milestone tracks the release as The Polish Patch - bug fixes, cooldown correctness, layout polish, and immediate usability repairs.
#5Show cooldown when poking an already-poked user: covered by cooldown fallback/restoration and synchronized visible poke-button state.#7Keep image viewer close button clickable when opening chat images: covered by RemiNet Chat media preview hardening.#8Classify and resolve Firefox CSP warnings for RemiStats/X assets: covered by Firefox warning classification and PFP permission docs.#9Restore visible unread notification tint on X Notifications tab: covered by notification tint polish.#10Remember music player layout state and simplify minimized controls: covered by Music sizing/layout/minimized control changes.#11Remove extra bottom strip under Post-reading player: covered by Post-reading layout polish.#12Reduce profile hover-card delay on X Notifications tab: covered by notification-surface hover-card tuning.#13Keep Post-reading highlights synced when hyperlinks are skipped: covered by hyperlink-offset verification.#40Preserve Beetle Hunt cooldown and timer after refresh: covered by Beetol cooldown/exhausted state persistence.#69Fix release update checker for normal GitHub releases: covered by update checker and normal-release documentation.
Close or update these GitHub issues after the public release is published and the release branch is transferred back cleanly.
QA Status
Passed in the current release workspace:
pnpm run typechecknpm run verify:update-checknpm run verify:post-reading:hyperlink-offsetsnpm run build:profilesnpm run verify:platformnpm run verify:app-smoke:020npm run verify:smoke:020
Manual QA completed for this release scope:
- Chrome live testing on X/Twitter for notification tinting, reply connector hints, poke cooldown synchronization, Beetol cooldown memory, RemiNet Chat older-message loading, and Post-reading feed highlighting.
- Follow-up testing for the reported Post-reading smooth-highlight freeze after the runtime lag handling and voice-highlight stop-control changes.
- Firefox smoke testing for RemiStats tooltip PFPs, X CSP warning classification, core popup controls, and profile-build loading.
Release packaging, checksum verification, and reproducibility verification passed for the published 0.2.1 artifacts.
Upgrade Notes
Use the same safe in-place update path as earlier unpacked beta releases: replace files inside the same loaded extension folder, reload the existing extension card, and refresh X/Twitter tabs. Do not remove and re-add the extension unless you intentionally want to reset local extension storage.
milXdy 0.2.0
milXdy 0.2.0 Release Notes
milXdy 0.2.0 is the Platform Update. It moves first-party features toward shared app metadata, runtime-owned lifecycle, one side rail, explicit Performance modes, and new docked app surfaces.
This release is the first public pass at the milXdy app-platform concept, not the final implementation of the full app layer. It lays the rails for a longer-term mod system by reformatting first-party features into shared registry metadata, lifecycle hooks, dock surfaces, and side-rail navigation that future app-layer work can build on.
The long-term goal is a complete composable app/mod system where today's default apps become packages that can live in an apps folder, use a common manifest shape, and eventually sit beside community-built apps. That work is deliberately staged: many default apps need to share scanners, route detection, visual effects, background services, and performance budgets so third-party apps can be powerful without each package duplicating expensive X/Twitter observers. 0.2.0 advertises the platform direction and exposes the design vocabulary early so developers can start planning milXdy apps before the final external-package implementation lands.
Platform Preview Scope
What this release provides now:
- A shared app registry for first-party apps.
- A shared runtime lifecycle for loading, enabling, disabling, surface delivery, and diagnostics.
- A shared Apps Hub and side rail for app discovery, enablement, and pinning.
- Registry-backed metadata for cost, load triggers, permissions, privacy notes, assets, and build profiles.
- A local-first App SDK document that describes the manifest and lifecycle shape future app packages should follow.
What this release does not provide yet:
- A finished external mod loader.
- A user-installable community app store.
- A stable public package API for arbitrary third-party code.
- Fully extracted default apps living as standalone packages in an apps folder.
Developers should treat 0.2.0 as the app-platform preview and planning target: useful for understanding the direction, strong enough to begin designing app ideas, but still before the hard extraction/refactor work needed for a complete mod system.
Implemented Platform Work
- Added a shared first-party app registry in
src/shared/firstPartyApps.json. - Moved root content bootstrapping through the shared content runtime.
- Added lifecycle hooks for app boot, enable, disable, route changes, surface delivery, open, close, and dispose.
- Added app cost metadata, load triggers, package metadata, host permissions, dock metadata, Hub metadata, and privacy labels.
- Made build entries, copied assets, CSS files, host permissions, web-accessible resources, and profile-specific bundle sets registry-driven.
- Added Lite, Balanced, and Full build profiles for Chromium and Firefox outputs.
- Added Fast, Balanced, Full, and Developer Performance modes separate from Appearance presets.
- Added one shared Twitter/X scanner, route service, idle scheduler, surface delivery queue, network queue, and runtime diagnostics.
- Added the shared Apps Hub for enablement, rail pinning, and first-run Lite/Balanced/Full setup.
- Added shared overlay dock, app frame, and panel behavior for dockable apps.
- Moved feature background message handlers onto the shared background router. RemiNet Chat keeps a long-lived
runtime.connectsocket bridge for WebSocket streaming. - Added a shared URL allowlist helper for background fetch services and moved Miladychan, Music, RemiNet media, and Milady Maker image-proxy checks onto explicit allowlist rules.
- Added shared Wiki sidebar background routing for validated wiki navigation, open-in-tab, iframe history, article read-aloud routing, and wiki image fetches.
- Added a shared Remilia auth helper for browser-session adoption, short-lived auth-cookie sync, stored-token migration, silent OIDC refresh, explicit disconnect, and legacy token cleanup.
- Centralized fresh-install defaults so the Apps Hub first-run prompt and conservative heavy-app defaults are seeded from the main background handler instead of feature-local install listeners.
- Hardened RemiStats tooltip rendering by escaping profile fields and encoding PFP image URL segments before writing tooltip HTML.
- Refreshed RemiStats beetle and poke-outline assets used by the RemiNet profile/action surfaces.
- Added dependency override pins for release-maintenance packages already resolved in the lockfile and updated
esbuildto0.28.1after the final audit pass. - Expanded Post-reading/read-aloud beyond tweet playback with Wiki sidebar article routing, a Wiki-attached reader slot, article highlight boundary messages, optional Wiki auto-scroll, and mutual pause behavior between tweet and Wiki reading.
- Improved read-aloud timing with known/probed voice boundary support, sorted voice choices, estimated smooth-highlight fallback for unsynced voices, and optional custom HTTP TTS boundaries for synced playback and seek.
- Added a standalone Chromium Post-reading build path so the extracted reader can be tested independently before any future repository split.
New App Surfaces
Miladychan Portal
- Added a docked Miladychan app in the shared side rail.
- Added board summaries, thread browsing, thread post reading, media previews, board-theme styling, refresh behavior, and links back to native Miladychan.
- Kept the native Miladychan site as the posting and full-board surface.
Remilia Wiki Sidebar
- Added a docked Remilia Wiki app in the shared side rail for Balanced and Full builds.
- Added validated
wiki.remilia.orgnavigation, homepage open, last-page restore, refresh, close, resize, and open-in-tab controls. - Routed normal clicks on inline wiki article links and preview read-more links into the sidebar app while preserving modifier-click native browser behavior.
- Kept the existing inline linker, previews, Link Later, and Grok drafting workflows as the wiki scanner layer.
Music
- Added a docked local music app in the shared side rail.
- Added local folder indexing for Chromium browsers with persistent folder handles, including permission recovery status, rescans, missing-file marking, metadata normalization, and duplicate detection.
- Added library search/sort, queue playback and reordering, playlists, playlist JSON import/export, QR import/export, metadata-based track matching, unresolved-track states, and shared-start radio sessions.
- Added local-first ISRC enrichment with metadata inference, MusicBrainz lookup, optional AcoustID lookup, candidate review, and manual ISRC editing.
- This is a local Remilia Radio-ready baseline: playlist/radio QR payloads share metadata only, joining computes the current track and offset locally, and Firefox shows clear local-folder limitations while preserving the rest of the Music UI.
Documentation
- Added App SDK covering manifests, runtime lifecycle, Apps Hub, Performance modes, overlay panels, background services, and the future GitHub app package path.
- Added 0.2.0 QA checklist, 0.2.0 QA evidence log, 0.2.0 Chrome live QA guide,
npm run build:profiles,npm run verify:release:020,npm run verify:release:gates:020,npm run verify:app-smoke:020,npm run verify:smoke:020,npm run verify:url-allowlist,npm run print:live-probe:020,npm run verify:live-probe:020,npm run package:release,npm run verify:release:checksums, andnpm run verify:release:reproducibleto keep release-gate coverage tied to the platform roadmap, generated extension outputs, background URL security rules, app-specific smoke contracts, non-live release gate orchestration, optional live browser probe status, release archive checksums, and deterministic archive reproduction. - Updated User guide with Apps Hub, side rail, Performance modes, Miladychan Portal, and Music workflows.
- Updated Post-reading user guide and Post-reading standalone notes with Wiki read-aloud routing, voice timing behavior, custom TTS timing support, and the extracted Chromium build scope.
- Updated Privacy and permissions for Miladychan and Music data flows.
- Updated Troubleshooting for Apps Hub, Miladychan, Music folders, enrichment, and QR import.
- Updated the GitHub README presentation with the high-resolution full milXdy logo from
public/brand/milxdy-home-logo-wide.png.
Verification
npm run verify:release:gates:020passed for the published build. It runs the non-live 0.2.0 gate stack, rebuilds profile outputs, packages release archives, verifies checksums, and verifies deterministic archive reproduction.npm run verify:release:020passed for the release notes, docs, registry metadata, and app-surface contracts.- Generated Chromium and Firefox Lite/Balanced/Full release archives contain manifest version
0.2.0and are listed inmilXdy-0.2.0-checksums.sha256.
milXdy 0.1.5 beta
milXdy 0.1.5 Release Notes
milXdy 0.1.5 focuses on RemiNet polish, profile identity surfaces, Tweet PNG export, performance diagnostics, and the first repeatable Firefox package pipeline.
Highlights
- Added a unified Audio tab for read-aloud playback, browser voices, RemiStats sounds, Milady Maxxer sounds, and visual interaction sounds.
- Added RemiChat replies with reply previews, reply context, richer reactions, video hydration, and cached profile lookup behavior.
- Reworked RemiliaNET connector login around browser-session auth and explicit disconnect/retry behavior.
- Added X-native outline poke controls, persisted poke cooldowns, gold incoming-poke styling, and Miladymaxxer XP credit for successful pokes.
- Added Beetle trophy shelf profile banners and profile banner cycling with original, trophy shelf, and random Banners NFT modes.
- Added Tweet PNG export from X/Twitter share actions with local rendering, clipboard/download/share behavior, media, quotes, date, and RemiStats options.
- Added repeatable Chromium and Firefox build targets, Firefox manifest generation, and Firefox lint/QA docs.
Added
Firefox package pipeline
npm run build:chromiumemits Chromium output underdist/chromium.npm run build:firefoxemits Firefox output underdist/firefox.npm run build:allbuilds both targets.npm run lint:firefoxrunsweb-ext lint --source-dir dist/firefox.- Added Firefox QA with the manual load and smoke-test checklist.
RemiNet and RemiChat
- RemiChat reply action, reply preview, reply context rendering, and reply payload support.
- Expanded reaction options and reaction tooltips.
- Inline video attachment hydration in RemiChat.
- RemiChat profile lookup cache and miss caching.
- Browser-session RemiliaNET auth flow with explicit disconnect behavior.
Pokes, Beetol, and profile identity
- Outline poke icon asset and X-like action-row styling.
- Persisted local poke cooldown state.
- Miladymaxxer XP credit for successful pokes against tracked accounts.
- Optional gold incoming-poke alerts.
- Beetol cooldown persistence, hunt-charge display, and clearer ready/cooldown/exhausted states.
- Beetle trophy shelf profile banners.
- Random Banners NFT profile banner cycling with lever artwork, loading state, and spin sound.
Tweet PNG export
- Adds Copy tweet as PNG from X/Twitter share actions.
- Renders a local PNG card with tweet text, media, quote content, date, avatar, and optional RemiStats values.
- Adds Appearance controls for PNG media, quote text, quote media, tall-image shrinking, date, stats, border, and palette.
- Uses a restricted background image-fetch bridge for approved Milady Maker Banners NFT PNG URLs.
Performance and diagnostics
- Shared Twitter scanner now extracts handles, pauses safety scans while the tab is hidden, and writes scanner diagnostics when enabled.
- Feature timing diagnostics are available for RemiStats, Miladymaxxer, Postreader, and Wiki processing.
- Health/reporting moved into the Main popup tab.
Changed
- Popup navigation is now Main, Appearance, Audio, RemiNet, and Wiki.
- Postreader voice selection now uses an installed browser voice dropdown instead of a free-text URI field.
- Postreader placement prefers the X action row instead of tweet header controls.
- Max visual profile now has configurable max media height and improved tweet-header overflow behavior.
- Unread notification tinting is more precise and no longer broadly styles all notification articles.
- Miladymaxxer self profile badges are suppressed when self-tracking is disabled.
Known Limits
- Firefox automated build/lint checks pass, but Firefox support should not be advertised broadly until manual Firefox smoke testing passes using Firefox QA.
web-extreports no Firefox lint errors. The current package still has reviewed warnings from bundled OCR/ONNX/Tesseract code and existing dynamic-rendering patterns, plus a future AMO notice forbrowser_specific_settings.gecko.data_collection_permissions.npm audit --omit=devreports no production dependency vulnerabilities.npm cistill reports dev-tree audit findings, which should be reviewed separately from the frozen feature package.- Direct RemiNet upload/share for Tweet PNG exports is still blocked until a suitable endpoint and privacy behavior are confirmed.
- X/Twitter DOM changes can affect share-menu injection, RemiNet surfaces, and profile banner rendering.
Updating Safely
Keep the same loaded extension folder when updating. Replace files in place, reload the existing extension card, and refresh X/Twitter tabs.
milXdy 0.1.4
milXdy 0.1.4 Release Notes
milXdy 0.1.4, The Aesthetic Update, focuses on visual presets, custom themes, Remilia-style assets, and polish across RemiNet, Beetol, RemiNet Chat, and Maxxer.
Highlights
- Added an Appearance tab for visual presets and theme controls.
- Added Max, Medium, Minimal, and Custom visual modes.
- Added saved custom themes, JSON import/export, and compact share strings.
- Added bundled Remilia font assets and X/Twitter reskin controls.
- Added PFP shape, media shape, button, sidebar, notification, feed-refresh, RemiStats, poke placement, RemiNet Chat overlay, and Maxxer visual controls.
- Added a short RemiNet poke sound that follows RemiStats sound settings.
Added
Appearance and themes
- Appearance settings search.
- Custom theme editor with theme base, layout/shape, interaction, RemiNet surface, and Maxxer visual sections.
- Theme save/delete controls.
- Theme JSON export/import.
- Copy/paste share strings for visual themes.
- Automatic X/Twitter tab refresh after applying visual theme changes.
Visual presets
- Max: strongest Remilia/Milady reskin and Maxxer treatment.
- Medium: balanced Remilia/Milady styling while keeping X recognizable.
- Minimal: mostly original X appearance with restrained milXdy markers.
X/Twitter reskin controls
- Remilia font selection for tweet text and UI chrome.
- Green page fade.
- Square media controls.
- Quote/media gap control.
- PFP shape controls for feed, notifications, and chat surfaces.
- Click-style post button behavior and optional post sound.
- Sidebar bevel and optional sidebar sound.
- Feed-refresh pill styling and optional sound.
- Unread notification tint.
RemiNet, Beetol, and Maxxer polish
- RemiStats backing box toggle.
- Poke placement control.
- RemiNet Chat overlay toggle from Appearance.
- Maxxer intensity, separator, and shimmer controls.
- Milady-only mode.
- Disable self tracking option.
- RemiNet poke sound.
- Visual refresh for RemiNet Chat, RemiStats, Beetol, and Maxxer surfaces.
Changed
- The old Milady Maxxer popup tab is now the broader Appearance tab.
- The build now copies bundled Remilia font assets into release output.
- The manifest now exposes
remilia-fonts/*as web-accessible resources. - The extension now requests
tabspermission so the Appearance tab can refresh open X/Twitter tabs after theme changes. - RemiliaNET 2FA retry docs now more clearly explain the browser-session fallback.
Known Limits
- The visual reskin depends on X/Twitter DOM structure and may need maintenance after X layout changes.
- Custom themes are local extension data. Removing the unpacked extension or loading a different folder can reset them.
- Firefox support is not part of
0.1.4; it is planned for a later release after branch integration and smoke testing.
Updating Safely
Keep the same unpacked extension folder when updating. Replace files in place, reload the existing extension card, and refresh X/Twitter tabs.
milXdy 0.1.3
milXdy 0.1.3 Release Notes
milXdy 0.1.3 is a public beta polish release focused on safer updates, clearer documentation, and RemiNet activity surfaces.
New And Changed
Guided beta updates
- Added Suite-tab update status controls for GitHub beta releases.
- Added Download, Steps, and Reload actions so testers can update the existing unpacked folder without removing the extension.
- Documented the safe update path for preserving settings, Maxxer stats, diagnostics, and RemiNet/Beetol login state.
RemiNet Chat sidebar
- Added an optional Show RemiliaNET chat on X home setting.
- Mounts a right-sidebar RemiNet chat surface on supported X/Twitter routes when enabled.
- Reuses the existing RemiNet/Beetol auth state.
- Supports live chat, reactions, pokes, attachments, media previews, profile links, and minimized mode.
- Keeps the feature off by default while beta performance and auth behavior are validated.
Incoming poke indicators
- Adds recent incoming RemiliaNET poke flags on X/Twitter accounts when connector auth is available.
- Uses notification sender handles inside the active poke window rather than treating old notifications as current pokes.
- Documents the limits of notification-based matching.
Poke and Beetol status polish
- Checks RemiliaNET profile eligibility before users click a poke button, then applies returned cooldown state to matching poke buttons.
- Caches poke eligibility briefly so profile timelines do not repeatedly hit RemiliaNET for the same account.
- Cleans up Beetol panel readiness text so catch/hunt cooldowns show clearer Ready, Both ready, or next-cooldown states.
Settings menu buildout
- Reworked the popup tabs into clearer user-facing sections: Overview, Wiki Links, Read Aloud, RemiNet, Milady Maxxer, and Health.
- Grouped settings inside each tab so prior extension controls remain visible without one long flat menu.
- Added clearer labels for Postreader voice/playback/content/interface/shortcut controls, RemiNet badge/icon/auth controls, and Milady Maxxer display/list controls.
- Added signed-in styling for the RemiNet auth session panel and hides stale poke diagnostics once auth is active.
Documentation and release planning
- Reworked the README into a compact front door.
- Added a docs index and split public guidance into dedicated install/update, user guide, troubleshooting, privacy, roadmap, and contributing pages.
- Added a root changelog and release-specific notes.
- Updated the public roadmap so already-shipped features are no longer presented as future work.
- Opened GitHub Discussions for beta support, ideas, and release-planning feedback.
RemiNet/Beetol auth clarity
- Clarified that the login field accepts Username or email.
- Documented RemiliaNET 2FA fallback through browser SSO and Retry session.
- Documented RemiNet/Beetol login persistence expectations across browser restarts, extension reloads, and ordinary in-place updates.
- Expanded the privacy notes for the browser
cookiespermission and RemiliaNET session behavior.
Tester Notes
- Keep loading the same unpacked extension folder when updating.
- Do not remove and re-add the extension unless you intend to reset local extension storage.
- RemiNet Chat is opt-in from the popup and should be tested on X home timelines first.
- Use the Diag tab for bug reports and include enabled features, version, relevant console errors, and whether a refresh or extension reload changed the behavior.
Verification
Release verification should include:
npm.cmd run typechecknpm.cmd run build- source/docs scan for personal identifiers, secrets, and stale placeholders
- manifest/package version check for
0.1.3 - smoke test of popup settings, guided updater, RemiNet connector auth status, incoming poke indicators, and optional RemiNet Chat loading
milXdy 0.1.2
milXdy 0.1.2 Changelog
Changes since b8737fbc4a2bb2b56a2113e113a448c93cb75dda.
This changelog covers the 0.1.2 beta release.
Highlights
- Integrated Beetol Game as the renamed successor to the previous bextol-hunter code path.
- Added a fuller RemiNet connector login flow with persisted tokens, RemiliaNET SSO retry, cookie-backed API compatibility, and local poke diagnostics.
- Expanded RemiStats badges with independent score/beetle/poke icons, profile badge grouping, poke animation, and live cooldown display.
- Added Remilia Wiki Grok workflows, including post-seeded, generic, and profile prompts plus one-shot and Socratic research modes.
- Added a draggable Remilia Wiki new-page shortcut after Grok prompting.
- Added Postreader OCR host support and richer read-aloud handling for image text, quotes, link previews, and custom TTS.
- Added bug reporting from the Diag tab through GitHub or X, with optional LLM-assisted report drafting.
- Added user-facing documentation, setup guidance, and a change inventory for future release audits.
Added
Remilia Wiki
- Context-menu submenu for Create Wiki entry with Grok:
- Use this post as a jumping off point
- Create a generic article prompt
- Create a profile article prompt
- Grok workflow setting:
- One-shot draft sends a single complete Remilia Wiki research/drafting prompt.
- Socratic research opens Grok's conversation view and sends staged prompts for scouting, source discovery, article planning, and clean MediaWiki drafting.
- Remilia Wiki prompt rules for:
- commit-summary lines
- inline citation templates
mediawikifenced output- profile notability checks
- Grok render-artifact cleanup
- Remilia Wiki internal links and style
- Draggable Remilia Wiki new-page shortcut after Grok prompting.
- New-page shortcut opens
https://wiki.remilia.org/index.phpwith the configured preload template. - Shortcut snapping and overlap avoidance with the Beetol hunter widget.
- Wiki helper AI pack files under
public/wiki-helper/.
RemiNet Connector And Beetol Game
- Beetol Game feature bundle under
src/features/beetol/andpublic/beetol/. - Migration from legacy
bextol.*token keys tobeetol.*token keys. - RemiliaNET login using Username or email.
- Access and refresh token persistence in Chrome extension local storage.
- Refresh-token recovery when checking auth status.
- RemiliaNET SSO flow:
- Open RemiliaNET SSO
- Retry session
- RemiliaNET cookie compatibility:
- requests browser
cookiespermission - sets short-lived
authTokencookie from the stored access token before API calls - clears the cookie on logout
- requests browser
- Auth verification with
/api/profile/whoami. - Last poke diagnostic in the RemiNet connector settings panel.
- Poke result verification and fallback retry behavior.
- Poke cooldown parsing from multiple RemiliaNET response shapes.
- 24-hour cooldown fallback when RemiliaNET accepts a poke without returning an explicit cooldown.
RemiStats
- Independent RemiStats score, beetle-count, and poke icon toggles.
- Profile badge grouping so score badges and poke actions stay together.
- Poke-button shake animation while sending.
- Live cooldown pill after pokes.
- Better handling when a poke is rejected with an existing cooldown.
- Cleaner removal of profile badge groups when RemiStats is disabled.
Postreader
- OCR host page at
public/ocr.html. - Built output for
dist/ocr.htmlanddist/ocrHost.js. - Improved image OCR and image-alt reading order so image text is read before parent caption text.
- Skip behavior for active OCR/image text.
- Custom HTTP TTS endpoint documentation.
- Custom endpoint timing support for synced highlighting when boundaries are returned.
Maxxer
- Optional RemiStats beetle-user bridge, enabled by default, so accounts with RemiStats beetle stats can count as Maxxer-worthy.
- Full settings surface for mode, sounds, level badge, card themes, whitelist handles, manual Milady handles, and legacy import.
Diagnostics And Feedback
- Diag tab bug-report actions:
- Report via GitHub
- Report via X
- optional LLM assisted prompt copying
- GitHub issue prefill for bug reports.
- X bug-report reply prefill to the collector post.
- Local notification when the LLM-assisted bug prompt is copied.
- Expanded diagnostic/status documentation.
Documentation
- Full VPL text in
LICENSEand README license section. docs/USER_GUIDE.mdfor user workflows.docs/CHANGE_INVENTORY.mdfor release documentation audits.- Updated
docs/AGENT_SETUP_GUIDE.mdwith feature verification steps. - README updates for install/update persistence, privacy notes, RemiNet cookies permission, Grok workflows, bug reporting, and troubleshooting.
Changed
- Renamed bextol-hunter paths and assets to Beetol naming.
- Switched the release update endpoint to
bonklek/milXdy. - Consolidated extension settings into tabbed popup panels.
- Improved popup auth status styling and explanatory copy.
- Reworked feedback reporting from separate bug/feature buttons into bug-focused GitHub/X destinations with optional LLM assistance.
- Kept feature bundles lazy-loaded so disabled feature code is not parsed on initial page load.
Fixed
- Reduced risk of losing Beetol login state after extension reloads by checking and refreshing persisted refresh tokens.
- Improved RemiliaNET 2FA handling by documenting the password-flow limit and adding SSO/session retry.
- Improved poke UX when RemiliaNET reports cooldowns or rejects duplicate pokes.
- Added generated-output checks for OCR assets.
- Added privacy/security documentation for local tokens, cookies, network calls, and extension storage persistence.
Known Limits
- Manual GitHub release installs do not auto-update; users must replace files and reload the unpacked extension.
- Loading a different unpacked folder can create a different extension identity and reset local settings/tokens.
- RemiliaNET 2FA cannot complete through the password-grant popup flow. SSO retry only works if RemiliaNET allows the relevant APIs through browser-session cookies.
- Grok workflows depend on X/Grok DOM labels and may need updates if X changes its UI.
- OCR is local and can miss stylized, low-resolution, or low-contrast image text.


