-
3ade1b9354
docs(loyalty): rewrite launch plan with step-by-step pre-launch checklist
master
Samir Boulahtit
2026-04-16 22:34:57 +02:00
-
b5bb9415f6
feat(cms): Phase A — page type selector, translation UI, SEO cleanup
Samir Boulahtit
2026-04-16 22:30:55 +02:00
-
bb3d6f0012
fix(loyalty): card detail — enrolled store name + copy buttons
Samir Boulahtit
2026-04-15 22:31:53 +02:00
-
c92fe1261b
fix(loyalty): use full pagination macro on card detail (match cards list)
Samir Boulahtit
2026-04-15 22:25:29 +02:00
-
ca152cd544
fix(loyalty): use shared pagination macro on card detail transactions
Samir Boulahtit
2026-04-15 22:18:59 +02:00
-
914967edcc
feat(loyalty): add paginated transaction history to card detail
Samir Boulahtit
2026-04-15 22:13:00 +02:00
-
64fe58c171
fix(loyalty): normalize card id field, fix terminal redeem bug
Samir Boulahtit
2026-04-15 22:01:26 +02:00
-
3044490a3e
feat(storefront): section-based homepages, header action partials, fixes
Samir Boulahtit
2026-04-14 23:33:06 +02:00
-
adc36246b8
feat(storefront): homepage, module gating, widget protocol, i18n fixes
Samir Boulahtit
2026-04-13 22:53:17 +02:00
-
dd9dc04328
feat(loyalty): add Chart.js visualizations to analytics page
Samir Boulahtit
2026-04-11 23:30:36 +02:00
-
4a60d75a13
docs(loyalty): Phase 8 — runbooks, monitoring, OpenAPI tags, plan update
Samir Boulahtit
2026-04-11 23:07:50 +02:00
-
e98eddc168
feat(loyalty): Phase 7 — advanced analytics (cohort, churn, revenue)
Samir Boulahtit
2026-04-11 22:57:23 +02:00
-
8cd09f3f89
feat(loyalty): Phase 6 — admin GDPR, bulk ops, point restore, cascade
Samir Boulahtit
2026-04-11 22:40:34 +02:00
-
4c1608f78a
feat(loyalty): Phase 4.1 — T&C via CMS integration
Samir Boulahtit
2026-04-11 20:26:22 +02:00
-
24219e4d9a
a11y(loyalty): Phase 4.2 — accessibility audit fixes
Samir Boulahtit
2026-04-11 20:14:03 +02:00
-
fde58bea06
perf(loyalty): Phase 3 — batched expiration + wallet sync backoff
Samir Boulahtit
2026-04-11 19:55:39 +02:00
-
52b78ce346
feat(loyalty): Phase 2A — transactional email notifications
Samir Boulahtit
2026-04-11 19:11:56 +02:00
-
f804ff8442
fix(loyalty): cross-store enrollment, card scoping, i18n flicker
Samir Boulahtit
2026-04-11 18:28:19 +02:00
-
d9abb275a5
feat(dev_tools): expand SQL query tool presets and fix column headers
Samir Boulahtit
2026-04-10 23:28:57 +02:00
-
4b56eb7ab1
feat(loyalty): Phase 1 production launch hardening
Samir Boulahtit
2026-04-09 23:36:34 +02:00
-
27ac7f3e28
docs: add nav fix to POC content mapping proposal
Samir Boulahtit
2026-04-03 21:32:15 +02:00
-
dfd42c1b10
docs: add proposal for POC content mapping (scraped → template)
Samir Boulahtit
2026-04-03 21:14:17 +02:00
-
297b8a8d5a
fix(hosting): preview link rewriting prepends storefront base_url
Samir Boulahtit
2026-04-03 20:03:04 +02:00
-
91fb4b0757
fix(hosting): propagate preview token in nav links + enrich pages with scraped content
Samir Boulahtit
2026-04-03 19:55:19 +02:00
-
f4386e97ee
fix(cms): testimonials dict.items() collision in section macro
Samir Boulahtit
2026-04-03 18:54:36 +02:00
-
e8c9fc7e7d
fix(hosting): template buttons use 'text' to match CMS section macros
Samir Boulahtit
2026-04-03 18:51:19 +02:00
-
d591200df8
fix(cms): storefront renders sections for landing pages + fix nav URLs
Samir Boulahtit
2026-04-03 18:42:45 +02:00
-
83af32eb88
fix(hosting): POC builder works with existing sites
Samir Boulahtit
2026-04-03 18:10:39 +02:00
-
2a49e3d30f
fix(hosting): fix Build POC button visibility
Samir Boulahtit
2026-04-03 17:57:55 +02:00
-
6e40e16017
fix(hosting): cascade soft-delete Store when deleting HostedSite
Samir Boulahtit
2026-04-03 17:49:40 +02:00
-
dd09bcaeec
docs: add proposal for HostedSite → Store cascade delete
Samir Boulahtit
2026-04-02 23:31:31 +02:00
-
013eafd775
fix(hosting): fix Create Site button visibility
Samir Boulahtit
2026-04-02 23:28:23 +02:00
-
07cd66a0e3
feat(hosting): add Build POC button with template selector on site detail
Samir Boulahtit
2026-04-02 23:24:19 +02:00
-
73d453d78a
feat(hosting): prospect search dropdown on site creation form
Samir Boulahtit
2026-04-02 23:14:47 +02:00
-
d4e9fed719
fix(hosting): fix site creation form + add delete to sites list
Samir Boulahtit
2026-04-02 23:10:48 +02:00
-
3e93f64c6b
fix(prospecting): clarify opportunity score UI
Samir Boulahtit
2026-04-02 23:05:59 +02:00
-
377d2d3ae8
feat(prospecting): add delete button to prospects list
Samir Boulahtit
2026-04-02 22:59:12 +02:00
-
b51f9e8e30
fix(hosting): smart slug generation with fallback chain
Samir Boulahtit
2026-04-02 22:56:28 +02:00
-
d380437594
fix(hosting): site detail null guard + cleaner preview URLs
Samir Boulahtit
2026-04-02 22:49:32 +02:00
-
cff0af31be
feat(hosting): signed preview URLs for POC sites
Samir Boulahtit
2026-04-02 22:41:34 +02:00
-
e492e5f71c
fix(hosting): render POC preview directly instead of iframe
Samir Boulahtit
2026-04-02 20:15:11 +02:00
-
9a5b7dd061
fix: register hosting public preview route + suppress SSL warnings
Samir Boulahtit
2026-04-02 20:01:55 +02:00
-
b3051b423a
feat(cms): add testimonials, gallery, contact_info section types (3D)
Samir Boulahtit
2026-04-01 22:54:15 +02:00
-
bc951a36d9
feat(hosting): implement POC builder service (Workstream 3C)
Samir Boulahtit
2026-04-01 22:46:59 +02:00
-
2e043260eb
feat(hosting): add industry template infrastructure (Workstream 3B)
Samir Boulahtit
2026-04-01 22:41:33 +02:00
-
1828ac85eb
feat(prospecting): add content scraping for POC builder (Workstream 3A)
Samir Boulahtit
2026-04-01 22:26:56 +02:00
-
50a4fc38a7
feat(prospecting): add batch delay + fix Celery error_message field
Samir Boulahtit
2026-04-01 21:55:24 +02:00
-
30f3dae5a3
feat(prospecting): add security audit report generation (Workstream 2B)
Samir Boulahtit
2026-04-01 21:41:40 +02:00
-
4c750f0268
feat(prospecting): implement security audit pipeline (Workstream 2A)
Samir Boulahtit
2026-04-01 20:58:11 +02:00
-
59b0d8977a
fix(hosting): require merchant or prospect for site creation
Samir Boulahtit
2026-03-31 23:14:47 +02:00
-
2bc03ed97c
docs: add end-to-end plan from prospecting to live site
Samir Boulahtit
2026-03-31 23:05:21 +02:00
-
91963f3b87
docs: architecture decision — hosting sites reuse CMS + Store + StoreDomain
Samir Boulahtit
2026-03-31 22:42:10 +02:00
-
3ae0b579d3
docs: add security audit + demo + POC builder proposal
Samir Boulahtit
2026-03-30 22:27:59 +02:00
-
972ee1e5d0
feat(prospecting): add ProspectSecurityAudit model (Phase 1 foundation)
Samir Boulahtit
2026-03-30 22:23:38 +02:00
-
70f2803dd3
fix(prospecting): handle PageSpeed API errors and improve performance card
Samir Boulahtit
2026-03-30 21:41:37 +02:00
-
a247622d23
feat(tenancy): add delete button on table + add-to-store in edit modal
Samir Boulahtit
2026-03-30 21:36:42 +02:00
-
50d50fcbd0
feat(prospecting): show per-category score breakdown on prospect detail
Samir Boulahtit
2026-03-30 21:35:06 +02:00
-
b306a5e8f4
fix(prospecting): inline isPositiveFlag check to avoid scope issue
Samir Boulahtit
2026-03-30 21:27:58 +02:00
-
28b08580c8
feat(prospecting): improve prospect detail with score details and tech badge
Samir Boulahtit
2026-03-30 21:24:19 +02:00
-
754bfca87d
fix(prospecting): fix contact scraper and add address extraction
Samir Boulahtit
2026-03-30 21:18:43 +02:00
-
1decb4572c
fix(tenancy): show role dropdown for pending store memberships too
Samir Boulahtit
2026-03-30 21:16:52 +02:00
-
d685341b04
refactor(tenancy): simplify team table + move actions to edit modal
Samir Boulahtit
2026-03-30 21:08:36 +02:00
-
0c6d8409c7
fix(tenancy): fix table column alignment with flattened row approach
Samir Boulahtit
2026-03-30 20:27:47 +02:00
-
f81851445e
fix(tenancy): align columns and actions in merchant team table
Samir Boulahtit
2026-03-29 23:39:31 +02:00
-
4748368809
feat(tenancy): expandable per-store rows in merchant team table
Samir Boulahtit
2026-03-29 23:32:47 +02:00
-
f310363f7c
fix(prospecting): fix scan-jobs batch endpoints and add job tracking
Samir Boulahtit
2026-03-29 23:31:33 +02:00
-
95f0eac079
fix(tenancy): prioritize active over pending in member status display
Samir Boulahtit
2026-03-29 23:24:16 +02:00
-
11dcfdad73
feat(tenancy): add team invitation acceptance page
Samir Boulahtit
2026-03-29 23:05:23 +02:00
-
01f7add8dd
test(tenancy): add integration tests for resend invitation
Samir Boulahtit
2026-03-29 21:47:10 +02:00
-
0d1007282a
feat(config): add APP_BASE_URL setting for outbound link construction
Samir Boulahtit
2026-03-29 21:43:36 +02:00
-
2a15c14ee8
fix(tenancy): use is_production() for invitation URL instead of debug flag
Samir Boulahtit
2026-03-29 17:49:31 +02:00
-
bc5e227d81
fix(tenancy): use correct base URL for invitation link in dev vs prod
Samir Boulahtit
2026-03-29 17:44:02 +02:00
-
8a70259445
fix(tenancy): use absolute URL in team invitation email link
Samir Boulahtit
2026-03-29 17:39:46 +02:00
-
823935c016
feat(tenancy): add resend invitation for pending team members
Samir Boulahtit
2026-03-29 16:48:12 +02:00
-
dab5560de8
fix(tenancy): use x-if instead of x-show for edit modal
Samir Boulahtit
2026-03-29 14:12:53 +02:00
-
157b4c6ec3
feat(tenancy): add profile editing in merchant team edit modal
Samir Boulahtit
2026-03-29 13:31:23 +02:00
-
211c46ebbc
feat(tenancy): add member detail modal + fix invite name saving
Samir Boulahtit
2026-03-29 13:23:20 +02:00
-
d81e9a3fa4
fix(tests): fix 7 pre-existing test failures
Samir Boulahtit
2026-03-29 12:34:26 +02:00
-
fd0de714a4
fix(loyalty): update delete tests for soft-delete behavior
Samir Boulahtit
2026-03-29 12:28:27 +02:00
-
c6b155520c
docs: add security hardening plan from 360 audit
Samir Boulahtit
2026-03-28 21:17:48 +01:00
-
66b77e747d
fix(storefront): add icons.js to storefront login page
Samir Boulahtit
2026-03-28 21:16:13 +01:00
-
71b5eb1758
fix(ui): add window.FRONTEND_TYPE to standalone login pages
Samir Boulahtit
2026-03-28 21:10:39 +01:00
-
b4f01210d9
fix(ui): inject window.FRONTEND_TYPE from server + rename SHOP→STOREFRONT
Samir Boulahtit
2026-03-28 21:08:59 +01:00
-
9bceeaac9c
feat(arch): implement soft delete for business-critical models
Samir Boulahtit
2026-03-28 21:08:07 +01:00
-
332960de30
fix(tenancy): fix team CRUD bugs + add member integration tests
Samir Boulahtit
2026-03-28 21:06:21 +01:00
-
0455e63a2e
feat(tenancy): add merchant team CRUD with multi-store hub view
Samir Boulahtit
2026-03-24 18:57:45 +01:00
-
aaed1b2d01
fix(tenancy): use correct Merchant.name field in team service
Samir Boulahtit
2026-03-23 21:58:46 +01:00
-
9dee534b2f
fix(tenancy): correct API path for merchant team page
Samir Boulahtit
2026-03-23 21:56:49 +01:00
-
beef3ce76b
fix(arch): extend TPL-009 block name check to merchant templates
Samir Boulahtit
2026-03-23 21:55:06 +01:00
-
884a694718
fix(tenancy): use correct block name for merchant team page scripts
Samir Boulahtit
2026-03-23 21:50:49 +01:00
-
4cafbe9610
fix(tenancy): use Python .lower() instead of JS .toLowerCase() in template
Samir Boulahtit
2026-03-23 21:48:33 +01:00
-
19923ed26b
fix(loyalty): remove avatar circle from transactions list
Samir Boulahtit
2026-03-23 21:45:45 +01:00
-
46f8d227b8
fix(loyalty): remove card_number display from transactions list
Samir Boulahtit
2026-03-23 21:44:45 +01:00
-
95e4956216
fix(loyalty): make edit PIN modal read-only except for PIN code
Samir Boulahtit
2026-03-23 21:36:11 +01:00
-
77e520bbce
fix(loyalty): use correct no-results text in PIN staff autocomplete
Samir Boulahtit
2026-03-23 21:33:09 +01:00
-
518bace534
refactor(loyalty): use search_autocomplete macro for staff PIN lookup
Samir Boulahtit
2026-03-23 21:30:10 +01:00
-
fcde2d68fc
fix(loyalty): use SQL func.replace() for card number search
Samir Boulahtit
2026-03-23 21:25:28 +01:00
-
5a33f68743
refactor(loyalty): use search_autocomplete macro for terminal lookup
Samir Boulahtit
2026-03-23 21:24:00 +01:00
-
040cbd1962
feat(loyalty): add customer autocomplete to terminal search
Samir Boulahtit
2026-03-23 21:21:36 +01:00
-
b679c9687d
fix(loyalty): only show staff dropdown after typing, not on focus
Samir Boulahtit
2026-03-23 21:14:35 +01:00