Changelog: September 6, 2026 Anonymous ## Admin No.161
File: 1788748764731.gif (11.66 MB, 840x470, 862965__safe_artist-colon-dean…)

# Themes & Site Appearance
* **Theme system modernization**
* Refactored all active selectable themes around shared structural and styling contracts while preserving each theme’s visual identity.
* Removed large amounts of obsolete and conflicting theme CSS.
* Normalized common UI geometry so themes no longer accidentally change the size or placement of controls, panels, headings, or forms.
* Retired the obsolete **Pone**, **Geocities**, and **Windows 98** themes.
* Saved preferences for retired themes fall back to an available theme instead of leaving the site with missing styling.
* **Page titles and mastheads**
* Standardized board, thread, and catalog title sizing while retaining each theme’s font, color, weight, shadow, and other identity.
* Homepage branding remains intentionally larger than normal board/page titles.
* Restored theme-specific title shadows and effects where normalization had suppressed them.
* Fixed large or inconsistent title spacing in themes such as Twilight Tackle.
* Fixed Royal Guard’s homepage title so it remains readable over its background artwork.
* Restored Discord’s decorative homepage title without duplicate text or clipping.
* Fixed multiple theme-specific title/color inconsistencies across homepage, boards, threads, catalog, Settings, and Watcher.
* **Settings & Watcher**
* Standardized Settings and Watcher main-title sizes across every theme.
* Standardized Settings and Watcher section-heading sizes across every theme.
* Settings/Watcher headings retain theme-specific fonts, colors, weights, and effects while keeping consistent geometry.
* Made Settings and Watcher panels fully opaque instead of allowing theme transparency to make their contents difficult to read.
* Improved heading readability and consistency on dark and highly stylized themes.
* Settings form controls now use consistently rounded corners rather than inheriting random square/rounded combinations from themes.
* Long theme names such as **Nightmare Moon** now fit correctly in the theme selector instead of being clipped.
* **Navigation bars**
* Navbar surfaces are now opaque across themes instead of allowing page backgrounds to show through.
* Fixed Midnight’s transparent navbar.
* Preserved theme-specific gradients, artwork, colors, and navigation styling over the normalized opaque base.
* **Reply and post surfaces**
* Restored intended reply-background treatments where shared theme normalization had replaced them with generic colors.
* Vinyl Trance replies again use their intended dark textured appearance.
* Twilight Tackle replies again use their intended purple treatment.
* Restored comfortable spacing between OP file information and post body text to match replies.
* Fixed highlighted-post styling that could physically shift content after loading or changing themes.
* **Theme switching**
* Eliminated the large delayed page reflow when switching to Nightmare Moon.
* Theme changes now settle without a second major typography/layout jump after their colors have already appeared.
* Preserved theme-specific fonts and appearance without allowing late-loaded styling to rearrange the page.
* **Restored and preserved theme artwork**
* Restored missing Wonderbolts visual treatment, including character artwork, gradients, form branding, highlights, and spoiler styling.
* Restored Shadowbolts character/background presentation.
* Restored Chrysalis theme artwork and related surfaces.
* Corrected Australian page-gradient behavior.
* Preserved distinctive theme-specific artwork and decorative treatments rather than flattening every theme into the same visual style.
* **Links, metadata, and tags**
* Corrected theme-specific link and hover colors.
* Restored intentional underline/no-underline behavior for post numbers, filenames, backlinks, moderator controls, and linked names.
* Fixed post-number color drift.
* Normalized file-information typography so it no longer becomes oversized or visually disconnected from post metadata.
* Improved Changeling hashtag/tag readability while keeping its theme identity.
---
# Settings & User Options
* **Settings cleanup**
* Removed obsolete settings and controls left over from older versions of Ponychan.
* Removed the old user-selectable **No JavaScript** options and related legacy compatibility modes.
* The current JavaScript frontend is now the supported site experience instead of maintaining parallel modern and legacy user modes.
* Existing live settings update more consistently without requiring unnecessary page reloads.
* **Password display**
* Added **Settings → Page Formatting → Hide Password**.
* The visible post-password field can be hidden while Ponychan continues to submit the correct locally stored post password.
* The preference updates immediately, persists across reloads, and no longer briefly exposes the field during page startup.
* **Media preferences**
* Image/video expansion, hover behavior, looping, sound, volume, spoilers, and related media settings now apply more consistently to both existing and dynamically loaded posts.
* Notification volume now affects actual playback as well as Sound Preview.
---
# Quick Reply
* **Unified Quick Reply**
* Quick Reply now uses the same canonical posting form and fields as normal posting.
* Switching between the normal form and Quick Reply preserves drafts, files, CAPTCHA state, password state, flags, and posting options.
* Quick Reply and normal posting now behave as two presentations of the same form rather than separate implementations.
* **Consistent structure across themes**
* Rebuilt Quick Reply styling around a common structural contract across all active themes.
* Eliminated theme rules that made Quick Reply unexpectedly wider, taller, offset, or differently proportioned.
* Normalized textarea, field, button, flag selector, file area, and title-bar geometry.
* Quick Reply retains a compact, consistent footprint without themes stretching its controls.
* **Move controls**
* ▲ / ▼ / X controls now have fixed, consistent geometry and no longer shift between themes.
* Theme button fonts, letter spacing, transforms, and effects no longer distort the move controls.
* Improved move-control contrast where individual themes previously made them difficult to see.
* Move controls remain visually integrated with each theme without sacrificing consistency.
* **Fields and controls**
* Inputs, textarea, Submit, Browse, and flag controls now share coherent border and corner treatment.
* Control text follows the theme’s form-field foreground instead of inheriting unrelated generic button colors.
* Midnight QR fields now use the normal slightly rounded Quick Reply treatment instead of square controls.
* Normalized compact Submit and flag-selector height.
* Submit/cooldown labels no longer cause button-width jumping.
* **Panel surfaces**
* Quick Reply panels are opaque and readable across themes.
* Removed problematic transparent/translucent QR presentation.
* Panel/header/field/button colors now follow semantic theme surfaces instead of old generic fallback colors.
* Quick Reply uses the same floating-panel shadow language as Settings and Watcher.
* **Theme-specific QR identity**
* Preserved Vinyl Scratch’s distinctive move-bar artwork.
* Restored Daring Do’s colorful move-bar treatment.
* Restored Gilda and Trixie move-bar treatments.
* Restored Vinyl Trance’s distinctive rounded/bubbly control treatment while keeping its QR panel fully opaque.
* Preserved Chrysalis-specific accent treatment.
* Improved Crystal Rarity move-control readability.
* **Positioning**
* Desktop Quick Reply opens in a useful middle-right position rather than underneath the navbar.
* Dragged desktop position is remembered and kept inside the viewport.
* Mobile Quick Reply remains viewport-attached while scrolling.
* Mobile placement accounts for the actual wrapped navbar height.
* Landscape/wider phone layouts dock Quick Reply to avoid unnecessary navbar overlap.
---
# Posting & Composer
* **Unified modern posting**
* Normal posting and Quick Reply share the same canonical JavaScript posting path.
* Recoverable posting errors remain on the page and preserve the user’s draft.
* Removed the separate legacy **No JavaScript posting mode** and its user-facing options rather than continuing to maintain two parallel posting experiences.
* **Duplicate-post protection**
* Double-clicking or double-tapping Submit no longer creates duplicate posts.
* Server-side duplicate-submission protection covers replies, new threads, and file posts.
* Duplicate retries can reuse the result of the original successful request instead of creating another post.
* **Flood control**
* Flood-control messages use the server’s remaining wait time when available.
* Submit visibly counts down until posting is available again.
* The same cooldown survives switching between normal posting and Quick Reply.
* Time spent reading the flood warning counts toward the remaining delay.
* **Immediate post success**
* New replies appear immediately instead of waiting for the normal thread-update interval.
* Ponychan focuses/scrolls to the newly created reply.
* Immediate refresh works even when automatic thread updates are disabled.
* Reply backlinks update as part of the same refresh.
* Auto-update timing resumes normally afterward.
* **Normal posting form**
* Long flag names no longer clip inside the normal posting form’s flag selector.
* Theme-specific button/font effects no longer make the selector too narrow for its visible label.
* **Post selections**
* Successful posting clears stale Edit/Delete selections.
* Failed posting leaves selections intact so the user can correct the error.
---
# CAPTCHA
* **Live CAPTCHA state**
* CAPTCHA requirements can appear or disappear without reloading the page.
* Posting errors and successful posts resynchronize the requirement automatically.
* Quick Reply correctly renders CAPTCHA after the canonical form moves into it.
* CAPTCHA-required responses show the actual challenge rather than a redundant alert.
* **Retry grace**
* A successfully solved CAPTCHA remains valid for a short grace period after an unrelated recoverable posting error.
* Users can correct problems such as a missing required file and retry without immediately solving another CAPTCHA.
* Actual CAPTCHA failures, expiry, or a genuinely new CAPTCHA requirement still require a fresh challenge.
* **Moderator control**
* Global CAPTCHA enable/disable returns directly to the relevant control/dashboard instead of showing an unnecessary intermediate success page.
---
# Formatting, BBCode & Help
* **Keyboard formatting shortcuts**
* Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+S, Ctrl+?, Ctrl+H, Ctrl+K and related markup shortcuts work consistently in posting textareas.
* The same formatting shortcuts now work in post Edit windows instead of being limited to the posting form.
* Selected text is wrapped correctly and caret-based insertion remains supported.
* **Formatting help**
* Help icons are now visible against their theme backgrounds.
* Help popups use the normal reply surface for their background so their text remains readable and visually belongs to the selected theme.
* Popups use themed borders and the same floating shadow language as Quick Reply, Settings, and Watcher.
* Popups are content-sized instead of unnecessarily wide.
* Popups reposition themselves to remain inside the browser viewport.
* Formatting documentation is presented in stable rows instead of being rearranged by theme-specific table/font rules.
* Dice syntax is shown together as `Roll 1d20 = 13,Roll 4d6 = 12` with its description inline.
* URL/citation examples now put syntax first with descriptions aligned beside them.
* **Hidden text (`[h]`)**
* Collapsed hidden blocks now behave like an inline `[Show]` control instead of leaving a full-width line or forcing surrounding text onto another line.
* Revealed hidden text appears exactly where it belongs in the post rather than dropping below an attached image.
* Revealed blocks size themselves to their content instead of unnecessarily stretching across the entire remaining post width.
* Added comfortable spacing when revealed hidden content sits beside post media.
---
# Editing & Deletion
* **Post passwords**
* Restored automatic browser post-password generation and persistence.
* Posting, editing, and deletion use one authoritative locally stored post password.
* Repeated form initialization no longer creates conflicting password fields.
* **Password-manager compatibility**
* Ponychan’s per-post ownership password no longer behaves like an account-login password to browsers.
* Reduced unwanted mobile “Save/Update Password” prompts.
* **Editing**
* Recoverable edit errors remain in the edit interface and preserve entered text.
* Successful edits return to the edited post.
* Formatting keyboard shortcuts now work in Edit windows as well as posting.
* Moderator editing returns through the appropriate moderator context.
* **Deletion**
* Wrong-password and selection errors can be shown on the current thread instead of unnecessarily navigating away.
* Deleted replies disappear from the current page.
* Backlinks to deleted posts are removed.
* Dead citations degrade cleanly instead of leaving broken interactive behavior.
* Delete File updates the post locally without requiring a full page reload.
---
# Citing, Quoting & Reply Navigation
* **Post-number citations**
* Clicking a post number inserts its citation at the current cursor position.
* Cross-board citations use the correct cross-board syntax.
* Board-index post-number behavior navigates/focuses appropriately rather than inserting into the new-thread form.
* **Selected-text quoting**
* Highlighted text can be quoted directly through the post-number action.
* Multiline selections receive proper quote prefixes.
* Selection is validated against the post being quoted.
* **Reply backlinks**
* Posts show later replies that cite them.
* Same-thread, cross-thread, and cross-board backlinks are supported.
* Backlinks update during live thread refresh.
* Deleted replies disappear from authoritative backlink lists.
* **Inline navigation**
* Existing visible posts are reused and focused instead of being duplicated.
* On board indexes, links to already-rendered posts remain local instead of unnecessarily navigating to the thread.
* Navigated posts are positioned naturally within the viewport.
* Cross-thread/off-page targets can still open inline.
* **Target highlighting**
* Highlighting a post no longer changes its layout or causes theme-specific horizontal drift.
* Fixed theme-specific delayed post movement after target highlighting.
* **Mature / +50 navigation**
* Direct `#post` navigation works reliably on Mature threads.
* Hard refreshes, pasted links, new tabs, middle-clicks, and +50 views reconcile correctly without forcibly revealing hidden Mature content.
---
# Hover & Inline Post Previews
* **Viewport-safe hover previews**
* Hover previews stay inside the browser viewport.
* They can flip left or above the pointer when needed.
* Tall previews scroll internally instead of extending off-screen.
* **Readable preview surfaces**
* Transparent OP styling no longer creates transparent/unreadable floating previews.
* OP and reply previews use appropriate readable theme surfaces.
* Internal body/backlink spacing has been restored.
* **Inline media lifecycle**
* Animated GIFs opened through inline `>>post` previews now animate and loop correctly.
* Silent MP4/WEBM media in inline previews uses the same autoplay lifecycle as normal posts and Watcher content.
* Inline previews now participate in the normal near-viewport media activation path instead of being accidentally excluded.
* Temporary hover-preview clones remain excluded from autoplay.
---
# Images, Videos & File Information
* **Live media settings**
* Image/video expansion behavior responds to Settings changes without requiring reload.
* Hover behavior, spoiler expansion, looping, sound, and volume use the current settings.
* Dynamically inserted posts receive the same media behavior.
* **Animated GIF performance**
* Large threads no longer attempt to activate every GIF simultaneously.
* Animated media activates as it approaches the viewport.
* GIF detection works even when the thumbnail itself is static.
* **Silent video autoplay**
* Silent MP4/WEBM thumbnails can become muted inline autoplay videos when autoplay is enabled.
* Loop behavior follows the current video-loop setting.
* **Mature media**
* Revealed Mature GIF/video content participates in autoplay correctly.
* Hidden/spoilered Mature media remains hidden until the user reveals it.
* Mature GIFs preserve their intended thumbnail dimensions when autoplay swaps in the full animated file instead of suddenly expanding to the file’s full intrinsic dimensions.
* **Image spoilers**
* Image spoiler support is enabled for uploaded images.
* Users can mark uploaded images as spoilers and receive the normal spoiler-thumbnail treatment.
* Thread-level spoiler behavior remains integrated with the existing Mature/spoiler controls.
* **Embeds**
* Modernized supported external video embeds to use current HTTPS iframe-based players.
* Vimeo and Dailymotion embeds no longer rely on obsolete Flash-era players.
* **File information**
* File metadata uses consistent compact typography across themes.
* Long filenames remain constrained instead of widening posts or Quick Reply.
* Full filenames remain available through browser tooltips.
---
# Watcher & Live Updates
* **Modern Watcher**
* Ponychan consistently uses the current browser-based Watcher.
* Obsolete alternate Watcher rendering paths and related legacy No-JavaScript UI have been removed.
* **Live thread integration**
* Watcher and thread updates share the same dynamic-post initialization behavior.
* Backlinks, media behavior, and newly loaded post interactions initialize consistently.
* Watcher-added animated media continues to animate normally.
---
# Notifications
* **Reply notification behavior**
* Reply-notification volume now actually controls playback volume.
* Changing volume affects subsequent previews/notifications without reload.
* Reply sounds only play when sound notifications are enabled.
* Desktop notifications only fire when desktop notifications are enabled.
* Sound and desktop-notification preferences operate independently.
* Sound Preview respects the selected volume.
---
# Reports
* **Reporting**
* Report validation errors remain on the thread and preserve the report reason and selected posts.
* Successful reports stay on the thread, show confirmation, and clear completed report state.
* Reporting now uses the current frontend flow rather than maintaining a separate legacy No-JavaScript reporting experience.
* **Multi-post reports**
* Multi-post reporting remains supported.
* A single report submission is limited to five posts to reduce report spam/abuse.
* Oversized batches are rejected before partial report records are created.
---
# Ban Appeals
* **User appeals**
* Restored functional ban appeals using Ponychan’s existing ban/appeal conversation model.
* Banned users can submit an appeal, see moderator replies, and respond again when appropriate.
* Recoverable validation errors preserve appeal text rather than losing the draft.
* **Moderator appeal tools**
* Moderators can respond to appeals through the existing moderation interface.
* Appeal conversations have clearer, theme-aware presentation.
* Appeal locking/unlocking and ban-state actions remain separately permission-controlled.
* Ban removal from the appeal/review workflow returns to a useful moderator context.
* **Privacy and safety**
* Ban appeal pages verify that the visitor actually owns/is affected by the ban being viewed.
* Unrelated or invalid ban references do not expose another user’s ban information.
* Duplicate unanswered appeals are prevented.
---
# Moderator & Staff Tools
* **Moderator browsing**
* Moderator browsing uses the normal board/thread presentation with authorized controls added to it.
* Public post layout remains the canonical browsing surface.
* **Post controls**
* Moderator controls track current post markup correctly.
* Restored moderator controls on **Admin, Mod, Founder, and other staff-tagged posts**.
* Staff-tagged posts now receive the same authorized moderator controls as other posts while preserving normal permission checks.
* Public Report controls remain appropriately suppressed on staff-tagged posts.
* Destructive browser actions use confirmation where appropriate.
* Moderator state-changing actions use protected non-GET request flows.
* **Poster Identity**
* Moderator-visible identity/name links no longer produce invalid nested-link markup or stray underlines.
* **IP notes and appeal replies**
* Recoverable validation errors stay on the relevant review page and preserve entered text.
* Successful actions return to the appropriate moderator context.
* **Post Filters**
* Added current staff tools for listing, creating, editing, enabling, reviewing, and enforcing Post Filters.
* Filter hit counts are available.
* Regex and literal filter state persist correctly.
* Audit-only filters can record matches without blocking posts.
---
# Banners & Shared Page Chrome
* **Server-rendered banners**
* Banner selection/rendering is handled directly as part of the server-rendered page instead of requiring a separate browser request.
* Board-specific and generic banner behavior remains supported.
* Banner presentation is consistent across the normal page shell.
* **Shared floating-panel appearance**
* Quick Reply, Settings, Watcher, and help popups now share a coherent floating-panel shadow treatment.
* Rounded corners and panel surfaces remain theme-aware while maintaining consistent structural presentation.
---
# Security
* **Cloudflare protection**
* Ponychan now uses Cloudflare Tunnel for protected origin connectivity.
* Automated malicious/scanner traffic can be blocked both at the edge and locally.
* Edge blocking is synchronized independently so normal request processing is not held up by blocklist updates.
* Improved client-address handling preserves the correct visitor identity across modern IPv4/IPv6 traffic.
* **Application exposure**
* Internal application/configuration resources are protected from direct public access.
* Ban and moderation workflows were hardened to avoid exposing information through invalid or unauthorized requests.
* State-changing moderator actions use protected request methods and appropriate authorization checks.
* **Transport security**
* Minimum visitor TLS version is now TLS 1.2 while TLS 1.3 remains enabled.
* Enabled HSTS so browsers remember to use HTTPS for Ponychan.
* Added `X-Content-Type-Options: nosniff` protection.
* Enabled safe TLS connection resumption for returning visitors.
* Origin connections continue to use certificate verification with explicit certificate identity matching.
---
# Performance & Delivery
* **Media loading**
* GIF/video activation is viewport-aware so long media-heavy threads do not initialize every animated file at once.
* Dynamic/inline media uses the same optimized lifecycle rather than creating separate loading paths.
* **Theme stability**
* Eliminated major delayed layout shifts caused by theme styles arriving in stages.
* Page heading geometry is reserved consistently so decorative/theme fonts do not cause large visible jumps after theme changes.
* **Cloudflare delivery**
* Enabled modern connection-resumption support for repeat visitors.
* Enabled Early Hints capability at the edge.
* Existing static assets and uploaded media continue to benefit from Cloudflare caching while live HTML pages remain fresh and dynamic.
---
# Personal Post Tracking
* **`(You)` markers**
* Newly created posts are tracked consistently through the current posting flow.
* Links to tracked posts can show `(You)` across threads.
* Duplicate local tracking entries are avoided.
---
# Legacy Frontend Cleanup
* **No-JavaScript support retired**
* Removed the old user-facing **No JavaScript** mode and its Settings options.
* Removed obsolete parallel frontend paths that existed solely to support the legacy no-JS experience.
* Posting, reporting, Watcher behavior, Settings, and other interactive features now target the current JavaScript frontend as the supported experience.
* This allowed a substantial amount of old compatibility code and inconsistent duplicate behavior to be removed instead of maintaining two versions of the same interface.
* **Retired legacy presentation**
* Removed obsolete **Geocities** and **Windows 98** themes.
* Removed the redundant **Pone** theme.
* Continued consolidating older Tinyboard-era interface behavior into Ponychan’s current frontend.