This website requires JavaScript.
8bbaa440da
feat(sca): map stripe error codes to user-facing copy in tui
feat/sca-tui-error-copy
marcusDenslow
2026-05-28 10:25:11 +02:00
95b9fa91b1
feat(sca): add order status endpoint adn SCA error code mapping (#14 )
marcus06
2026-05-27 19:23:29 +02:00
d2b86c779b
fix(sca): suppress unused lint on SCA scaffolding helpers
feat/sca-order-status-endpoint
marcusDenslow
2026-05-27 19:19:05 +02:00
44fce84a4d
feat(sca): add order status endpoint adn SCA error code mapping
marcusDenslow
2026-05-27 18:52:24 +02:00
0fe013c399
feat(cart): pass off_session=true on PaymentIntent for SCA exemption eligibility (#13 )
marcus06
2026-05-27 18:09:50 +02:00
b0d2e29cf4
feat(cart): pass off_session=true on PaymentIntent for SCA exemption eligibility
feat/card-authentication-required
marcusDenslow
2026-05-27 18:04:10 +02:00
d9404ab31e
style(tui): update refund page ui (#12 )
marcus06
2026-05-25 23:18:42 +02:00
124c08e1ba
style(tui): update refund page ui
fix/fix-refund-message-box
marcusDenslow
2026-05-25 23:15:34 +02:00
a21485f91d
fix(tui): way to much to write (#11 )
marcus06
2026-05-25 22:34:25 +02:00
576b3f4757
fix(tui): way to much to write
fix/fix-refund-flow
marcusDenslow
2026-05-25 22:31:06 +02:00
bce94b6d10
feat(refund): add refund request flow (#10 )
marcus06
2026-05-25 22:04:03 +02:00
74d6a9fdf2
style(tui): run gofmt to fix formatting
feat/refund-page
marcusDenslow
2026-05-25 22:00:44 +02:00
3737eea7f6
feat(refund): add refund request flow
marcusDenslow
2026-05-25 21:51:01 +02:00
dee6172875
refactor(tui): port to charm v2 (#9 )
marcus06
2026-05-25 19:09:16 +02:00
bad8b3abff
style(tui): gofmt main.go and menu.go
feat/charm-v2-migration
marcusDenslow
2026-05-25 19:05:03 +02:00
6598f63cb2
refactor(tui): port to charm v2
marcusDenslow
2026-05-25 19:00:08 +02:00
b404303f84
feat(notify): daily slack reminder for paid orders awaiting labels (#8 )
marcus06
2026-05-25 16:45:15 +02:00
9797bc59d1
feat(notify): daily slack reminder for paid orders awaiting labels
feat/unshipped-slack-reminder
marcusDenslow
2026-05-25 10:59:21 +02:00
48d65c48fa
feat(tui): render customer-facing event timeline in order detail veiew (#7 )
marcus06
2026-05-24 20:14:14 +02:00
2ec07faab0
feat(tui): render customer-facing event timeline in order detail veiew
feat/order-timeline
marcusDenslow
2026-05-24 20:09:31 +02:00
c78021f520
docs(comments): add some comments (#6 )
marcus06
2026-05-24 18:57:58 +02:00
0ca5bd9bb8
docs(comments): add some comments
documentation
marcusDenslow
2026-05-24 18:54:22 +02:00
c429c1966e
docs(comments): add some comments (#5 )
marcus06
2026-05-24 18:44:25 +02:00
ce198ba775
docs(comments): add some comments
documntation
marcusDenslow
2026-05-24 18:37:00 +02:00
50e1ba32f3
docs(comments): add some comments (#4 )
marcus06
2026-05-24 12:26:34 +02:00
313f39b0ce
docs(comments): add some comments
something
marcusDenslow
2026-05-24 12:16:13 +02:00
85b0c53c0a
docs(comments): cleanup comments (#3 )
marcus06
2026-05-24 12:02:50 +02:00
b58533d6ff
docs(comments): cleanup comments
comment-cleanup
marcusDenslow
2026-05-24 11:48:30 +02:00
366d80a9ee
test(dillydallying): testing the ci workflow (#2 )
marcus06
2026-05-23 22:12:46 +02:00
e0f5f241b9
test(dillydallying): testing the ci workflow
testing
marcusDenslow
2026-05-23 22:06:42 +02:00
60f52f9851
add ci (#1 )
marcus06
2026-05-23 21:43:30 +02:00
d68379ff68
fix(cards): handle crypto/rand.Read error in storeRedirect
add-ci
marcusDenslow
2026-05-23 21:36:24 +02:00
23b6835a2a
style(tui): drop traling blank line for gofmt
marcusDenslow
2026-05-23 21:29:36 +02:00
d33d6bd354
refactor(lint): resolve golangci-lint findings
marcusDenslow
2026-05-23 21:19:56 +02:00
73697d4037
ci(checks): add pull request workflow and golangci-lint config
marcusDenslow
2026-05-23 21:19:25 +02:00
a4c446ba3c
fix(tui): change the stripe abandoned payment polling duration from 2 to 10 mins
marcusDenslow
2026-05-23 13:15:15 +02:00
491f70e935
fix: add 2-minute timeout to browser payment poll so abandoned stripe checkout sessions stop polling
marcusDenslow
2026-05-23 12:50:35 +02:00
153e487155
chore: add reconcile-cards script to detach orphan stripe pms from customers
marcusDenslow
2026-05-23 11:34:27 +02:00
1752ca534f
chore(tui): update some typage
marcusDenslow
2026-05-22 22:18:44 +02:00
b2bd6ed623
fix(cards): advance tui after duplicate card detection by pollin on updated_at instead of count
marcusDenslow
2026-05-22 22:09:55 +02:00
96400ede14
fix(cards): dedupe saved cards via local-db last4+brand+exp match in checkout.sessions.completed webhook
marcusDenslow
2026-05-22 21:38:18 +02:00
30cf46370c
fix(cards): duplicate card entries after adding card through stripe webhook fixed
marcusDenslow
2026-05-22 21:21:02 +02:00
31f0698d63
chore(gitignore): update gitignore
marcusDenslow
2026-05-22 21:19:32 +02:00
910b7f3141
chore(gitignore): update .gitignore with the claude skill to map codebase
marcusDenslow
2026-05-22 20:05:20 +02:00
19e493a3d5
feat(bring): send X-Bring-Client-URL header on booking reqs, defaulting to https://sshops.uk and overridable via BRING_CLIENT_URL env var
marcusDenslow
2026-05-22 20:02:43 +02:00
2e6dda190f
feat(audit): persist every order-scoped audit.X(...) call to a new order_events table alongside the existing slog line, builds the foundation for an admin order timeline view without changing the slog primary path
marcusDenslow
2026-05-22 20:01:29 +02:00
96e76f7e5b
feat(slack): add slack mark status buttons for bring orders, post-label thread now block kit, synthesize shippo webhook over loopback to reuse state-date guard and delivered transition
marcusDenslow
2026-05-20 18:09:34 +02:00
9d3ac9761d
feat(tui): add tracking redirect endpoint, render the short uril in the tui order detail instead of the old broken stuff ive been trying. this change is made by claude code and has not been reviewed carefully, this might break
marcusDenslow
2026-05-20 15:26:38 +02:00
e49fa01ca9
feat(tui): use BEL terminator for tracking url osc 8 link - hopefully this works
marcusDenslow
2026-05-20 15:12:56 +02:00
d9e9895913
revert(tui): render raw tracking url, last change wouldnt render the url for some reason
marcusDenslow
2026-05-20 15:07:14 +02:00
f73e1d18da
feat(tui): make tracking url clickable osc 8 hyperlink
marcusDenslow
2026-05-20 14:55:32 +02:00
29f57000a7
feat(notify): pin paid order messages in the #orders channel in slack, unpin on label purchase
marcusDenslow
2026-05-20 14:01:28 +02:00
1aaf82d7d6
feat(tui): poll orders every 10 seconds so that the order status refreshes live in the tui without logging out and in
marcusDenslow
2026-05-19 20:12:03 +02:00
9515603b32
feat(tui): split account orders into active and history tabls
marcusDenslow
2026-05-19 19:50:21 +02:00
bfd183bfbf
fix(ci): remove go module cache step since its redundant
marcusDenslow
2026-05-15 15:34:21 +02:00
e43040f702
feat(notify): post order vents into per-order slack threads - made by claude
marcusDenslow
2026-05-15 12:25:45 +02:00
2966474ff5
feat(notify): render slack order notification as block kit receipt with line items
marcusDenslow
2026-05-15 12:11:16 +02:00
0e4d267adb
fix(orders): write NULL instead of empty string for unpopulated shipp_transaction_id
marcusDenslow
2026-05-15 11:27:00 +02:00
c1b3ccf302
feat(notify): add buy label button via slack
marcusDenslow
2026-05-15 10:57:23 +02:00
f6eed76456
feat(notify): post Slack message when an order is paid
marcusDenslow
2026-05-15 08:54:23 +02:00
e5ec247a6b
feat(orders): customer-facking tracking labels and webhook response body
marcusDenslow
2026-05-14 21:17:50 +02:00
e29dd6b30d
fix(middleware): redact query strings from access logs
marcusDenslow
2026-05-14 13:47:20 +02:00
ee6e14a424
feat(shipping): shippo webhook fro tracking status updates
marcusDenslow
2026-05-14 13:30:37 +02:00
387758aa13
feat(shipping): add Bring booking client and country dispatch for label purchase
marcusDenslow
2026-05-13 22:14:32 +02:00
ff9615b75a
fix(shippo): fix rate-filter
marcusDenslow
2026-05-13 08:58:09 +02:00
a2afc47f32
refactor(shipping): check ALREADY_LABELED before INVALID_STATE in PurchaseLabel
marcusDenslow
2026-05-12 21:47:06 +02:00
37ad51949b
fix(shipping): require sender email on shippo address_from
marcusDenslow
2026-05-12 21:17:32 +02:00
99f34788ea
fix(shipping): round weights before posting to shippo
marcusDenslow
2026-05-12 21:12:31 +02:00
c22b64d6fa
feat(shipping): shippo label purchase endpoint
marcusDenslow
2026-05-12 20:57:11 +02:00
a71f72ad71
chore: update typing
marcusDenslow
2026-05-10 21:08:57 +02:00
700ad4926b
feat(models): derive order state from status + tracking
marcusDenslow
2026-05-09 16:48:10 +02:00
c5f4e492c0
refactor(orders): embed tracking on orders, drop shipments table
marcusDenslow
2026-05-09 10:08:32 +02:00
f88fe1d8d3
fix: preload shipments on view init endpoint
marcusDenslow
2026-05-08 15:15:53 +02:00
c6ff75f2a5
chore. ignore local DB backups and prod backups
marcusDenslow
2026-05-08 14:59:47 +02:00
add6e573b3
feat: extract shipments to dedicated table
marcusDenslow
2026-05-08 14:54:17 +02:00
9b45fb5138
updating
marcusDenslow
2026-05-08 13:43:03 +02:00
1849e324fc
feat: add admin tracking updates
marcusDenslow
2026-05-08 10:47:57 +02:00
c90dadf9ad
test was failing after some AI change. this should fix it
marcusDenslow
2026-05-06 13:53:38 +02:00
38cdda3d54
cleanup
marcusDenslow
2026-05-06 13:41:23 +02:00
c037a6e9f9
removing unused param
marcusDenslow
2026-05-05 22:05:29 +02:00
ffb476ec2d
updating variable to camelcase
marcusDenslow
2026-05-05 22:04:24 +02:00
177b080117
some change
marcusDenslow
2026-05-05 21:04:02 +02:00
9bf57b4048
perf(loadtest): retune overnight scenarios under rate limits
marcusDenslow
2026-05-04 09:51:27 +02:00
c96f922c70
refactor(tui): rebuild header with lipgloss/table
marcusDenslow
2026-05-04 09:51:21 +02:00
4e28b812bd
chore: gitignore runtime artifacts, drop orphan 00 and AI roadmap
marcusDenslow
2026-05-04 09:51:14 +02:00
7b92636b64
add video
marcusDenslow
2026-05-02 18:16:21 +02:00
17df27ae20
some updates
marcusDenslow
2026-05-02 17:48:07 +02:00
52d58583e9
db telemetry
marcusDenslow
2026-05-02 16:29:07 +02:00
327bb9c867
cleanup
marcusDenslow
2026-05-02 11:28:28 +02:00
9a5fff81bf
fix: defer component logger creation past package init
marcusDenslow
2026-05-01 22:26:03 +02:00
1c10cf4390
feat: structured logging with component tags + severity levels
marcusDenslow
2026-05-01 22:14:06 +02:00
ae7eaa8e97
feat: route audit + recovery through slog levels
marcusDenslow
2026-05-01 13:55:54 +02:00
8ca209a4cc
feat: add cart/auth/stripe metrics and slog-based log-level counter
marcusDenslow
2026-05-01 13:38:24 +02:00
9e9a8325a8
feat: track created orders metric
marcusDenslow
2026-04-30 14:37:46 +02:00
179c8011ca
added logger
marcusDenslow
2026-04-30 12:07:21 +02:00
9d4549a32d
feat: add OpenTelemetry tracing
marcusDenslow
2026-04-30 11:35:10 +02:00
31b8e82e47
fix: widen histogram buckets to resolve sub-5ms latency
marcusDenslow
2026-04-30 08:44:56 +02:00
67c8a6bafb
feature: expose /metrics with prometheus client_golang
marcusDenslow
2026-04-29 20:40:39 +02:00
67f01f4a38
feature: accpet HEAD on /health and /ping for monitoring probes
marcusDenslow
2026-04-29 15:49:26 +02:00
f47c10ed8a
refactor: structured error handling + CreateBox/formatListItem in checkout
marcusDenslow
2026-04-27 20:52:52 +02:00