Skip to content

πŸ“‹ eop β€” Task Board

Live from tasks/ frontmatter. 155 task files indexed. Rebuilt on every push to nightly via Cloudflare Pages.

πŸ”΅ Doing

9 tasks.

ID Title Area Updated
T-202 Dependabot triage part 2 β€” clear the moderate/low residue; production tree to zero infrastructure 2026-08-10
T-201 Dependabot triage β€” clear all critical/high npm vulnerabilities via targeted upgrades infrastructure 2026-08-06
T-185 Can't-pay-twice marker on payable documents accounting 2026-07-31
T-021 Migrate the document store aote-system/file-archive β†’ tebs-erl data-residency 2026-07-21
T-162 Notifications Center β€” one page to read, route, and configure every notification (in-app + email + watchdogs) notifications 2026-07-21
T-025 Migrate user-facing Firestore access to the client SDK (Admin SDK β†’ derived/privileged only) auth-rbac 2026-07-02
T-147 Consolidate + productionize the NAS billing scraper (schedule Β· re-auth/alert Β· decommission Cloud Run) nas-scraper 2026-07-02
T-047 IR56M fill β†’ review β†’ confirm β†’ sign (Filings tab, reuse WOPC signing) tax-hk-filings 2026-06-25
T-166 ERL watermark v2 β€” per-document coastline watermark on generated documents (design + prototype) invoice β€”

β›” Blocked

2 tasks.

ID Title Area Blocked on
T-014 Match Transaction modal shows wrong fields/layout accounting owner re-check on fresh dev server
T-016 Aug/Sep 2025 GCP per-service breakdown gcp-billing owner β€” two single-month Console exports

βšͺ Todo

10 tasks.

ID Title Area
T-027 Narrow the Firestore Admin SDK credential β€” per-database SA scoping auth-rbac
T-037 Make the app "live" β€” fire notifications/email on AUTO events (upload, auto-match, tx-sync) notifications-matching
T-072 Note-email recipient first-name + GL-code / original-description live plumbing email
T-085 Unify the accounting period model to the Year of Assessment (FY ≑ 31-Mar YA; stub grandfathered) accounting
T-133 Manual "fully close an FY" gate + the extra IR56M confirmation status it unlocks tax-hk-filings
T-154 Optimize the web app for iOS 26 Safari (Liquid Glass) β€” safe areas, toolbar tinting, viewport web-mobile
T-181 Service Invoice upload pipeline β€” PDF-only, no cropping, no substantiation note, manual match hook accounting
T-182 Declare payment method at submission β€” Telegram /command + web Review-step flag accounting
T-186 Match a transaction to an existing Vendor Invoice accounting
T-190 Approvals route to a rank, not to one named person β€” retire the single line manager user-management

βœ… Done (recent 20)

20 tasks.

ID Title Area Updated
T-180 Separate Receipts from Service Invoices; stop the unified expense view being a front door accounting 2026-07-27
T-183 Employee payment readiness β€” abbreviation, legal name, bank account, and prompting for them accounting 2026-07-27
T-179 HKFRS s.33 related-party gate β€” carve-out for money going INTO GL 1120 (Due from Director) accounting 2026-07-24
T-177 Scoped agent access to the owner's Apps Script (code-management SA, no mail/Drive/run) infra-credentials 2026-07-23
T-052 Anchor coaching Sessions to the Individual stableId (replace name/abbr matching) coaching 2026-07-15
T-038 Live (part 1) β€” notify + email on AUTO-MATCH linked notifications-matching 2026-07-10
T-040 Live (part 3) β€” notify on BANK-TX-UPDATE β†’ auto-match notifications-matching 2026-07-10
T-041 Live (part 4) β€” notify on match SUGGESTION + MISALIGNMENT notifications-matching 2026-07-10
T-015 receipt-cropper β†’ min-instances 0 (stop 24/7 Cloud cost) infra 2026-07-09
T-039 Live (part 2) β€” notify + email on INVOICE UPLOAD notifications-matching 2026-07-09
T-050 WOPC withdraw β†’ reassign lets closing director be the WOPC's own payee (cross-issuance bug) wopc-records 2026-07-09
T-140 IR56M completed-email distribution can double-send (non-atomic claim, now reachable via PATCH) taxHK 2026-07-09
T-156 Bank-account nickname β€” brand label wins over the clearing-bank registry name (Airwallex vs "DBS") accounting 2026-07-09
T-158 Company payee blocks resolve from the bank-account registry (kill the 7+ hardcoded copies) accounting 2026-07-09
T-163 Records WOPC β€” "Delete permanently" kebab action for hidden/tombstoned WOPCs wopc-records 2026-07-09
T-159 Invoice β€” discount label made layout-neutral + debug-overlay geometry accuracy (rename, box edges, px readouts) invoice 2026-07-05
T-078 Invoice doc shape migration β€” consolidate to top-level detail + email maps accounting-invoices 2026-07-03
T-080 Post-migration dead-code cleanup β€” drop legacy-shape fallbacks once migrations are applied accounting-cleanup 2026-07-03
T-152 Project quotations β€” expose delete affordance matching invoice delete projects 2026-07-03
T-153 Project invoice template β€” render per-line discount percentage under amount project-invoices 2026-07-03

πŸ—‘ Dropped

11 tasks.

ID Title Area Why
T-007 Receipt remark/reference field as a matching fingerprint (gap 1b) receipts Substantiation note already exists; owner doesn't want it as a fingerprint.
T-008 1% fee as its own document-type entry point routing-map Owner chose matcher-only (T-001); no doc-type enum expansion.
T-013 Move services to NAS (NAS-primary, Cloud Run backup) infra β€”
T-035 Migrate Workspace invoice PDF fetching β†’ NAS (part c of 4) nas-scraper β€”
T-036 Migrate Workspace CSV (transactions) fetching β†’ NAS (part d of 4) nas-scraper β€”
T-051 Contacts unification OPTIONAL follow-ups (P6 WOPC re-anchoring Β· P7 teardown + registry cutover) contacts β€”
T-077 WOPC numbering chronology + multi-payment fragmentation consistency pass accounting-wopc β€”
T-083 Fix Firebase auth on non-primary domains β€” same-origin authDomain (reverse-proxy /__/auth) auth β€”
T-095 RBAC β€” introduce it_support role to scope infra/integrity alerts independently of admin rbac β€”
T-106 Minimize per-deploy NAS transfer β€” lockfile-pinned deps base image + app-layer split infra β€”
T-107 RBAC cleanup β€” drop the legacy role half from the badge dual-gate after T-022 step 7 bakes auth-rbac β€”

🎫 Tickets

Live from tickets/ frontmatter. 35 ticket files indexed. Tickets (I-NNN) are the symptom queue; a structural one also links a T-NNN task in its Task column.

πŸ†• Open

0 tickets.

(none)

πŸ” Investigating

1 ticket.

ID Title Area Found in
I-036 Telegram receipt upload β†’ Inngest "Your server returned HTTP 504 before the SDK responded" β€” Telegram bot reply after a receipt upload (owner, 2026-07-21) β€” post-Hobby-downgrade

⏫ Escalated

0 tickets.

(none)

🩹 Fixed (recent 20)

20 tickets.

ID Title Area Task Updated
I-037 Telegram receipts β€” Gemini cleanup mangles CJK characters into unreadable glyphs telegram-receipts β€” 2026-07-28
I-032 Invoice edit path DELETES canonical detail.payment.payTo and stashes it in legacy paymentDetail.payTo β€” every edit re-drifts the bank account accounting-invoices T-164 2026-07-10
I-024 NAS GCP billing scraper silently fails when its Google session expires β€” no re-auth + no failure alert (dark since ~2026-06-26) nas-scraper T-147 2026-07-03
I-026 GCP cost-table scrape can't select the billing-period dropdown ("Could not select invoice month") nas-scraper T-147 2026-07-03
I-029 231 coaching-invoice share links broke β€” 5 Nan session invoices dropped by the T-146 orphan re-home (restored) coaching T-146 2026-07-03
I-008 Inspect-Period "Data Integrity" stays red on a STALE reconciliation-watchdog alert after the cron recovered accounting-periods β€” 2026-07-02
I-027 Contacts β€” client companies showed blank address/phone/email (incomplete unification migration) contacts β€” 2026-07-02
I-003 Vendor-invoice transactions render the wrong display name (missing invoice number, dangling separator) display T-090 2026-07-01
I-004 Receipt detail modal no longer opens on double-click after the Receipts↔Service-Invoices tab merger records-ui T-087 2026-07-01
I-005 Constant re-login on the NAS β€” sessions bounce to /auth/error?reason=profile-missing auth T-088 2026-07-01
I-014 Signed WOPC ERL-WOPC/2025-020 reads as "Pending" with no signed PDF β€” signature.requestId dangles, all surviving requests voided, WOPC.pdf + revisions empty accounting-wopc T-089 2026-07-01
I-025 Coaching page showed missing/partial sessions, wrong balances, no vouchers/invoices for migrated students β€” page still read the pre-T-079 top-level Sessions location coaching T-146 2026-07-01
I-015 IR56M "Preview the filled PDF" button does nothing (popup blocked after await) tax-hk-filings, ui T-047 2026-06-29
I-016 Review of Codex's 2026-06-26β†’29 commits β€” overlooked-bug sweep (WOPC voided-PDF fall-through + coaching sessionDate + footgun guard) accounting-records, wopc, ir56m β€” 2026-06-29
I-019 Project accounting-projects, accounting-records β€” 2026-06-29
I-010 WOPC reference-number module β€” "Generating…" spinner never clears (T-081 numbering format mismatch) accounting-ui β€” 2026-06-24
I-011 Records β†’ WOPCs tab shows no WOPCs after the WOPC field restructure accounting-records T-110 2026-06-24
I-012 Records β†’ Coaching Invoices tab shows none after the coaching-schema migration accounting-coaching T-079 2026-06-24
I-007 Watchdog / integrity emails reach all admin users instead of the system owner only rbac T-095 2026-06-22
I-017 Service-invoice batch ZIP drops legacy GCS-stored rows (CORS) + GCP rows (wrong id) records β€” β€”

βœ… Closed (recent 20)

2 tickets.

ID Title Area Updated
I-001 Display name renders incorrectly for certain transactions display 2026-07-01
I-002 Firebase sign-in fails on p-eop β€” "Unable to save initial state" (sessionStorage) auth 2026-06-22

🚫 Won't fix

0 tickets.

(none)