PageSourceSearch

https://joshcohen.ai/assets/2026-04-17-v5.5-continuation-Dkg19DTO.js

js joshcohen.ai collected 2026-10-05 13:40:26 UTC 7,919 bytes, 145 lines download raw bytes

1const e=`# v5.5 — Continuation plan
2
3**Opened:** 2026-04-17
4**Supersedes (partial):** [\`2026-04-17-v5.5-admin-polish.md\`](2026-04-17-v5.5-admin-polish.md) — the 17-todo source doc. This file reconciles shipped vs pending, adds new todos, and freezes the forward order.
5**Running log:** [\`2026-04-17-v5.5-running-log.md\`](2026-04-17-v5.5-running-log.md) — appended per task so progress survives context resets.
6**Workflow:** branch off \`v5\`, ship small, push often, merge \`--no-ff\` back, update \`STATE.md\` + \`CHANGELOG.md\` in the merge commit. \`v5\` is the Cloudflare Pages production branch — never edit directly.
7
8---
9
10## Reconciled status (of the original 17)
11
12| # | Scope | Status | Commit / Branch |
13|---|---|---|---|
14| 1 | SEO + social sharing admin | **Pending** | — |
15| 2 | Newsletter popup guard (logged-in users) | ✅ Shipped | \`52f27cd\` |
16| 3 | Reviews admin + shop identity editor | ✅ Shipped | \`23bf71c\` |
17| 4 | Shop inline / admin product editing | **Pending** | — |
18| 5 | OAuth connect for Codex + Gemini | **Blocked** | Needs operator OAuth-app registration |
19| 6 | LLM keys auto-ping + explicit primary | ✅ Shipped | \`646787d\` |
20| 7 | Mid-width sidebar hover-expand + pin | **Pending** | — |
21| 8 | Messages counterparty + admin outbound | **In progress** | \`08dc0cd\` (RPC + messagingDB prep); UI unshipped |
22| 9 | AdminProducts eye-toggle icon | ✅ Shipped | \`436ac38\` (bundled with 17) |
23| 10 | Fix broken product images | ✅ Shipped | \`feat/v5.5-product-images\` merged |
24| 11 | AI cart-announcement suggest | ✅ Shipped | \`feat/v5.5-cart-ai-suggest\` merged |
25| 12 | Partner signers directory | **Pending** | Depends on 8 |
26| 13 | AI newsletter auto-draft + schedule | **Pending** | Depends on 6 (done) |
27| 14 | AdminNavigation visibility toggle | ✅ Shipped | \`feat/v5.5-nav-visibility\` merged |
28| 15 | Shared ImageInput (paste/upload/AI) | **Pending** | Blocked on storage RLS |
29| 16 | AdminPageContent raw JSON + AI fill | **Pending** | Depends on 6 (done) |
30| 17 | ProductDetail tier selector spacing | ✅ Shipped | \`436ac38\` |
31
32**Scorecard:** 9 shipped · 1 in-progress · 1 blocked · 6 clean-pending.
33
34---
35
36## New todos (this plan)
37
38### Todo 18 — Priority Support button opens chat widget
39
40**Problem.** The white "Priority Support" button on \`/account/tickets\` is non-functional — clickable but does nothing. User in the session sent a screenshot of the dead button.
41
42**Target.** Click fires \`document.getElementById('chatbase-bubble-button').click()\`, which opens whichever chat widget is configured in \`/account/admin/chatbot\` (Chatbase by default). Fallback: \`mailto:[email protected]?subject=Priority%20Support%20Request\` when no widget is present.
43
44**Files touched.**
45- \`src/pages/account/Tickets.jsx\` — add \`openChatWidget\` helper + \`onClick\`.
46
47**Verification.**
48- Navigate to \`/account/tickets\`. Click "Priority Support". Chatbase panel opens in bottom-right.
49- With widget disabled: click opens the user's mail client to the support address.
50
51**Out of scope for v1.**
52- Pre-filling the chat input with "Priority request from <user>".
53- Pulsing the button when ticket count is high.
54
55**Estimate.** 15 min. **Actual:** shipped on \`feat/v5.5-priority-support-chat\` (this branch).
56
57---
58
59### Todo 19 — Replace /shop photos with AI-generated via Grok
60
61**Problem.** The \`/shop\` product thumbnails are a mix of stale Unsplash URLs and occasional hardcoded \`/images/products/*.jpg\` that don't exist. Visual consistency is poor.
62
63**Target.** Dispatch an agent using the \`generate-site-images\` skill (already installed — drives signed-in ChatGPT/Gemini/**Grok** tabs via the Claude-in-Chrome extension) to generate a fresh hero image per product. Save under \`public/images/generated/shop/<slug>.jpg\`. Update each product's \`image_url\` in the \`products\` table (and the fallback \`src/data/shopData.js\` entry) to the new asset path.
64
65**Approach.**
661. Dispatch the \`generate-site-images\` skill with a prompt template pointed at Grok's computer-use tab.
672. For each of the 22 shop products, generate one 1200×800 editorial hero in the site's visual language (dark, minimal, motion-blur accent — match existing hero style).
683. Write files into \`public/images/generated/shop/\`.
694. Batch-update \`products.image_url\` via \`UPDATE products SET image_url = ... WHERE slug = ...;\` — one commit per batch of 5 for reversibility.
705. Update \`shopData.js\` fallback entries in the same commit.
71
72**Files touched.**
73- \`public/images/generated/shop/<slug>.jpg\` × 22 (new).
74- \`src/data/shopData.js\` — swap \`image\` strings.
75- \`supabase/migrations/YYYYMMDD_shop_image_refresh.sql\` — one-shot UPDATEs.
76
77**Verification.**
78- \`/shop\` grid renders all 22 thumbnails with no broken images.
79- \`AdminProducts\` table matches.
80- Screenshots at lg + md + sm breakpoints.
81
82**Out of scope for v1.**
83- Product-detail hero backgrounds (current full-bleed headers stay).
84- Animated/video thumbnails.
85
86**Estimate.** 2-3 hrs (mostly image-generation round-trips).
87
88**Blocker.** Need Grok tab signed-in in Chrome. Operator confirms before dispatch.
89
90---
91
92## Forward ship order
93
94Smallest wins first, then unblock dependents.
95
961. **Todo 18** (NEW) — Priority Support button. 15 min. **DONE on this branch.**
972. **Todo 8** — Messages counterparty + admin outbound. 3-4 hrs. Finish the UI on top of the merged RPC prep (\`08dc0cd\`).
983. **Todo 12** — Partner signers directory. 2-3 hrs. Reuses Todo 8's admin-user search pattern.
994. **Todo 16** — AdminPageContent raw-JSON + AI fill. 2-3 hrs. Todo 6 already shipped — unblocks AI section.
1005. **Todo 19** (NEW) — Grok image refresh for /shop. 2-3 hrs. Parallelizable with 16.
1016. **Todo 15** — Shared ImageInput. 3-4 hrs. Depends on storage RLS migration (see STATE.md #5).
1027. **Todo 7** — Mid-width sidebar hover-expand + pin. 2-3 hrs.
1038. **Todo 13** — AI newsletter auto-draft + scheduled send. 4-5 hrs.
1049. **Todo 1** — SEO + social sharing admin panel. 3-4 hrs.
10510. **Todo 4** — Shop inline / admin product editing. 4-6 hrs. Do last — biggest scope.
10611. **Todo 5** — OAuth Codex + Gemini. **Blocked** on operator OAuth registration.
107
108Total remaining (excluding blocked): **~22-31 hrs** across 10 todos.
109
110---
111
112## Parked branches (do not delete, revisit later)
113
114From the 10 branches not merged into \`v5\` as of 2026-04-17:
115
116| Branch | Status | Revisit when |
117|---|---|---|
118| \`feat/dashboard-v3-light-shell-2026-04-13\` | parked | If v3 dashboard direction resumes |
119| \`feat/dashboard-redesign-2026-04-12\` | parked | Superseded-probably by v3 |
120| \`cloudflare-database\` | parked | If D1/Workers strategy resumes over Supabase |
121| \`tmp-phase-2-clean\` | parked | Admin user-drawer + activity feed — review later |
122| \`feat/image-generation-skill\` | parked | Contains skill file; conflicts with shipped \`AdminLLMKeys.jsx\`. Cherry-pick skill alone if wanted |
123| \`feat/nda-approval\` | parked | Same commit as v5 (via PR #15) — harmless |
124| \`fix/nda-gate\` | parked | Duplicate of \`feat/nda-approval\` — harmless |
125| \`feat/v5.5-messages-ui\` | parked | Contains only the chat-bubble delay already on v5 — harmless |
126| \`design/editorial-refresh\` | parked | Single "claude" commit with agent artifacts |
127| \`fix/audit-improvements-apr2026\` | parked | Pre-v5 audit — revisit if any specific fix is needed |
128
129---
130
131## Workflow per todo
132
133\`\`\`bash
134git checkout v5 && git pull origin v5
135git checkout -b feat/v5.5-<track-name>
136# ship small, push often
137git push -u origin feat/v5.5-<track-name>
138# when done, open a PR or do a local:
139git checkout v5 && git merge --no-ff feat/v5.5-<track-name>
140# update STATE.md + append to CHANGELOG.md IN THE SAME COMMIT as the merge
141git push origin v5
142\`\`\`
143
144Update this file's reconciled-status table + append to \`2026-04-17-v5.5-running-log.md\` after every merge.
145`;export{e as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.