Commit Graph
4 Commits
Author SHA1 Message Date
ancsemi 31175ba712 chore: repair .gitattributes truncation + normalize line endings
The last line of .gitattributes was getting truncated mid-token to
'GUIDE.md text working-tree-enc' on save, dropping the
'oding=UTF-8 eol=lf' suffix and the trailing newline. Restored the
full rule. Also normalized the file to LF line endings.

The new '* text=auto eol=lf' rule a couple lines above is a one-shot
fix for the LF-vs-CRLF churn that was generating phantom 'modified'
status on ~120 files in working trees on Windows; with this rule in
place, future checkouts normalize cleanly. No content-affecting
change to the rest of the repo.
2026-06-18 03:57:00 +00:00
ancsemi 361d584fd4 fix: dropdown overflow, popout-blocks-modal, non-image upload, residual mojibake
Follow-up fixes for the post-3.24.0 soundboard rework plus AlexT2803's
three reports (#5417, #5418, #5419).

#5419 Soundboard popout breaks sound manager button
  (public/js/modules/app-media.js)
- _openSoundModal was short-circuiting for ALL tabs whenever the popout
  was active, which meant the admin Custom Sounds button (opens
  'manage') and the Assign-to-Events tab were both unreachable until
  the popout was closed. Now the flash-the-PiP path only fires when
  the requested tab is 'soundboard'; 'assign' and 'manage' open the
  modal as usual.

#5417 Non-image files instantly uploaded
  (public/js/modules/app-media.js, app-ui.js, app-messages.js, style.css)
- Mirrored the existing image queue. Added _queueGeneralFile,
  _clearFileQueue, _flushFileQueue. The composer file button, paste,
  and drag-drop all route non-image attachments through the queue
  instead of calling _uploadGeneralFile directly. Chips render in the
  same #image-queue-bar with filename + size + a × remove button.
  _flushFileQueue runs alongside _flushImageQueue at send time.
  PiP DM and threads still use the immediate upload path.

#5418 Sound Manager dropdown overflows the window
  (public/js/modules/app-media.js, public/css/style.css)
- Native <select> popups render outside the Haven window and cannot
  be constrained. Added _enhanceSelectAsCustom which hides the native
  select and renders a div-based dropdown that stays inside the modal,
  flips above if needed, and scrolls when long. Wired into the five
  assign-* selects in _renderAssignTab; idempotent on re-render.

#5418 Residual mojibake the prior sweep missed
  (public/index.html, public/js/modules/app-media.js)
- index.html TOS page: three em-dashes and one '⚖️' restored from
  cp1252 round-trip damage.
- app-media.js avatar save error: '❌' restored (the c3a2c29dc592
  byte pattern was below the length threshold the earlier sweep used).

UTF-8 writes used Python with explicit BOM preservation per
AGENT_INSTRUCTIONS.md.
2026-06-18 03:45:34 +00:00
ancsemi bdbeff8258 site: restore emojis on landing pages + permanent UTF-8 guardrails
Restored ~70 corrupted emojis across docs/index.html and website/index.html (matched contextually: nav, hero, channel-code, platform tags, feature icons, footer).

Added four-layer prevention so this doesn't ship again:

- UTF-8 BOM on the landing pages (first 3 bytes EF BB BF)

- .editorconfig pinning charset=utf-8-bom for docs/website index + support

- .gitattributes working-tree-encoding=UTF-8 for landing pages, CHANGELOG, README, GUIDE

- scripts/fix-emoji-encoding.py reusable repair script

Verified hashes match between docs and website copies. Google Ads tag AW-17950126697 already present (2 occurrences in each file).
2026-05-27 09:47:51 -04:00
ancsemiandancsemi 00be48d773 v1.9.1: Custom emojis, DM deletion, settings nav, reply scroll, quickbar fixes
Co-authored-by: ancsemi <ancsemi@users.noreply.github.com>
2026-02-18 02:16:56 -05:00