Changelog
Every shipped change to KVICK.BIKE — the clean-room bike-vertical Hub on Cloudflare Workers + D1. Source of truth: CHANGELOG.md in the kvick-bike repo.
Semantic versioning: major (x.0.0) = breaking change or major milestone; minor (1.x.0) = a feature or module; patch (1.0.x) = a fix. The running version is VERSION in src/index.ts (surfaced at /api/build-info, /api/health, and the user-menu badge); package.json mirrors it.
v1.1.1 — 2026-06-25
- Removed the dead
.helm-editableinline-edit CSS (thecontenteditablechassis was retired pre-v0.6.385; no element used the leftover stylesheet) and corrected the stale "inline-editable card" comment. The customer card has no inline-edit affordance — editing is modal-first per the no-inline-editing doctrine. Reconciles the build with the BIKE.L2-0023 process narrative (modal-first edit;pricing_tierdormant; start-fresh, no A/B/C→Trade migration).
v1.1.0 — 2026-06-25
Customers
- Account linking renamed "Family" → "Linked" — the section links separate customer accounts (personal ↔ business, partners who each keep their own account), not family members. API
/family→/links; auditcustomer.account.link/unlink; thecustomer_family_linkstable is kept as an internal legacy name. (Edits process BIKE.L2-0153.) - New "Family" section — in-card family members: a primary contact plus spouse / children, each with their own name, relationship, and phone (+ minor flag). New
customer_family_memberstable;/family-membersCRUD (migration 015). A different level from account links — members of one account, not other accounts. - Card layout is now Contact → Linked → Family → Marketing → …
v1.0.0 — 2026-06-25
Baseline of the clean-room rebuild (started 2026-06-21), replacing the prior ~90k-line implementation. Everything below ships in 1.0.0; semantic versioning begins here.
Core (L1)
- Tiny kernel: D1 wrapper, DB-session auth + actor, hash-chained audit log, module contract + registry, granular permission seam (
can()over a data catalog). - Cloudflare Workers + D1, strict TypeScript, no framework; HTML / CSS / JS inline in TS template strings.
- Shared Core controls injected once in the shell:
kbDatePicker,kbSortable,kbPager,kbPrint, and the FTS5 search engine (core/search). cache-control: no-storeon shell + API responses (no stale bundles after a deploy).
Customers (L2)
- Full customer card at parity with the prior build: 3-pane work area (search / swappable ledger / read-only Till), modal-first editing per the no-inline norm.
- FTS5 search (BM25 + per-token prefix + synonyms); keyset-paginated interactions ledger (no silent caps).
- Sections: Contact / Linked / Family (bidirectional links + minor flag) / Marketing / Notes / Equipment / Loyalty / Identity / account credit-debit / Merge / Print.
- Real dataset imported from the prior build: 3,099 customers · 2,541 bikes · 20,360 transactions.
Settings (L2)
- Staff & permissions: Employee modal (role, visible tabs, PIN, idle-lockout) + read-only Permissions inspector.
- Granular permissions mirrored verbatim — catalog + roles + role / staff grants.
Discounts (L2)
- Discount builder in Settings: customer discounts that apply to Sales and/or Service, authored in a 3-step builder and assigned per-customer on the customer card (replaces the old A/B/C pricing tier).
- Per-department assignment, department-validated; the Sales / Service tills (when built) read the customer's assigned discount.
See also
CHANGELOG.mdin the kvick-bike repo — the canonical source; this Bible page mirrors it- Three strata — the architectural shape every release operates within
- Customers module — the first module's Bible page
- Settings module — Staff, permissions, discount builder