Commit Graph

31 Commits

Author SHA1 Message Date
giles
14838ebbaa ci: clean all sibling dirs before copying to fix stale table defs
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 6m7s
Previous runs left self-copies (e.g. cart/cart/) that caused
'Table already defined' errors. Split into two loops: first rm -rf
all sibling dirs, then copy only non-self siblings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:31:54 +00:00
giles
dc379b30a2 CI: skip copying own models to avoid duplicate SQLAlchemy table defs
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m4s
Each app has its own models/ at the root (imported as bare `models.X`).
The CI copy was also creating {app}/models/ (imported as `{app}.models.X`),
causing SQLAlchemy to see the same table defined twice.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:14:57 +00:00
giles
d8bec5317a Update shared submodule: import all model packages at startup
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 53s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:01:43 +00:00
giles
f4cd2f41c7 CI: use git archive for sibling models (atomic, race-safe)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
The cp approach failed when sibling repos were mid-update from
their own CI runs. git archive reads directly from git objects,
and git fetch ensures origin/decoupling is available even if the
sibling working tree is on a different branch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:11:01 +00:00
giles
029b02ff18 CI: copy sibling app models into build context for cross-domain imports
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m46s
Phases 1-3 split models by domain ownership, but cross-app imports
still exist (e.g. cart imports market.models.CartItem). In Docker
each app only has its own code. The CI step now copies sibling app
model packages into the build context before docker build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:01:58 +00:00
giles
908f92464e Update shared submodule: merge diverged alembic heads
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m27s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:27:34 +00:00
giles
c4fbfa4c53 Update shared submodule (adds missing alembic.ini)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m12s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:20:20 +00:00
giles
3adf268ffe Add PYTHONPATH=/app so Hypercorn spawn workers find app module
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m59s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:01:42 +00:00
giles
e97eea816f Update shared submodule: rename logging → log_config
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m25s
Fixes stdlib logging shadow that caused circular import in Docker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:56:01 +00:00
giles
25fc3a933c Replace shared_lib submodule with shared for decoupling deploy
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m10s
- Swap shared_lib submodule → shared (tracking decoupling branch)
- Dockerfile: shared_lib/ → shared/, remove bp symlink hack
- CI: trigger on decoupling branch, use dynamic ref_name

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:29:28 +00:00
giles
5d0653bf2e feat: decouple cart from shared_lib, add app-owned models
Phase 1-3 of decoupling:
- path_setup.py adds project root to sys.path
- Cart-owned models in cart/models/ (order, page_config)
- All imports updated: shared.infrastructure, shared.db, shared.browser, etc.
- PageConfig uses container_type/container_id instead of post_id FK

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 12:46:34 +00:00
giles
8ce8fc5380 fix: remove existing bp dir before symlinking in Dockerfile
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 44s
shared_lib now has a bp/ directory that conflicts with the symlink.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 01:08:04 +00:00
giles
b6f8141f20 Revert "fix: remove is_page filter from cart page hydration"
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 18s
This reverts commit d0da418f12.
2026-02-11 00:55:06 +00:00
giles
d0da418f12 fix: remove is_page filter from cart page hydration
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 18s
Posts used as containers aren't necessarily pages. Market and events
apps don't filter on is_page either.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 00:54:12 +00:00
giles
d5cb2131b7 chore: move repo to ~/rose-ash/ and add configurable CI paths
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 14s
REPO_DIR points to /root/rose-ash/cart, COOP_DIR to /root/coop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:05:43 +00:00
giles
742d84e999 chore: update shared_lib submodule to Phase 4
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 19s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:46:59 +00:00
giles
cb2fcd9d32 feat: per-page carts with overview, page-scoped checkout, and split blueprints (Phase 4)
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 21s
Splits the monolithic cart blueprint into three: cart_overview (GET /),
page_cart (/<page_slug>/), and cart_global (webhook, return, add).

- New page_cart.py service: get_cart_for_page(), get_calendar_entries_for_page(), get_cart_grouped_by_page()
- clear_cart_for_order() and create_order_from_cart() accept page_post_id for scoping
- Cart app hydrates page_slug via url_value_preprocessor/url_defaults/hydrate_page
- Context processor provides page-scoped cart data when g.page_post exists
- Internal API /internal/cart/summary accepts ?page_slug= for page-scoped counts
- Overview template shows page cards with item counts and totals
- Page cart template reuses show_cart() macro with page-specific header

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:45:30 +00:00
giles
7bdb736ef5 chore: update shared_lib submodule to Phase 3
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:54:16 +00:00
giles
c8d927bf72 feat: per-page SumUp credentials in checkout flow (Phase 3)
- Add resolve_page_config() to determine PageConfig from cart/calendar context
- Set page_config_id on Order during checkout
- Pass page_config to SumUp create_checkout and build_sumup_reference
- check_sumup_status uses order.page_config for per-page credential resolution
- Fix: use session.flush() instead of g.s.flush() in check_sumup_status

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:49:45 +00:00
giles
6729b0f158 chore: update shared_lib (fix settings cog visibility)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 35s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 13:23:14 +00:00
giles
42ce3af992 chore: update shared_lib (fix stale blog.post.calendars refs)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 35s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 13:03:42 +00:00
giles
6db8ff6aa6 chore: update shared_lib (remove console.log)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 34s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 11:51:45 +00:00
giles
ecbff6d221 chore: update shared_lib submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 33s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 10:55:18 +00:00
giles
1fea5f3d2d chore: update shared_lib submodule (post slug in events_url paths)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 33s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 10:37:04 +00:00
giles
a9a7dcdb61 chore: update shared_lib submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 34s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 09:40:55 +00:00
giles
347ce53363 fix: add register_order to bp/__init__.py (needed by orders)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 00:34:48 +00:00
giles
9f4fc41cc8 fix: add bp/__init__.py with register function exports
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 00:28:55 +00:00
giles
8afa232cc5 fix: add bp symlink in Dockerfile for suma_browser.app.bp import path
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 00:24:24 +00:00
giles
8b12509fe7 fix: Dockerfile, entrypoint, and CI for multi-repo deployment
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
- Fix requirements.txt path to shared_lib/requirements.txt
- Remove alembic migrations (managed by blog service)
- Fix APP_MODULE default to app:app
- CI: add git submodule update, deploy shared coop stack from /root/coop

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 00:14:04 +00:00
giles
06ab2f25ed feat: add shared library as git submodule
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 23:43:46 +00:00
giles
967303093d feat: initialize cart app with blueprints, templates, and CI
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Extract cart, order, and orders blueprints with their service layer,
templates, Dockerfile (APP_MODULE=app:app, IMAGE=cart), entrypoint,
and Gitea CI workflow from the coop monolith.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 23:17:41 +00:00