π eop β Task Board¶
Live from tasks/ frontmatter. 69 task files indexed. Rebuilt on every push to nightly via Cloudflare Pages.
π΅ Doing¶
10 tasks.
| ID | Title | Area | Updated |
|---|---|---|---|
| T-046 | Bank Transaction Register XLSX overhaul + shared letterhead + memo entry-point + tx-detail deep-link | records-export | 2026-06-19 |
| T-047 | IR56M fill β review β confirm β sign (Filings tab, reuse WOPC signing) | tax-hk-filings | 2026-06-19 |
| T-067 | Unified ExpenseCategory taxonomy + AI expense-category prompt | accounting | 2026-06-19 |
| T-045 | HK IRD employer's return (BIR56A / IR56B / IR56M) β nil-return obligation + WPP auto-fill | tax-hk | 2026-06-15 |
| T-033 | Fix GCP Cost Table scraper β historic backfill via URL-nav (NAS), bypass the cfc-select | nas-scraper | 2026-06-14 |
| T-034 | Migrate GCP invoice PDF fetching β NAS (part b of 4) | nas-scraper | 2026-06-14 |
| T-042 | Accounting Inspect/Close modal shares ONE live source of truth with the Bank tab | accounting-realtime | 2026-06-14 |
| T-022 | Enable RBAC enforcement β strict Security Rules (all DBs) + position claims + flip RBAC_ENABLED | auth-rbac | 2026-06-13 |
| T-028 | OCBC 2FA login not restored after page refresh (deployed) | finance-ocbc | 2026-06-13 |
| T-030 | Explain the obvious GCP charges in Feb/Mar/May 2025 | gcp-billing | 2026-06-13 |
β Blocked¶
4 tasks.
| ID | Title | Area | Blocked on |
|---|---|---|---|
| T-014 | Match Transaction modal shows wrong fields/layout | accounting | owner re-check on fresh dev server |
| T-015 | receipt-cropper β min-instances 0 (stop 24/7 Cloud cost) | infra | owner decision (keep cropper warm?) |
| T-016 | Aug/Sep 2025 GCP per-service breakdown | gcp-billing | owner β two single-month Console exports |
| T-026 | Re-introduce the firestore.rules CI auto-deploy workflow | auth-rbac | coordinate with the user-access-control web Claude session (owns the workflow file) |
βͺ Todo¶
17 tasks.
| ID | Title | Area |
|---|---|---|
| T-013 | Move services to NAS (NAS-primary, Cloud Run backup) | infra |
| T-021 | Migrate the document store aote-system/file-archive β tebs-erl | data-residency |
| T-024 | Airwallex "Make Transaction" on the real PayoutsβTransfers API | finance-payments |
| T-025 | Migrate user-facing Firestore access to the client SDK (Admin SDK β derived/privileged only) | auth-rbac |
| T-027 | Narrow the Firestore Admin SDK credential β per-database SA scoping | auth-rbac |
| 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-037 | Make the app "live" β fire notifications/email on AUTO events (upload, auto-match, tx-sync) | notifications-matching |
| T-038 | Live (part 1) β notify + email on AUTO-MATCH linked | notifications-matching |
| T-039 | Live (part 2) β notify + email on INVOICE UPLOAD | notifications-matching |
| T-040 | Live (part 3) β notify on BANK-TX-UPDATE β auto-match | notifications-matching |
| T-041 | Live (part 4) β notify on match SUGGESTION + MISALIGNMENT | notifications-matching |
| T-050 | WOPC withdraw β reassign lets closing director be the WOPC's own payee (cross-issuance bug) | wopc-records |
| T-051 | Contacts unification OPTIONAL follow-ups (P6 WOPC re-anchoring Β· P7 teardown + registry cutover) | contacts |
| T-052 | Anchor coaching Sessions to the Individual stableId (replace name/abbr matching) | coaching |
| T-053 | GCP Billing Statements β scrape (NAS) + surface in unified feed for pre-Oct-2025 months | nas-scraper, tax-hk-supporting |
| T-072 | Note-email recipient first-name + GL-code / original-description live plumbing |
β Done (recent 20)¶
20 tasks.
| ID | Title | Area | Updated |
|---|---|---|---|
| T-064 | Extract shared |
accounting | 2026-06-19 |
| T-065 | Attachment "view" (eye) shows a picture-icon placeholder for non-image files | accounting | 2026-06-19 |
| T-066 | Receipt auto-matcher β categorize via category default GL + drift reconciler | accounting | 2026-06-19 |
| T-068 | Period monthOf() in HK time + clear stale Inspect tx list on month change | accounting | 2026-06-19 |
| T-069 | Manually-uploaded Service Invoices β Drive (14d) + storage survey/migrate backfill | records | 2026-06-19 |
| T-070 | Subsidiary tab on Contacts + rename Client Company β Clients + storable employer file no. | contacts | 2026-06-19 |
| T-058 | Accounting fiscal-period UX β global period selector + RBAC-gated Fiscal-Year config tab | accounting | 2026-06-17 |
| T-059 | Accounting page β period-aware Overview dashboard tiles (collapsible) | accounting | 2026-06-17 |
| T-060 | Accounting page β table column-width optimization | accounting | 2026-06-17 |
| T-061 | Related-party flag β propagate through the individualβpayee sync | contacts | 2026-06-17 |
| T-062 | Retire Contacts legacy tabs (parity-first) + new-tab UI convergence | contacts | 2026-06-17 |
| T-063 | Transaction Details external window (chrome-less page) | accounting | 2026-06-17 |
| T-048 | Contacts refactor β Individuals + Client Company (unified sectioned person profiles) | contacts | 2026-06-16 |
| T-049 | Email template storyboard/preview tool (all RESEND emails) on the Tools page | tools-email | 2026-06-16 |
| T-054 | Dah Sing Bank May-2025 statement reconciliation (ERL-DSB-S closed savings a/c) | accounting | 2026-06-16 |
| T-055 | BUG β WOPC shows a quantity/unit ("xN" + unit, or literal "unit") on line items | wopc | 2026-06-16 |
| T-056 | Receipt bot stuck at "Downloading photoβ¦" β diagnosis + download hardening + telegram test suite | receipts | 2026-06-16 |
| T-057 | SECURITY β gate accounting-settings PATCH behind new accounting:config permission | rbac | 2026-06-16 |
| T-043 | WPP (Working Paper Pack) accuracy audit β logic + routing produce UNRELIABLE numbers | accounting-wpp | 2026-06-15 |
| T-044 | GCP invoices β subsidiary Drive folder + Records Vendor Invoices tab (like Workspace) | records-vendor-invoices | 2026-06-15 |
π Dropped¶
2 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. |