Skip to content

Commit 669842b

Browse files
committed
docs: check open issues and PRs at the start of a session
Nobody is notified by the repo, so a contributor's pull request sits unread for days and a reported bug gets re-discovered from scratch -- both of which happened. The rule is to look and to REPORT; reviewing, merging and closing stay orders like any commit.
1 parent 9006eb2 commit 669842b

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

‎CLAUDE.md‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,25 @@ The working file is wiped so it stays clean and unambiguous: whatever is in `WOR
206206

207207
`Read WORKLOG.md` at the start of a new session — it tells you exactly what has been done since the last commit, without relying on the conversation summary.
208208

209+
**Then look at what is waiting on GitHub — without being asked.** Open issues and
210+
pull requests are work the project has already been handed. Nobody is notified by
211+
the repo, so an unread PR from a contributor sits for days, and a bug someone
212+
already reported gets re-discovered from scratch.
213+
214+
```bash
215+
gh pr list --state open && gh issue list --state open
216+
```
217+
218+
Run it ONCE at the start of a session and report what is there in one line each
219+
(`PR #24 open — Wiki button, 16 files` / `issue #23 — Canada + CAD, from a user`).
220+
Say when something is new since the last session.
221+
222+
**Reporting is not acting.** Do not review, fix, merge or close anything on your
223+
own initiative — a PR is reviewed when the user asks for it, and merging is an
224+
order like any commit (the *never commit without explicit instruction* rule covers
225+
merges and closes too). The point is only that the user hears about them from you
226+
rather than the other way round.
227+
209228
---
210229

211230
## 🔍 Code reviews — run them regularly, keep every one

‎WORKLOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# Worklog — v2.26.2 (in progress)
22

33
## Added
4+
- **Canada, with CAD and a rate per province.** All 13 provinces and territories, not the four the request named — half the country's users would otherwise have had no entry. No province SELECTOR was needed and none was built: `_vatEntryFor()` matches `code` as an opaque string, never parsing it or assuming two letters, so `CA-QC` is as valid a key as `FR`, and the picker already renders `label · rate% · symbol` — which is exactly the `Canada (Quebec) · 14.975% · CA$` the request asked for. Zero code, zero migration: `vatCountry` is a free field on `users/{uid}`, and the telemetry's `country` is derived from the locale, not from this, so a sub-national code cannot reach the roll-up that expects ISO-2. `rate` is the COMBINED rate a buyer pays — Canada has no national one, GST being federal with HST, PST, RST or QST layered on per province — and a new `note` field records what each is made of, so whoever updates them next can see it (Nova Scotia moved 15 → 14 in April 2025). Verified against the CRA's own rate table rather than copied from the request. The symbol is `CA$`, not `$`: a Canadian and an American dollar have to be told apart. Requested by @ImNanou (#23) — `data/vat-rates.json`
5+
- **A Wiki button in the sidebar's community footer**, linking to `wiki.tigersystem.io`. It reuses the existing community nudge machinery rather than adding a parallel one — the badge, the one-shot notification and the per-account "seen" flag synced to Firestore all come from the shared `COMMUNITY` table, so the entry IS the wiring. Contributed by @Ptitlouis6012 (#24) — `renderer/inventory.{html,js}`, `renderer/css/{00-base,10-settings,20-friends,70-detail-misc}.css`, `renderer/locales/*.json`
6+
- Fixes a pre-existing bug it surfaced: which local notifications were CLICKABLE was decided by a hardcoded list of brand names instead of the `COMMUNITY` table, so a new entry's notification was never actually clickable. The Firestore branch of the same renderer already tested the table; the two are aligned now.
7+
- **Its click was being thrown away by the security rules, in silence.** Like the five community links before it, the button stamps `wikiClickedAt` on `users/{uid}/telemetry/studio` — a field-whitelisted collection where the field was not listed. `hasOnly()` is evaluated on the POST-MERGE document, so the write failed WHOLESALE rather than dropping the one field, and the client swallows the rejection. Nothing was visible: the nudge's own "seen" flag lives on `users/{uid}`, which is not whitelisted, so the badge behaved correctly while the analytics vanished. Fixed in the backend repo's `firestore.rules` and deployed — the app side needed no change.
8+
- The button takes `var(--primary)` rather than a frozen `#FF6B00`, a colour that appears nowhere else in the app: ours is `#ff7a18` in light and `#ff8a33` in DARK, so the button would have sat slightly off every other accent on half the installs. The buttons beside it hardcode a THIRD-PARTY brand colour, which legitimately never moves; this one is ours. Its hover glow is derived from the same variable at the weight its neighbours use (~.42), not `--primary-20` (.25) which would have read weaker than all of them — `renderer/css/{10-settings,20-friends}.css`
9+
- It no longer RINGS on startup. `_PASSIVE_NOTIF_IDS` — the set that keeps passive nudges silent — is a second hardcoded list, and `wiki` was not in it, so the one nudge that arrives on first launch would have chimed where the others deliberately do not.
10+
- The icon is a square SVG in the icons folder like every other one, replacing a 292×200 PNG. Masked into the shared 24×24 slot it letterboxed to 24×16 — visibly shorter than the square logos beside it — and hard-coding both dimensions on a non-square source is exactly what the CSS standard forbids. Also 8.7 kB lighter, and crisp at any size — `assets/svg/icons/icon_book.svg`, `renderer/css/70-detail-misc.css`
411
- **Two more Bambu Lab machines: the A2L and the X2D.** Both were already in the printer catalogue but neither reached the connection tutorial, so picking one offered no walkthrough at all — and the X2D was wearing an X1C's photograph. The A2L joins the **A-series** walkthrough (the one the A1 and A1 mini use) and the X2D the **X / H / P** one; that second walkthrough is a single shared series already — the X1C, the H2 range and the P2S have been reading the same seven steps for months, so there is no separate X-series tutorial left to retire. Each model's own picture now appears both in the add form and in the tutorial's model picker. Both are also RECOGNISED on sight: a scanned or cloud-added printer is matched by the `DevModel` code it reports, and neither code was known — `N9` for the A2L, `N6` for the X2D — so either machine would have arrived as "Select Printer", with a "?" thumbnail and no camera transport chosen. The codes are read off Bambu Studio's own `resources/printers/<CODE>.json`, each carrying the machine's `display_name`, rather than inferred from a serial glimpsed in the wild. The same files settle both open questions: Bambu files the A2L under `series_n` with the A1 and A1 mini, and the X2D under `series_x1` with the X1C and the P2S — the two walkthroughs they were given — and their camera blocks match those families exactly, the A2L advertising a LOCAL liveview like an A1 (JPEG over TCP) and the X2D none, like a P2S (RTSP). No serial prefix is recorded for either: a prefix can only be read off a real machine, and the code is the path discovery and the cloud both take — `data/printers/bbl_printer_models.json`, `renderer/printers/bambulab/{tutorial.json,probe.js}`, `assets/img/bbl_printers/{a2l,x2d}.png`, `assets/img/tutorials/bambulab/models/{a2l,x2d}.png`
512

613
## Changed
@@ -9,6 +16,7 @@
916
- **The bundled TigerTag database is refreshed** — 13 239 products across 65 brands, so a fresh install starts from a current catalogue instead of downloading the delta on first launch. Two version rows were renamed upstream (`TIGER_TAG_MAKER_V1.0` → `TIGER_TAG_V1.0`, `TIGER_TAG_PRO_V1.0` → `TIGER_TAG_PLUS_V1.0`); nothing in the app matches on those strings — the ids and the signing keys are unchanged — but `docs/rfid-vendors/tigertag.md` quoted the old ones and is corrected — `assets/db/tigertag/*`, `docs/rfid-vendors/tigertag.md`
1017

1118
## Fixed
19+
- **In dark mode, every community notification wore a BLACK logo on its brand colour.** The glyph was painted with `--surface` — the card background — which is `#ffffff` in light and `#171a22` in dark, so it was white by coincidence rather than by intent, and the comment two lines above it had been claiming "white logo" all along. It is `--on-accent` now: the fixed-polarity token for something sitting ON a filled colour, already used by the low-stock chip right below and by the sidebar buttons — which is exactly why those looked right in both themes while the notifications did not. Discord, GitHub, MakerWorld and the Shop were all affected; the new Wiki chip is simply where it was noticed — `renderer/css/20-friends.css`
1220
- **An H2C reporting `O1C2` was not recognised.** The machine answers with either of two model codes and only one of them was mapped, so the same printer resolved to its catalogue entry or to "Select Printer" depending on which it sent — and unresolved means a "?" thumbnail and no camera transport picked — `renderer/printers/bambulab/probe.js`
1321

1422
## Removed

0 commit comments

Comments
 (0)