0ff8984a94fix reactivating old rows
mplorentz
2026-09-21 11:26:26 -0400
4a74a5284bRe-activate tomstoned subscriptions when email is the same
mplorentz
2026-09-21 10:05:53 -0400
5007a79a3aMerge pull request 'Allow users to choose digest schedule (time of day, day of week, timezone)' (#28) from mailship-200-allow-users-to-choose-digest-schedule-ti-60c into mainmatt2026-09-23 15:57:56 +0000
5675ebdf52fix reactivating old rows
mplorentz
2026-09-21 11:26:26 -0400
fd815282c2Re-activate tomstoned subscriptions when email is the same
mplorentz
2026-09-21 10:05:53 -0400
dbe4f6741dMerge pull request 'Forgejo Action: build and publish Docker image on merge to main' (#25) from mailship-7o9-forgejo-action-build-publish-docker-imag-63e into mainmatt2026-09-18 17:40:37 +0000
3a7d0d110aMerge branch 'cron-minutely' of ssh://forgejo.lorentz.is:4201/matt/mailship into cron-minutely
mplorentz
2026-09-18 13:11:58 -0400
8ebee878cbMerge remote-tracking branch 'origin/main' into cron-minutely
mplorentz
2026-09-18 13:11:51 -0400
7b75b2f4aaMerge pull request 'Fix broken NIP-9a link in README and document Node/single-instance requirements' (#21) from mailship-jh5-readme-nip-9a-link-is-empty-broken-897 into mainmatt2026-09-18 17:11:24 +0000
bcce525a83README: link NIP-9a to the spec PR (2194) — not yet merged to master
Agent
2026-09-18 12:59:38 -0400
98e1de2ba0Merge pull request 'Remove dead build-in-production.sh (anchor fork artifact)' (#26) from mailship-xyg-remove-dead-build-in-production-sh-ancho-e90 into mainmatt2026-09-18 16:37:06 +0000
77ce571d52Remove dead build-in-production.sh (anchor fork artifact)
Agent
2026-09-18 12:33:43 -0400
5deace1967feat: add Forgejo Action workflow to build and publish Docker image
Agent
2026-09-18 12:31:15 -0400
82532eb6f0Merge pull request 'gitignore .beads/interactions.jsonl (untrack beads audit sidecar)' (#24) from mailship-pcy-gitignore-beads-interactions-jsonl-untra-efb into mainmatt2026-09-18 16:30:29 +0000
b1a8258cfaMerge pull request 'fix: validate relay URL before calling load() to prevent remote DoS via unhandled rejection' (#22) from mailship-iij-post-notify-with-non-wss-relay-url-crash-655 into mainmatt2026-09-18 15:38:46 +0000
e22a5f457eMerge pull request 'Fix digest email showing "0 replies / 0 reactions" for every event' (#23) from mailship-d08-digest-email-shows-0-replies-0-reactions-10f into mainmatt2026-09-18 15:37:53 +0000
43f2a04de4Merge pull request 'hardening: run production container as non-root user' (#19) from mailship-c3s-docker-run-production-container-as-non-r-4e7 into mainmatt2026-09-18 15:33:56 +0000
08a1fd5232Merge branch 'main' into mailship-jh5-readme-nip-9a-link-is-empty-broken-897matt2026-09-18 15:27:39 +0000
612a4f5af2Merge pull request 'chore: remove unused/misplaced dependencies (bcrypt, express-ws, ts-node-dev, @types/node)' (#20) from mailship-6m4-remove-unused-misplaced-dependencies-bcr-d33 into mainmatt2026-09-18 15:20:45 +0000
f5f962f6b1Merge pull request 'Fix: distinguish already-confirmed confirm links from invalid ones; prevent duplicate subscription rows on re-register' (#18) from mailship-2px-confirm-link-shows-email-not-confirmed-a-349 into mainmatt2026-09-18 15:08:00 +0000
ae836da033fix: load reply/reaction events from repository into digest context
Agent
2026-09-18 10:46:27 -0400
0a5b7ad14dfix: validate relay URL before calling load() and soften unhandledRejection handler
Agent
2026-09-18 10:39:04 -0400
8235513822Set trust proxy so NIP-98 URL matching works behind traefik (X-Forwarded-Proto)
hudson
2026-09-16 15:15:26 -0400
395b192432Set trust proxy so NIP-98 URL matching works behind traefik (X-Forwarded-Proto)
hudson
2026-09-16 15:15:06 -0400
dd90386fb6Merge branch 'main' into cron-minutely
mplorentz
2026-09-16 14:07:25 -0400
c21ed9f71dMerge branch 'main' of ssh://forgejo.lorentz.is:4201/matt/mailship
mplorentz
2026-09-16 14:06:54 -0400
f4a3873f23Merge pull request 'Document include_event body on POST /notify/:id' (#15) from mailship-6u7-document-include-event-body-on-post-noti-292 into mainmatt2026-09-16 14:59:08 +0000
2ee4e53bd9Merge pull request 'Extract shared brandingVars() helper to eliminate duplication' (#17) from mailship-90c-extract-shared-brandingvars-helper-brand-e34 into mainmatt2026-09-16 14:37:20 +0000
e86ffbed15Merge pull request 'Normalize EVENT_VIEWER_URL trailing slash once in env.ts' (#16) from mailship-aee-extract-shared-normalized-event-viewer-u-671 into mainmatt2026-09-16 13:44:38 +0000
0059ec263bMerge pull request 'Route BASE_URL through env module to prevent callback URL drift' (#14) from mailship-lap-inconsistent-env-access-server-ts-reads--747 into mainmatt2026-09-16 13:23:33 +0000
560c7ef9bcdocument include_event body on POST /notify/:id
Agent
2026-09-14 16:10:10 -0400
c4b1a3fb4cMerge pull request 'Run checks in CI via Forgejo Actions' (#12) from mailship-e77-run-checks-in-ci-via-forgejo-actions-605 into mainmatt2026-09-14 20:00:59 +0000
2c257dedcdMerge pull request 'Standardize POST /notify/:id response shape — always include stored field' (#13) from mailship-nl0-post-notify-response-shape-ok-skipped-la-387 into mainmatt2026-09-14 20:00:32 +0000
a4bc587d64Merge pull request 'Standardize tests on vitest' (#11) from mailship-clt-standardize-tests-on-vitest-ddc into mainmatt2026-09-14 17:36:00 +0000
091fe6e7f3Merge pull request 'PORT: align default to 4738 throughout stack' (#10) from mailship-lcy-port-readme-says-default-3000-env-ts-thr-8fe into mainmatt2026-09-14 17:34:36 +0000
d98d034989Merge pull request 'Implement NIP-98 HTTP auth for GET/PUT/DELETE /subscription/email' (#9) from mailship-uxf-implement-nip-98-auth-for-get-put-delete-9b9 into mainmatt2026-09-14 17:33:47 +0000
cfbb29cb96Merge pull request 'Fix digest job race: events received between fetch and delete are dropped unsent' (#8) from mailship-091-event-arrival-race-in-digest-job-events--614 into mainmatt2026-09-14 17:12:10 +0000
7cdb84a0a1Merge pull request 'Align README, docker-compose, .env.template and stale comment with SMTP mailer' (#6) from mailship-0da-readme-config-architecture-and-docker-co-6e1 into mainmatt2026-09-14 16:57:09 +0000
2e26760126fix: remove unused imports and variables flagged by eslint
Agent
2026-09-10 17:03:35 -0400
0eca031890fix: update stale 'Postmark' comment to 'SMTP' in server.ts
Agent
2026-09-10 16:59:15 -0400
694791bfddMerge pull request 'Reschedule cron job when confirmed subscriber changes frequency' (#2) from mailship-e04-frequency-change-updates-db-but-never-re-63d into mainmatt2026-09-10 19:55:42 +0000
8837d3faddMerge pull request 'Scope CORS to browser routes only, fail closed on CORS_ORIGIN' (#4) from mailship-32x-cors-is-not-production-safe-wildcard-ori-52b into mainmatt2026-09-10 19:46:02 +0000
93ffdf3531Merge pull request 'fix: replace hardcoded #7161FF with {{brandAccent}} in digest email template' (#5) from mailship-hu5-stale-hardcoded-accent-7161ff-in-digest--a31 into mainmatt2026-09-10 19:35:04 +0000
a4463fdab4Merge remote-tracking branch 'origin/main' into mailship-32x-cors-is-not-production-safe-wildcard-ori-52b
Agent
2026-09-10 12:25:26 -0400
f04e378ea1Merge pull request 'Strip out the web UI (login + subscription filter management)' (#1) from mailship-d5i-strip-out-the-web-ui-login-subscription--1d8 into mainmatt2026-09-10 16:24:30 +0000