You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5dfd982
Browse filesBrowse the repository at this point in the historyBrowse files
v2.37.0 — TigerSquad: free community with levels (Bronze → Platinum), XP for every TigerTag chip, support via Buy Me a Coffee / Ko-fi / PayPal, Refill tag, request reply notifications
-**Refill pictogram** — a spool flagged as a refill (`info1`, the same flag as the "Refill" chip) wears a green "Refill" pill (recycle icon + the word; a plain round icon on small thumbnails) with the twin / backup badges: on grid cards, list and grouped-spool thumbnails, and in the detail panel's top-right group (`_cardTlBadges`, `buildPanelHTML`, card signature); the catalogue product card shows it too once the product detail has arrived (`_productHeroParts`) — the catalogue list itself waits for `info1` in the export (TigerTag-Manager#35) — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`
12
+
-**A reply on one of My requests raises a notification** ("Request #55 got a reply" → opens My requests; the bell counts it) — merged from PR #58 (`renderer/report/replies.js`, `renderer/report/index.js`, `renderer/inventory.js`, i18n `notifReqReply`, `reportMineHint`). Only **team** replies count: the backend's `myReports` now returns `replies` = comments by the repo's owner / members / collaborators, never the app's own account (its "closed by the reporter" note) — so the user's own comments on GitHub are not announced; the client compares `replies` (falls back to `comments` on an older server) and keeps its seen counts under a new key (`tigertag.reportSeen.v2.<uid>`) so nobody's baseline masks a reply.
13
+
-**Supporter badge (Ko-fi, Buy Me a Coffee, PayPal).** A payment on any of the three tied to an account gives it a golden-heart **Supporter** badge on the sidebar avatar and a thank-you notification — a thank-you, never a feature. Tied by the account's fixed **supporter code**`TS-XXXX-XXXX` the support menu shows (copy chip: "add your code to your payment message"; derived from the uid so it never changes, unlike the friend code — which still works as a fallback), else by the payer's email; anyone else claims it from the menu ("Already gave? Get your badge": payer email or transaction id). A supporter's menu thanks them instead of pitching.
14
+
- Backend (`TigerTag_Firebase_Backend`): `functions/supportWebhooks.js` — `kofiWebhook` (Ko-fi `verification_token` vs secret `KOFI_VERIFICATION_TOKEN`), `bmcWebhook` (HMAC-SHA256 `x-signature-sha256` vs secret `BMC_WEBHOOK_SECRET`; both BMC payload shapes), `paypalIpn` (PayPal IPN, verified by post-back; completed incoming payments only, note in `memo`) — all record `supportDonations/{source}_{transactionId}` idempotently — and `claimSupport` (ID token; matches an unclaimed payment by lower-cased email or transaction id → `granted`/`not_found`/`taken`); `claimSupport { action: "code" }` returns the supporter code and registers it in `supporterCodes/{code}` (server-only); all set the server-only `users/{uid}.supporter = { since, lastAt, sources, monthly, count }` and, the first time, a `supporter_thanks` notification. `firestore.rules`: `supporter` joins `roles` / `tier` as refused from clients; `supportDonations` has no client rule. README documents both.
15
+
- **TigerSquad** — the Hub's wall of fame, open to everyone, with a level the server computes: **Bronze** (joined for free), **Gold** (gave), **Silver** (20+ TigerTag chips of any kind — `tigerTagCount`) and **Platinum** (gave + 50+ certified) — certified chips are verified server-side with the TigerTag SDK (`certifyChip`, backend), one account per chip, plus **XP points** per physical chip (certified TigerTag+ 10, TigerTag+ 2, TigerTag 1 — twins count twice, TigerData 0) + 50 XP while in the TigerSquad (taken back on leaving), server-counted from the chip census AND the inventory spools (doc id = chip UID — so spools added before the census, imported or scanned on the phone earn too), once per UID and kept for good (a deleted spool keeps its points, a chip re-programmed on the same UID earns nothing new, only a verified certified backup lifts it to 10); Studio asks for a recount when the account's `xpCountVersion` is behind the current rules (`XP_COUNT_VERSION`), published as `tigerSquad.certified` / `tigerSquad.xp` for the Hub's maker ranking and shown under the name in the sidebar as an XP chip for every account ("★ 407 XP", live via a listener on the account doc — `_subscribeOwnSquad`) and in My profile ("407 XP · 19 certified TigerTag+", `_renderSquadXp`; a never-counted account asks `claimSupport { action: "xp" }` once). Join from the **TigerSquad invite** (accounts older than 7 days that haven't joined; 20 s after start-up, once a session; "Maybe later" / ✕ / Esc snooze 30 days per account; leaving the squad lifts the snooze). Redesigned "dark premium": title with a gradient "TigerSquad", three informative perk cards (+50 XP, badges Bronze → Platinum, back the project), each glowing in its own colour (radial light, tinted rim, twinkling sparkles) with a light idle animation (gift hops, badge sways, heart beats; livelier on hover, off under reduced motion), the four levels as large badges on an open strip (no boxed card; big arrows that light up one after the other, left to right, on a loop) with a short motto each, and "Discover the levels →" opening an info bubble anchored to it with the real rules + the XP scale (and a link to the wall of fame; closes on outside click / Esc), an optional coffee card (orange rim + glow, bigger cup, gradient button with a cup icon) that opens the support chooser anchored to its button without leaving the window (Esc / outside click close the chooser first; its "join" row is hidden there), a full-width saturated-orange free-join button (community icon, soft halo) that waits for the real write (loading → "Welcome… +50 XP" or an error), reassurance ticks, "Maybe later", a footer with the live TigerSquad member count bottom-left (`_squadMemberCount`: Firestore REST COUNT over `userProfiles` ordered on `tigerSquad.since`, cached 10 min, hidden when 0 or on error); 700 px / 90 vh with inner scrolling, focus trap + focus restore, 240/160 ms open/close, reduced-motion safe. Artwork slots `SQUAD_ASSETS` → `assets/img/tigersquad/` (README lists the expected WebP files; placeholders until then — in: the coffee cup `tigersquad-coffee.webp` (135×180, 10 KB) and the four level badges `tigersquad-bronze/silver/gold/platinum.webp` (160², 6–12 KB, cut from the founder's sheet, centred on a common scale) — masters in `assets-src/img/tigersquad/`) — `_openSquadInvite`, `tigerSquadRankBadgeHTML`, `tigerSquadCoffeeAssetHTML`; icons `community`, `coffee` + a colour trophy (`assets/img/tigersquad/trophy.svg`); perk cards use the founder's colour SVGs (`assets/img/tigersquad/perk-gift.svg`, `perk-badges.svg`, `perk-heart.svg`), a "Join the TigerSquad" row in the support menu (a member sees their badge, level and the head count instead, linking to the wall; swapped live while the menu is open) and a TigerSquad card under the coffee card of the requests panel (both open the invite — never a silent join; shown only to accounts not in the squad — a member sees instead their level badge, a "you're in" note, the squad's head count and a link to the wall; the card swaps live when the account joins, leaves or changes level) or My profile → TigerSquad switch (`eacSquadToggle`) — all write `users/{uid}.supportPublicly`. The level comes from the public profile (`userProfiles/{uid}.tigerSquad = { since, tier }`, live via `_subscribeOwnSquad`); members wear a ring and a corner heart in their level's colour, plus a "TigerSquad · <Level>" pill on the banners (not in the sidebar) (`.sq-bronze/silver/gold/platinum` CSS variables), on their own avatar and banner, in friends' lists and on the friend-view banner (`avatarMarkup` wraps the avatar for the heart; `squadTier` carried through the friends refresh, the sidebar list signature and `state.friendView`). Switching to an account with no cached profile clears the previous account's badges at once. My own banner shows the level pill too, and my avatar keeps its size inside the heart wrapper.
16
+
- Studio: `state.supporter` (user doc + local-first cache, reset on sign-out), `renderSupporterBadge()`, supporter-code chip (`_supporterCode`, cached per account in `tigertag.supporterCode.<uid>`) + claim form in `_openCoffee` (`_claimSupport` → `claimSupport`), `supporter_thanks` row in the notification center — `renderer/inventory.js`, `renderer/css/10-settings.css`, `docs/firestore-schema.md`
17
+
-**Support the project: Buy Me a Coffee, Ko-fi or PayPal.** Every coffee button (sidebar, About, What's New, the requests card's coffee cards) opens a small chooser anchored next to it — Buy Me a Coffee (card, Apple / Google Pay), Ko-fi (`ko-fi.com/tigersystemio`, card or PayPal, one-off or monthly) or PayPal (`paypal.me/tigersystemio`) — for supporters who can't or won't use BMC; closes on pick, outside click or Esc. The repo's GitHub **Sponsor** button lists all three (`.github/FUNDING.yml`) — `renderer/inventory.js` (`_openCoffee`, `PAYPAL_URL`, `KOFI_URL`), `renderer/report/index.js`, `renderer/css/10-settings.css`, `assets/svg/logos/logo_paypal.svg`, `assets/svg/logos/logo_kofi.svg`
18
+
- Reassures before it asks: it says the app is free and open source for good, built after hours by one maker with the community, a footer notes that payment happens on the platform's site (the card never reaches us) and offers a free alternative, a GitHub star. The About and What's New buttons are a neutral cup + "Support" pill instead of the Buy Me a Coffee wordmark (they open the three-platform chooser); support buttons get localised aria-labels; the requests card's coffee line drops the repeated "coffee" — `renderer/inventory.js` (`_openCoffee`, `GITHUB_REPO_URL`), `renderer/inventory.html`, `renderer/css/10-settings.css`, `renderer/css/70-detail-misc.css` (`.support-btn` replaces `.bmc-btn`), `renderer/css/60-modals.css`
19
+
- Popover per the redesign mockup: title with a red heart, a short reassuring intro (free and open source for good), a caret pointing at the button that opened it, smart placement (right of the button when there is room, otherwise above, then below), the opener lit with a yellow ring while open, a ↗ hint on the hovered platform, lift-on-hover, 150 ms open / 120 ms close (off under reduced motion), options left-aligned (a global button rule was centring them); opened from the requests side card it sits to the right of the whole card (the topic list stays visible), or becomes a compact centred modal over a dimmed backdrop when there is no room
20
+
21
+
### Changed
22
+
- "Improvements & suggestions" sidebar button turns solid orange with white sparkles while its side card is open — `renderer/css/10-settings.css`
23
+
- Print-setting tiles (product card + detail panel): the icon now sits on the title line next to the label, and the value spans the full width below it, so long ranges ("190–230 °C") stay on one line — `renderer/css/70-detail-misc.css` (`.ro-ptile`)
24
+
- Support menu copy no longer promises a badge for a gift alone: the code / claim lines say the gift is LINKED to the account, and the badge (Gold) comes with joining the TigerSquad — i18n `supportCodeHint`, `supportClaimToggle`, `supportClaimOk` (11 locales)
25
+
- Banners (mine and a friend's): the Share badge moved to the end of the social-icons row, the badge line keeps Public / Friend + TigerSquad; My profile's TigerSquad row lost its heading and level text — `renderer/inventory.js` (`_socialsRowHTML`), `renderer/css/60-modals.css`, `renderer/inventory.html`
26
+
- The sidebar coffee button and the requests card's coffee card wear the Ko-fi mark instead of the coffee cup — `renderer/inventory.html`, `renderer/report/index.js`, `renderer/css/10-settings.css` (the solid-yellow cup variant is gone)
27
+
- Requests: attach JSON files too (up to the 5-file total, 2 MB each, must parse) — shown as a `{ }` chip; the server stores them next to the screenshots, links them in the issue and shows a short one (≤ 3,000 chars) inline in a collapsible block — `renderer/report/index.js`, `renderer/report/report.css`, `assets/svg/icons/icon_json.svg`, `renderer/css/70-detail-misc.css`; backend `functions/reportIssue.js` (`jsons`, max 3)
28
+
- Requests card topics: darker, less saturated icon tiles with a bright icon per topic (bug `#351D25`/`#FF4545`, idea `#15382D`/`#20E39A`, improvement `#2D204B`/`#A66BFF`, catalogue `#3B3016`/`#FFC83D`, brand `#152F4D`/`#329BFF`, question `#3B1832`/`#FF4DB8`), a 3 px accent stripe on the left, and a 180 ms hover (lighter ground, subtle border in the topic colour, icon at 1.06; no motion under reduced motion); the coffee card loses its decorative heart — `renderer/report/index.js` (`KINDS``tile` / `ink`), `renderer/report/report.css`
29
+
- Sidebar Downloads entry uses a dedicated software-download icon (arrow into a tray) — `assets/svg/icons/icon_software_download.svg`, `renderer/css/70-detail-misc.css` (`.icon-software-download`), `renderer/inventory.html`
30
+
- "Support the project" section (Buy Me a Coffee, Ko-fi + PayPal, personal open-source project) in the README and `llms.txt` — `README.md`, `llms.txt`
31
+
32
+
### Fixed
33
+
- Inventory / favourites table: every row is the same height — photo, colour placeholder or grouped spools (count badge) (the thumb is block-level in its cell instead of sitting on the text baseline) — `renderer/css/70-detail-misc.css` (`td.thumb-cell`)
34
+
- Buy Me a Coffee cup drawn with white coffee and an outline that vanished on dark backgrounds — the coffee is now the brand yellow (`#FFDD00`) and the dark theme swaps in a white-outline variant (sidebar, support chooser, requests card) — `assets/svg/logos/logo_buy_me_coffee.svg`, `assets/svg/logos/logo_buy_me_coffee_dark.svg`, `renderer/css/10-settings.css`
35
+
36
+
### Removed
37
+
- The random "Welcome back," line above the name in the sidebar — `renderer/inventory.html`, `renderer/inventory.js`, i18n `welcomeBack` (also from `docs/i18n-keys.md`)
38
+
-`assets/svg/logos/logo_buymeacoffee.png` (Buy Me a Coffee wordmark) and the `.bmc-btn` styles — no longer used now that the support buttons open a multi-platform chooser
0 commit comments