alpha
Login
or
Join now
lgtm.shop
/
commerce
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Pilot atproto-native commerce backend
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
commerce
/
crates
/
at
main
10 folders
Nate Moore
feat(core): set a User-Agent on all outbound third-party HTTP
3w ago
464d8457
atproto
feat(core): set a User-Agent on all outbound third-party HTTP Shared lgtm_core::user_agent() -> "lgtm.shop/commerce@v{version}" applied to every outbound client: the Resolver (Slingshot/PLC/PDS probes), the atproto OAuth client, and the Stripe + Printful clients. Identifying ourselves is basic good-netizen practice.
3 weeks ago
claims
M7 T29: claim verify against named key + verified/unrevoked backer wall Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
core
feat(core): set a User-Agent on all outbound third-party HTTP Shared lgtm_core::user_agent() -> "lgtm.shop/commerce@v{version}" applied to every outbound client: the Resolver (Slingshot/PLC/PDS probes), the atproto OAuth client, and the Stripe + Printful clients. Identifying ourselves is basic good-netizen practice.
3 weeks ago
db
feat(db): 0012 device_link + oauth_grant tables (device linking, grant store)
3 weeks ago
integrations
feat(core): set a User-Agent on all outbound third-party HTTP Shared lgtm_core::user_agent() -> "lgtm.shop/commerce@v{version}" applied to every outbound client: the Resolver (Slingshot/PLC/PDS probes), the atproto OAuth client, and the Stripe + Printful clients. Identifying ourselves is basic good-netizen practice.
3 weeks ago
receipts
M7 T27: receipt mint + sha256 hash + offline verify + valid-if-live revocation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
server
refactor(server): clearer 'unresolved actor' reason; sync design doc to Extension injection
3 weeks ago
spaces
feat(mf-4): route permissioned order writes through one PermissionedStore::put seam Widen PgPermissionedStore.put(Order) to project surface, orderType, shippingAmount, and taxAmount into their denormalized columns; use the rkey (UUID) as the row id so getOrder lookup by order UUID continues to work. Refactor persist_order to build the complete record value (with lineItems array) and write it through ctx.store.put rather than a direct INSERT, so every permissioned order write goes through one interface and the full transaction detail is persisted as canonical DAG-CBOR. Resolve the getOrder TODO: line items are now sourced from the canonical record_cbor body when present; falls back to order_item join for legacy rows. payment_ref is applied via a targeted UPDATE after the store.put (transaction metadata, not in the DAG-CBOR body). Worker receipt write remains a direct INSERT: Deps lacks a store reference and receipt_record.order_id/buyer_did are not expressible through the current PermissionedStore interface without invasive changes to the worker pipeline API. New tests: test_put_order_widened_columns (spaces), test_checkout_per- sists_record_cbor_and_widened_columns and test_get_order_returns_line_ items_from_record_body (server). test result: 15 spaces, 92 server, 10 worker — all green.
1 month ago
surfaces
fix(checkout): make real Stripe checkout succeed (was a bare 400 for every order) With fake-payments off, every POST /api/checkout returned an empty-body 400. The real Stripe path could never succeed: place_order sent empty success_url/ cancel_url and DbVariantLookup left product_uri (used as the Stripe line-item name) empty. Stripe rejects both, and the handler swallowed the error with a bare `Err(_) => 400`, making it undebuggable from the storefront. - Thread configurable redirect URLs through place_order. New optional env vars LGTM_CHECKOUT_SUCCESS_URL / LGTM_CHECKOUT_CANCEL_URL, defaulting to {public_url}/checkout/success?session_id={CHECKOUT_SESSION_ID} and {public_url}/cart. - DbVariantLookup joins product for the real at_uri + title; carry a display name through VariantInfo -> DraftLine -> OrderItem to the Stripe line item (fallback title -> SKU -> "Item"). Name is a checkout-time snapshot, not persisted in P1. - Map checkout errors: validation/currency/not-found -> descriptive 400; missing key / provider rejection -> logged in full + generic 502, never a bare empty 400. Tests: place_order fake now asserts non-empty URLs + names are forwarded; DbVariantLookup join covered (title + SKU fallback); config default/override.
1 month ago
worker
feat(worker): standing link opt-in + buyer-repo purchase-claim publishing via device-link grant
3 weeks ago