will.anderson
c7f4d0248c
Merge pull request 'fix: free checkout Stripe SetupIntent + remove no-card-required copy' ( #123 ) from fix/free-checkout-stripe into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m14s
2026-05-12 00:16:12 +00:00
will.anderson
4c5d67c321
fix: free checkout requires Stripe SetupIntent for age verification; update copy
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m43s
2026-05-11 19:15:57 -05:00
will.anderson
d12f0375f8
Merge pull request 'dev → stage: force full build after registry cleanup' ( #122 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 7m23s
2026-05-11 23:56:57 +00:00
will.anderson
9feb9e24b6
Merge branch 'dev' of git.neuralplatform.ai:neuron-technologies/neuron-web into dev
2026-05-11 18:56:43 -05:00
will.anderson
941faccb3f
Merge pull request 'fix: force full build when no diff or stage-latest missing' ( #121 ) from fix/stage-full-build into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m16s
2026-05-11 23:56:35 +00:00
will.anderson
6a040afcc5
fix: force full build when no diff or stage-latest missing
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m43s
2026-05-11 18:56:18 -05:00
will.anderson
6c2f423548
Merge pull request 'dev → stage: trigger rebuild' ( #120 ) from dev into stage
2026-05-11 23:46:43 +00:00
will.anderson
a346a2197e
Merge branch 'dev' of git.neuralplatform.ai:neuron-technologies/neuron-web into dev
2026-05-11 18:46:33 -05:00
will.anderson
e268b424f5
Merge pull request 'ci: touch dist to trigger stage rebuild' ( #119 ) from ci/touch-dist into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m2s
2026-05-11 23:46:17 +00:00
will.anderson
20029d36df
ci: touch dist to trigger stage rebuild
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m35s
2026-05-11 18:45:57 -05:00
will.anderson
c6fb24498a
Merge pull request 'ci: trigger workflow via dist/ change' ( #118 ) from ci/trigger-rebuild into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Failing after 42s
2026-05-11 23:27:43 +00:00
will.anderson
3e230e52e5
ci: touch dist/ to trigger workflow rebuild
2026-05-11 18:27:31 -05:00
will.anderson
f06850eb1a
Merge pull request 'ci: re-trigger #3 ' ( #117 ) from ci/trigger-rebuild into stage
2026-05-11 23:25:53 +00:00
will.anderson
0a4d454765
ci: re-trigger #3
2026-05-11 18:25:41 -05:00
will.anderson
7bc2a8e8f6
Merge pull request 'ci: re-trigger build after runner restart' ( #116 ) from ci/trigger-rebuild into stage
2026-05-11 22:59:51 +00:00
will.anderson
c4c30f1b33
ci: re-trigger after runner restart
2026-05-11 17:59:40 -05:00
will.anderson
ae1a87de98
Merge pull request 'ci: rebuild after registry cleanup' ( #115 ) from ci/trigger-rebuild into stage
2026-05-11 22:34:23 +00:00
will.anderson
54d48ed679
ci: trigger rebuild after registry cleanup
2026-05-11 17:33:53 -05:00
will.anderson
f5cbc15b43
Merge pull request 'dev → stage: fix HTML escaping in headings and button' ( #114 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 8m5s
2026-05-11 22:27:28 +00:00
will.anderson
28f9ecd1a3
Merge pull request 'fix: heading and button elements pass children unescaped' ( #113 ) from fix/force-full-rebuild into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m0s
2026-05-11 22:21:41 +00:00
will.anderson
b6bb25e79e
fix: heading and button elements pass children unescaped
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m32s
el_h1/h2/h3/h4 and el_button were calling el_escape() on their
content, converting any HTML children (e.g. <span class="gold">)
into literal entity text on screen.
These functions accept composed HTML children, not raw text — they
should pass the argument through like el_div/el_p/el_span do.
el_text, el_attr, el_title, el_textarea, and el_img keep escaping
(they handle actual text/attribute values, not HTML children).
2026-05-11 17:21:19 -05:00
will.anderson
e148e6987d
Merge pull request 'Force full El rebuild — strip CGI content' ( #111 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 7m44s
2026-05-11 21:43:20 +00:00
will.anderson
5812cb0452
Merge pull request 'Force full El rebuild — strip CGI content from base image' ( #110 ) from fix/force-full-rebuild into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m13s
2026-05-11 21:43:09 +00:00
will.anderson
c99923da1b
Force full El rebuild — strip CGI content from base image
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m39s
2026-05-11 16:42:41 -05:00
will.anderson
9554430b7e
Merge pull request 'Also skip El rebuild for workflow-only changes' ( #108 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 8m23s
2026-05-11 20:47:04 +00:00
will.anderson
4e35cbe841
Merge pull request 'Also skip El rebuild for workflow-only changes' ( #107 ) from fix/stage-ci-paths into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m52s
2026-05-11 20:46:51 +00:00
will.anderson
62385b53c2
Also skip El rebuild for .gitea/ workflow-only changes
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m16s
Workflow file changes don't require rebuilding the El binary. Without
this, merging workflow fixes to main triggers a full El build which
hits a codegen issue in the CI version of elb.
2026-05-11 15:46:37 -05:00
will.anderson
9685a42c7d
Merge pull request 'Skip El rebuild for migration/script/test-only changes' ( #106 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 11m48s
2026-05-11 20:45:32 +00:00
will.anderson
952b03737b
Merge pull request 'Skip El rebuild for migration/script/test-only changes' ( #105 ) from fix/stage-ci-paths into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m54s
2026-05-11 20:45:14 +00:00
will.anderson
d2628ec42e
Skip El rebuild for migration/script/test-only changes
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m17s
migrations/, scripts/, tests/ changes don't require rebuilding the El
binary. Classifying them as asset-only avoids spurious full builds that
regenerate dist/*.c and can hit codegen incompatibilities.
2026-05-11 15:44:59 -05:00
will.anderson
9650dad951
Merge pull request 'Update CORS test: no-Origin requests are allowed' ( #104 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Successful in 8m44s
2026-05-11 20:22:39 +00:00
will.anderson
d598fb7b10
Merge pull request 'Update CORS test: no-Origin requests are allowed' ( #103 ) from fix/stage-ci-paths into dev
2026-05-11 20:22:30 +00:00
will.anderson
1eeb8df04b
Update CORS test: no-Origin requests are allowed (same-origin fix)
...
Same-origin browser fetches don't send Origin. The server correctly
allows them — blocking was the bug that broke checkout. Update the
test to match the fixed behavior.
2026-05-11 15:22:22 -05:00
will.anderson
c3aec8947a
Merge pull request 'Fix stage source guard: fetch origin/dev before ancestry check' ( #102 ) from dev into stage
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Failing after 9m28s
2026-05-11 19:09:52 +00:00
will.anderson
9e5d7e55ab
Merge pull request 'Fix stage source guard: fetch origin/dev before ancestry check' ( #101 ) from fix/stage-ci-paths into dev
Dev — Build & local smoke test / build-smoke (push) Successful in 2m48s
2026-05-11 19:09:33 +00:00
will.anderson
5d3b1a3e20
Fix stage source guard: fetch origin/dev before ancestry check
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m22s
The shallow clone (fetch-depth: 2) doesn't include origin/dev, so
git merge-base --is-ancestor was silently failing. Fetch dev with
depth=1 first so custom merge commit titles still pass the check.
2026-05-11 14:09:18 -05:00
will.anderson
441d6d7cb5
Fix: idempotent migration policy creation
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Failing after 12s
2026-05-11 18:56:50 +00:00
will.anderson
1264e32577
Fix: idempotent migration policy creation
2026-05-11 18:56:36 +00:00
will.anderson
7f88414b40
Make migration policy creation idempotent
...
DROP POLICY IF EXISTS before CREATE POLICY so migrations can be
re-applied to a DB that already has the policy (e.g. demo_config
was manually applied before migration tracking was set up).
2026-05-11 13:56:12 -05:00
will.anderson
de9bf25437
Merge pull request 'dev → stage: fix CI migration heredoc YAML parse error' ( #98 ) from dev into stage
...
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Failing after 23s
Merge PR #98 from dev into stage
2026-05-11 18:34:15 +00:00
will.anderson
b3ce6c3e64
Merge pull request 'Fix CI migration step: script file instead of heredoc' ( #97 ) from fix/stage-ci-paths into dev
...
Dev — Build & local smoke test / build-smoke (push) Successful in 2m3s
Merge PR #97
2026-05-11 18:34:01 +00:00
will.anderson
adbdfd3e90
Fix CI migration step: extract Python to scripts/run_migrations.py
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m36s
go-yaml (Gitea's parser) mishandles << inside block scalars, treating the
bash heredoc delimiter as a YAML merge key. Move the migration logic to a
standalone script called via python3 scripts/run_migrations.py.
2026-05-11 13:33:44 -05:00
will.anderson
a59fdf4baa
Merge pull request 'dev → stage: fix supabase-config null-origin CORS bug' ( #96 ) from dev into stage
...
Merge PR #96 from dev into stage
2026-05-11 18:31:00 +00:00
will.anderson
dd5fd2b3ce
Merge pull request 'Fix supabase-config CORS: treat absent Origin as allowed' ( #95 ) from fix/stage-ci-paths into dev
...
Dev — Build & local smoke test / build-smoke (push) Successful in 1m59s
Merge PR #95
2026-05-11 18:30:44 +00:00
will.anderson
617916134f
Fix supabase-config CORS: treat absent Origin header as allowed
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m30s
map_get returns null (0) for missing headers. str_eq(null, "") is false
because EL_CSTR(0) is NULL != "". Same-origin browser fetches don't send
Origin at all, so the missing-origin case was incorrectly being denied.
Fix: use str_starts_with(req_origin, "http") to detect a present origin.
If no origin header (null first arg → str_starts_with returns false),
origin_present is false and the request is allowed unconditionally.
2026-05-11 13:30:22 -05:00
will.anderson
ae633d3f71
Merge pull request 'dev → stage: wire Supabase migrations into CI/CD' ( #94 ) from dev into stage
...
Merge PR #94 from dev into stage
2026-05-11 18:22:17 +00:00
will.anderson
924c0804e7
Merge pull request 'Wire Supabase migrations into CI/CD' ( #93 ) from fix/stage-ci-paths into dev
...
Dev — Build & local smoke test / build-smoke (push) Successful in 2m0s
Merge PR #93
2026-05-11 18:22:01 +00:00
will.anderson
4a915c1a11
Wire Supabase migrations into CI/CD
...
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m30s
Adds a "Run database migrations" step to both stage.yaml and deploy.yaml.
Uses the Supabase Management API (access token from GCP Secret Manager)
to apply pending migrations tracked in a schema_migrations table.
Migrations run unconditionally before every deploy — asset-only or full.
Also adds migrations/** to paths filter so a migrations-only commit
triggers the pipeline.
2026-05-11 13:21:42 -05:00
will.anderson
43b5286fd5
Merge pull request 'dev → stage: pricing buttons, API keys, enterprise contacts' ( #92 ) from dev into stage
...
Stage — Build, push & deploy to marketing-stage / deploy-stage (push) Failing after 7m55s
Merge dev into stage
2026-05-11 18:06:02 +00:00
will.anderson
4a3ede98f7
Merge pull request 'Stage: pricing buttons, API keys, reasoning note, enterprise contacts' ( #91 ) from fix/stage-ci-paths into dev
...
Dev — Build & local smoke test / build-smoke (push) Successful in 2m19s
Merge PR #91 : dev stage batch
2026-05-11 18:05:33 +00:00