Skip to content

v3.19.0: dev → master#2

Merged
jouki merged 3 commits intomasterfrom
dev
Apr 12, 2026
Merged

v3.19.0: dev → master#2
jouki merged 3 commits intomasterfrom
dev

Conversation

@jouki
Copy link
Copy Markdown
Owner

@jouki jouki commented Apr 12, 2026

Summary

  • Message history: ArrowUp/Down browses sent messages like terminal (max 50, draft preserved)
  • Nicknames for all messages: nickname lookup no longer gated behind UC marker
  • Dev page pipeline: reads version + ZIP from dev API (VPS dev branch), production reads from master

Test plan

  • ArrowUp in empty input → shows last sent message
  • ArrowUp multiple times → browses older messages
  • ArrowDown past end → restores draft text
  • User with nickname shows nickname on all messages (not just UC-marked)
  • jouki.cz/UnityChat shows master version
  • jouki.cz/UnityChat/dev shows dev version

🤖 Generated with Claude Code

jouki and others added 3 commits April 12, 2026 23:47
- Add GET /dev/manifest.json endpoint to dev-download routes
- Dev page fetches /dev-api/dev/manifest.json (VPS dev branch)
- Dev ZIP download from /dev-api/dev/download (VPS dev branch)
- Production /unitychat reads /download/manifest.json (master)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Nickname lookup was gated behind isUC (UC marker detection), so users
who set a nickname but sent messages from regular Twitch chat wouldn't
see their nickname displayed. Now nicknames apply to all messages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ArrowUp/Down browses sent message history (max 50 entries)
- Draft text is saved when entering history and restored when
  scrolling past the end with ArrowDown
- No consecutive duplicates in history
- History browsing only activates when autocomplete is not open

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jouki jouki merged commit 60836b5 into master Apr 12, 2026
jouki added a commit that referenced this pull request Apr 15, 2026
….38.35)

Diagnostic dump z UC-pinned zprávy ukázal:

  <p class="iQZxnA">
    [textNode "Připnuto uživatelem "]
    <span><div><img mod-badge></div></span>
    [textNode "Jouki728"]
  </p>
  <p class="pinned-chat__message">peepoHey ⠀</p>

V card-root div je textContent = "Připnuto uživatelem Jouki728peepoHey ⠀"
(38 chars, pod 60 limit). Greedy regex [\p{L}\p{N}_-]+ zachytil
"Jouki728peepoHey" jako pinnedBy → bug "Jouki728pee...".

Fix #1 (pinnedBy):
- Scan DIRECT child text nodes elementu (skip descendant text)
- Pokud první přímý text matchuje label, pinner je extracted z
  same-element direct text za labelem
- Tight regex [A-Za-z0-9_]{2,25}\b (Twitch username chars + length cap)

Fix #2 (body):
- Selector [class*="pinned-chat-message"] (hyphen) NEnematchoval
  real Twitch class "pinned-chat__message" (double underscore)
- Přidány .pinned-chat__message + [class*="pinned-chat__message"]
- Body extract teď najde correct element s emote fragments

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jouki added a commit that referenced this pull request Apr 15, 2026
User report:
1. peepoHey emote nezresolvněn (zobrazí se jako text)
2. Ostrý okraj místo zaoblených rohů

Fix #1 (emote resolve):
Twitch's pin DOM keeps body as <span class="text-fragment">peepoHey ⠀</span>
plain text. 7TV/BTTV/FFZ Vue replacer doesn't penetrate pin subtree
(only chat-line containers). Body segments arrive as text type.

_buildPinCard teď tokenizuje text segmenty (split na whitespace)
a resolve každý token proti emote library order:
twitchNative → channel7tv → global7tv → bttvEmotes → ffzEmotes
→ kickNative → ucEmotes. Resolved emotes render jako <img>,
unresolved fallback na linkified text. Plus strip UC marker
(Braille blank ⠀).

Fix #2 (rounded corners):
border-image: linear-gradient(...) v Chrome ignoruje
border-radius (spec implementation-defined behaviour). Rohy
byly ostré navzdory border-radius: 10px.

Nahrazeno: solid amber border + multi-layer box-shadow
(combination outer glow + inner ring + bottom-edge accent)
which together replicate the gradient ring effect WHILE
border-radius drží.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant