Author SHA1 Message Date
austin 8fe9eb4446 Update dependency lucide-react to v1.30.0
renovate/artifacts Artifact file update failure
build-and-publish / build (pull_request) Successful in 2m17s
2026-08-07 13:00:03 +00:00
austin 7b27dd2264 Merge pull request 'A pull request must not touch :latest' (#12) from ci/pr-image-tag into main
build-and-publish / build (push) Successful in 2m17s
2026-07-27 09:58:25 -05:00
austinandClaude Opus 5 4f4082ecd7 A pull request must not touch :latest
build-and-publish / build (pull_request) Successful in 2m0s
This runner builds on the host's Docker daemon — the same daemon the live
container runs on — so retagging :latest IS a deployment. Watchtower compares
the running container's image against :latest, sees they differ, and recreates
the container from whatever was just built locally. Gating only the push was
never enough; the build itself was the deploy.

The worse failure is quieter. Reassigning :latest leaves the running
container's old image untagged, and once that image is pruned Watchtower can no
longer read it to compare against:

  Failed to retrieve container image info: No such image: sha256:…
  Unable to update container: no available image info.

bennett-portfolio hit exactly that. It sat on a four-day-old build, failing to
update 720 times in twenty-four hours, reporting healthy the whole time, and had
to be recreated by hand. This repo has the same workflow and the same exposure —
it simply has not been unlucky yet.

A PR now builds pr-<number>, which nothing watches. Trivy scans whatever was
built either way, so a bad Dockerfile or a new CVE still blocks the merge, and
the push step is unchanged — still main-only.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-07-27 09:53:24 -05:00
austin 77149e10a5 Merge pull request 'Update bennett platform to v0.1.10' (#11) from renovate/bennett-platform into main
build-and-publish / build (push) Successful in 1m46s
2026-07-26 21:59:39 -05:00
austin 7ddaf9eabe Update bennett platform to v0.1.10
build-and-publish / build (pull_request) Successful in 2m2s
2026-07-27 02:57:35 +00:00
austinandaustin 37cae20e6d docs: add CONTRIBUTING guide (#9)
Co-authored-by: austin <[email protected]>
2026-07-23 14:40:29 -05:00
austin abccce9d13 Merge pull request 'CI: gate the merge on tests' (#8) from ci/gate-merge into main
build-and-publish / build (push) Successful in 1m24s
2026-07-23 13:53:58 -05:00
austinandClaude Opus 4.8 166222cd67 CI: gate the merge, not just the image
build-and-publish / build (pull_request) Successful in 1m53s
Run the workflow on pull_request too, so tests + build + Trivy must pass before main can be
merged (branch protection requires this check). Push the image only on a real push to main —
never from a PR. Also standardises the workflow across all apps (three had drifted).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-23 13:53:57 -05:00
austinandClaude Opus 4.8 f7f059638f CI: actually run the tests, and let them gate the image
build-and-publish / build (push) Successful in 2m3s
The image build runs 'mvn -DskipTests' and the workflow was only build -> Trivy -> push, so
no app test has ever run in CI — only Trivy gated a merge. The platform contract tests added
in 0.1.9 were not running either, which defeated their purpose.

They cannot run inside 'docker build' — Testcontainers needs a Docker daemon and a build has
none. Maven runs as a sibling container instead, mounting the workspace volume act_runner
gave this job (matched on GITHUB_WORKSPACE, since it is mounted at the full repo path rather
than at /workspace) and sharing the host network so published test ports resolve as localhost.

Verified on itsthevine before rolling out here: 33 tests ran, and a deliberately failing test
failed the run at the Test step with the registry digest unchanged — no image published.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-23 12:20:41 -05:00
austinandClaude Opus 4.8 1f9271b611 Restore the dependency upgrades I reverted
build-and-publish / build (push) Successful in 1m22s
The merged Renovate bumps were undone when I rsync'd a local tree over these repos while
pushing the contract tests — that local package.json was a pre-merge backup I had kept so
the PRs would be the source of the versions.

Re-applied and verified from a clean install (rm -rf node_modules package-lock.json &&
npm install && tsc && vite build), which is also what regenerates a lock file consistent
with all the bumps at once.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-23 09:56:47 -05:00
austinandClaude Opus 4.8 5db38831f5 Inherit the platform contract tests, and extend the shared Renovate preset
build-and-publish / build (push) Successful in 1m22s
PlatformWebContract asserts what this app must do because it is on the platform: an /api
path matching no controller 404s rather than returning the SPA, health is UP, the liveness
and readiness probes exist, and a client-side route forwards to the shell. That first one
shipped broken to six live sites and was found by typing a URL by hand; now it fails a
build instead.

renovate.json is three lines pointing at austin/renovate-config. The rules were copied per
repo, so they matched only by luck and a change was six edits.

Platform 0.1.9.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-23 09:46:54 -05:00
austin acab25614b Merge pull request 'Update dependency lucide-react to v1.26.0' (#6) from renovate/lucide-monorepo into main
build-and-publish / build (push) Successful in 2m2s
2026-07-23 08:52:23 -05:00
austin 57c2497ae7 Merge pull request 'Update dependency typescript to v7' (#2) from renovate/typescript-7.x into main
build-and-publish / build (push) Successful in 1m19s
2026-07-23 08:50:51 -05:00
austin 08392902b0 Merge pull request 'Update bennett platform to v0.1.7' (#7) from renovate/bennett-platform into main
build-and-publish / build (push) Successful in 1m21s
2026-07-23 07:44:08 -05:00
austin 8bf9b134fb Update bennett platform to v0.1.7 2026-07-23 12:44:07 +00:00
austinandClaude Opus 4.8 49aeb6ede4 Move search and the front-page decisions out of the browser into Java
build-and-publish / build (push) Successful in 1m19s
Search downloaded every post to every visitor and filtered the list with String.includes,
so it could only ever match what a summary carries — a phrase from the body of a post was
unfindable, and the cost grew with each post published. It is now a query
(/api/posts/search) that searches the body too.

The home page picked 'the latest post' by taking element zero of that list, which was only
correct for as long as the API happened to return posts in that order. /api/home now
decides what leads, what counts as recent, and the tag counts, in one call.

Tag counting moves out of the controller into TagService, shared by both.

The LIKE escaping needed an explicit ESCAPE clause: there is no default escape character to
rely on, and posts are markdown full of literal backslashes — escaping with a backslash
turned a search for '%' into a search for backslashes and matched unrelated posts. Caught by
the new tests.

Also on platform 0.1.6 (contact-form header-injection fix).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-23 06:33:41 -05:00
austin 5e673beed7 Merge pull request 'Update bennett platform to v0.1.5' (#5) from renovate/bennett-platform into main
build-and-publish / build (push) Successful in 1m23s
2026-07-23 03:28:49 -05:00
austin ed830b07aa Update dependency lucide-react to v1.26.0
renovate/artifacts Artifact file update failure
2026-07-23 08:28:48 +00:00
austin c438746197 Update bennett platform to v0.1.5 2026-07-23 08:28:47 +00:00
austin cae257c280 Merge pull request 'Update bennett platform to v0.1.2' (#4) from renovate/bennett-platform into main
build-and-publish / build (push) Successful in 1m27s
2026-07-22 21:28:37 -05:00
austin 9b81bd750f Update bennett platform to v0.1.2 2026-07-23 02:28:35 +00:00
austinandClaude Opus 4.8 48b37d7d6c Pin Testcontainers to 1.x and skip rebuilds for config-only commits
build-and-publish / build (push) Successful in 1m17s
Testcontainers 2.0 renamed the postgresql/junit-jupiter module artifacts, so the major
bump can't even be resolved — disable it rather than let a bot PR reopen it each run.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-22 21:22:43 -05:00
austin ec739c3b31 Update dependency typescript to v7
renovate/artifacts Artifact file update failure
2026-07-23 02:21:08 +00:00
austinandClaude Opus 4.8 1a7f0f1980 Bump platform to 0.1.1 (netty HIGH CVE fixes)
build-and-publish / build (push) Successful in 1m24s
Picks up netty 4.2.16.Final, patching CVE-2026-59901/-55831/-55833/-56745 which Trivy
gated on in the previous build.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-22 21:06:44 -05:00
austinandClaude Opus 4.8 2b772d2931 Pin platform 0.1.0 release and wire up automatic propagation
build-and-publish / build (push) Failing after 1m17s
- parent/BOM now point at the immutable 0.1.0 release instead of a SNAPSHOT
- declare the Gitea Maven registry so Renovate can discover new platform versions
- renovate.json: group platform bumps into one automerged PR
- CI: drop --no-cache (releases are immutable, so caching is safe again) and add
  workflow_dispatch so rebuild-all-apps.sh can force an urgent rebuild

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XXKjx7FNyRVAjU8dgB5KhN
2026-07-22 21:03:06 -05:00
austinandClaude Opus 4.8 2a0dd1ae6b Restore the app files (prior commit mis-scoped its tar)
build-and-publish / build (push) Failing after 8s
Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-22 20:50:58 -05:00
austinandClaude Opus 4.8 eaad7b916e Add admin UI + MinIO image uploads
- Admin API: list/edit posts (incl. drafts, raw markdown), moderate comments, subscribers,
  author bio/links, and presigned image upload to MinIO (bucket is public-read for covers).
- Admin UI at /admin: post editor with cover-image upload, comment moderation, subscriber list.
- Public security switched to authenticated-paths so static assets (/images, /data) stay public.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-22 20:50:45 -05:00
austinandClaude Opus 4.8 cbe8a764b0 Rewrite as a Spring Boot app on the Bennett platform
build-and-publish / build (push) Successful in 1m38s
Restores the real backend lost with Supabase (posts, authors, comments, subscriptions, admin) in
Postgres, seeds the existing markdown posts, and rebuilds the site as a Vite/React SPA served by
Spring — keeping the original styling (serif + tan accent) and content.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-22 20:35:51 -05:00
austinandClaude Opus 4.8 ba054ab2eb Refactor to static markdown (remove Supabase backend) + self-host build
build-and-publish / build (push) Successful in 11s
Posts now read from data/posts/*.md via gray-matter + remark; authors derived
from posts. Removes admin dashboard, comments, subscriptions, and all Supabase
usage. Adds Dockerfile (Next.js standalone) + Gitea Actions CI. output: standalone.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-22 13:11:56 -05:00
Austin b54ad064ff added supabase 2026-02-20 09:12:47 -06:00
Austin ecbc399ec4 updated dependencies 2026-02-02 18:19:26 -06:00
austin a5f7a6b3be speed insights and analytics 2025-08-19 09:17:25 -05:00
austin 41c9b38bc5 speed insights and analytics 2025-08-19 09:13:50 -05:00
austin fa1f4d24a2 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	package-lock.json
2025-08-19 09:10:28 -05:00
austin 37d21745de speed insights and analytics 2025-08-19 08:56:53 -05:00
austin b095e798a4 fixed metadata 2025-08-19 07:16:53 -05:00
austin 9cfd2ad1cd removed cloudflare 2025-08-18 15:19:14 -05:00
austin 1f89c69686 fix 2025-08-18 14:56:55 -05:00
austin 58f794a5e0 removed open-next 2025-08-18 14:53:04 -05:00
austin 7017691af3 removed open-next 2025-08-18 14:51:39 -05:00
austin 8c7f2c2386 removed custom open-next 2025-08-18 14:25:45 -05:00
austin e892ff1dab removed infinite loop 2025-08-18 14:18:35 -05:00
austin 553736986c open-next build 2025-08-18 14:10:13 -05:00
austin af84b6ca8a added asset binding 2025-08-18 13:58:57 -05:00
austin dc101c4eaf removed assets binding 2025-08-18 13:52:31 -05:00
austin 5e8d7355d4 :) 2025-08-18 13:50:03 -05:00
austin 2725a26899 updated favicon 2025-08-18 13:13:58 -05:00
austin 6cd941295c switched to approuter 2025-08-18 13:10:47 -05:00
austin c2b0d905e1 wrangler 2025-08-18 11:30:28 -05:00
austinandGitHub 713dbc1430 Update the-eternity-of-our-bodies.md 2025-08-15 18:17:31 -05:00
austinandGitHub 56e2e1c528 Add files via upload 2025-08-15 18:17:14 -05:00
austinandGitHub 95cd4251f4 Create the-eternity-of-our-bodies.md 2025-08-15 18:16:30 -05:00
austinandGitHub 6f2e6d8d59 Delete .env 2025-06-13 18:07:56 -05:00
Auggie2lbcf 3e82713e7a authors 2025-06-13 17:54:41 -05:00
Austin Bennett 2efadfea59 RWN 2025-05-29 07:33:40 -05:00
Austin Bennett 39b974fec1 reformed witness network 2025-05-29 07:32:53 -05:00
Austin Bennett ef5e66f412 church finder 2025-05-29 07:28:35 -05:00
Austin Bennett af29ac2363 mongo -> supabase 2025-05-14 07:45:07 -05:00
Austin Bennett f7d5d84f2a fixes 2025-05-13 18:20:11 -05:00
Austin Bennett 5ff98d6fef fixed date 2025-05-13 18:12:09 -05:00
austinandGitHub 7cf786fd10 Merge pull request #7 from auggie2lbcf/valley-of-vision
valley of vision - adoration
2025-05-13 18:09:37 -05:00
Austin Bennett cd7e621f2d valley of vision 2025-05-13 18:04:57 -05:00
Austin Bennett 740bdf534a removed an env variable 2025-05-09 11:27:05 -05:00
Austin Bennett e0a1f927cf edge runtime 2025-05-09 11:16:25 -05:00
Austin Bennett 7c2526ce0c nvmrc 2025-05-09 11:14:15 -05:00
Austin Bennett 024c19c51e A Certain Sound 2025-05-09 10:59:26 -05:00
austin b030ad5a0c working 2025-04-29 10:57:10 -05:00
austin 48c4854cd9 more work 2025-04-28 14:30:37 -05:00
austin 6a78c0002f stuff 2025-04-28 14:29:47 -05:00
Austin Bennett 5205382f29 Added Etsy 2025-04-24 13:23:55 -05:00
Austin Bennett bc128427c9 updated tagline and icon 2025-04-24 13:05:15 -05:00
Austin Bennett 5241555307 more open graph 2025-04-22 10:20:10 -05:00
Austin Bennett 96fa2d7742 more open graph 2025-04-22 10:17:44 -05:00
Austin Bennett f8c0723731 more open graph 2025-04-22 10:12:50 -05:00
Austin Bennett fede49c20b more open graph 2025-04-22 10:07:47 -05:00
Austin Bennett 4967773d21 more open grpah 2025-04-22 10:00:35 -05:00
Austin Bennett 4662942992 more open graph 2025-04-22 09:58:05 -05:00
Austin Bennett e0359a860e more open graph 2025-04-22 09:51:35 -05:00
Austin Bennett f357479d07 more open graph 2025-04-22 09:46:56 -05:00
Austin Bennett 26c07297c3 open graph 2025-04-22 09:40:03 -05:00
austinandGitHub 4eb9cd5b78 Merge pull request #6 from auggie2lbcf/25-books
add 25-books
2025-04-22 09:30:47 -05:00
Austin Bennett c25ed5d252 typo in file name 2025-04-22 09:16:37 -05:00
Austin Bennett 7b36eb5885 post 2025-04-22 09:13:27 -05:00
austin a7d217b38b working stille 2025-04-19 16:37:34 -05:00
austin 5f9f5b445f started work on vov series 2025-04-11 13:20:02 -05:00
austin 556ff67488 removed confession from title 2025-04-09 09:20:23 -05:00
austinandGitHub 420087ffd4 Merge pull request #5 from auggie2lbcf/nationalism
added nationalism post
2025-04-09 08:38:21 -05:00
austin 9fc3b60102 fixed tags 2025-04-09 08:35:01 -05:00
austin 0ac4a84b4f finished 2025-04-09 08:33:51 -05:00
austin 4ed7cf3515 Merge remote-tracking branch 'origin/main' 2025-04-08 15:11:57 -05:00
austinandGitHub e2b7655d3a Merge pull request #4 from auggie2lbcf/comment-section
add comment section
2025-04-08 15:11:17 -05:00
austin ee7d6049a3 removed checkbox. will add back later 2025-04-08 15:08:49 -05:00
austin 6ac319831f local storage fix? 2025-04-08 13:49:53 -05:00
austin 2119a653f1 saved email & name 2025-04-08 13:48:11 -05:00
austin 9c3acc8102 updated handler 2025-04-08 13:45:31 -05:00
austin 5e0e9ff4bc comment section? 2025-04-08 13:41:35 -05:00
austin 223bb36834 Merge remote-tracking branch 'origin/main' 2025-04-08 13:28:20 -05:00
austin f357de6de3 fixed db name 2025-04-08 13:21:30 -05:00
austin a13ee3f4d6 test 2025-04-08 13:12:04 -05:00
austin 8352f31ffd removed the second header 2025-04-07 22:07:58 -05:00
austin b70a4a40a3 added some historical Theology 2025-04-07 22:03:49 -05:00
austin c2f82ce93f Merge branch 'nationalism'
# Conflicts:
#	package-lock.json
#	package.json
#	src/components/Layout.tsx
2025-04-07 21:01:37 -05:00
austinandGitHub d1f91b6c11 Merge pull request #2 from auggie2lbcf/subscribe
subscribe
2025-04-07 18:41:00 -05:00
austin c44dc0370b put back the side bar components 2025-04-07 18:40:05 -05:00
austinandGitHub 159474aba5 Merge pull request #1 from auggie2lbcf/subscribe
added subscription functionality
2025-04-07 18:27:37 -05:00
austin 3b10fad560 added subscription functionality 2025-04-07 18:25:19 -05:00
austin a444580592 started work 2025-04-05 22:50:07 -05:00
austin abeb8cbd26 added speed insights 2025-03-20 14:51:36 -05:00
austin 22d4ec54cd added analytics 2025-03-20 14:47:25 -05:00
austin 6bd0d4253e updated about 2025-03-20 14:22:52 -05:00
austin e2cbe0b609 removed my picture 2025-03-20 14:05:50 -05:00
austin c27b228682 added the 1689 2025-03-20 14:04:40 -05:00
austin 51efa90b64 2025-03-20 13:34:07 -05:00
austin e3ed1441ee standardized formatting 2025-03-20 11:35:59 -05:00
austin 1aa5611c91 updated about 2025-03-20 08:12:03 -05:00
austin 4527319f69 image 2025-03-20 04:12:50 -07:00
austin 24fc4e1b3a added a favicon 2025-03-18 16:01:44 -05:00
austin d39d5bce1d fixed tags 2025-03-18 15:58:26 -05:00
austin 770e8952b8 fixed the archive and added the 2lbcf 2025-03-18 15:57:32 -05:00
austin 7c8d968e87 fixed image display 2025-03-18 15:50:37 -05:00
austin 2203144490 fixed images 2025-03-18 15:44:56 -05:00
austin 7d7b826be8 removed comment section 2025-03-18 15:42:55 -05:00
austin 4991177fac updated about 2025-03-18 15:38:38 -05:00
austin c89cae22b0 removed firebase and dummy posts 2025-03-18 15:37:09 -05:00
austin 5ec7b398d1 init with dummy posts 2025-03-18 15:07:45 -05:00
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
"dependencies": { "dependencies": {
"clsx": "2.1.1", "clsx": "2.1.1",
"date-fns": "4.4.0", "date-fns": "4.4.0",
"lucide-react": "1.26.0", "lucide-react": "1.30.0",
"react": "^19.2.7", "react": "^19.2.7",
"react-dom": "^19.2.7", "react-dom": "^19.2.7",
"react-router-dom": "7.18.1", "react-router-dom": "7.18.1",
+2 -2
View File
@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>net.thebennett.platform</groupId> <groupId>net.thebennett.platform</groupId>
<artifactId>platform-parent</artifactId> <artifactId>platform-parent</artifactId>
<version>0.1.11</version> <version>0.1.10</version>
<relativePath/> <relativePath/>
</parent> </parent>
@@ -26,7 +26,7 @@
<dependency> <dependency>
<groupId>net.thebennett.platform</groupId> <groupId>net.thebennett.platform</groupId>
<artifactId>platform-bom</artifactId> <artifactId>platform-bom</artifactId>
<version>0.1.11</version> <version>0.1.10</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>