Repository navigation
Releases: sendrepute/sendrepute-campaigns
Release list
SendRepute Campaigns v0.1.44
SendRepute Campaigns v0.1.44
Translation improvements
This release includes the reviewed German, Spanish, French, Hindi, Indonesian, Italian, Portuguese, Russian, Turkish, Ukrainian, Vietnamese and Simplified Chinese translations in the installable Campaigns application.
- Improve natural wording across navigation, settings, errors, email editors and help guides.
- Correct untranslated interface labels while preserving product names, technical identifiers, placeholders and numerical values.
- Package the self-hosted application with its real installation wizard, not the website demo.
No database migrations are added or changed. Publishing this release does not remotely update customer installations.
Upgrade safely
Back up the complete PostgreSQL database, persistent application data, encryption key and private configuration before upgrading. Existing Git installations can use:
git pull --ff-only && ./setup.sh --mode resumeArchive installations should follow the documented archive upgrade procedure. Verify the published SHA-256 checksums before extraction. Preserve the existing Compose project, volumes and encryption key.
SendRepute Campaigns v0.1.43
SendRepute Campaigns v0.1.43
Translation and documentation updates
- Translate Email trash and its confirmation, empty-state and error messages instead of treating the label as a brand name.
- Arabic uses سلة محذوفات البريد. All supported non-English interface languages now have a localized label.
- Include refreshed screenshots for all 14 README languages, with the Operations section and both Email checks and Email trash visible.
This release does not change deletion, recovery or sending behavior and adds no database migrations. Existing migrations remain unchanged.
Upgrade safely
Back up the complete PostgreSQL database, persistent volumes, encryption key and private configuration before upgrading. From the existing Git clone:
git pull --ff-only && ./setup.sh --mode resumeSee Docker backup and isolated restore. Archive installations should follow the documented archive upgrade procedure and verify SHA-256 checksums.
Publishing this release does not remotely update customer installations.
SendRepute Campaigns v0.1.42
SendRepute Campaigns v0.1.42
Email checks and recoverable email trash
- Run basic or DNS checks on an existing audience list, with progress and per-address results. DNS results do not prove a mailbox exists; checks send no messages and perform no SMTP probing.
- Disposable-domain checks combine the original source with MailChecker. Explicit checks can refresh the sources under the existing daily update policy; ordinary subscriber writes use local data.
- Explicitly confirmed deletion removes eligible invalid addresses and reports skipped contacts with protected delivery history.
- Email trash has its own sidebar entry directly below Email checks. It records deleted addresses, reasons and deletion dates, and supports confirmed restoration.
- Restoration preserves original list membership and subscription status. It does not renew consent, restart cancelled messages or enroll contacts in automations. Conflicting live records or missing original lists block restoration without overwriting data.
- Recovery records survive deletion or expiry of check reports. Previously hard-deleted contacts cannot be recovered retroactively.
- The subscriber search reset control now has a clear label.
Compatibility and safe upgrade
This release adds PostgreSQL migrations 034_email_hygiene.sql, 035_mailchecker_source.sql and 036_deleted_subscribers.sql. Existing migrations are unchanged. Normal startup applies missing migrations through the existing migration mechanism.
Back up the complete PostgreSQL database, persistent volumes, encryption key and private configuration before upgrading. Full database backups include email-trash records; portable entity-only exports do not.
From the existing Git clone:
git pull --ff-only && ./setup.sh --mode resumeSee Docker backup and isolated restore. Archive installations should follow the documented archive upgrade procedure and verify SHA-256 checksums. Preserve existing volumes and configuration.
Publishing this release does not remotely update customer installations.
SendRepute Campaigns v0.1.41
SendRepute Campaigns v0.1.41
List-specific public domains
- Choose a verified tracking domain when creating or editing a list.
- Signup links, double-opt-in confirmation and unsubscribe links, including mailbox one-click unsubscribe, use the list's domain.
- Campaign tracking inherits the list domain unless the campaign explicitly selects another domain. For recipients in several lists, the first targeted membership takes precedence.
- Lists without a domain keep the installation Public URL. Existing signup tokens remain valid after changing domains.
- Reassign lists before deleting their selected domain.
- Managed Caddy adds the public subscription pages, required assets and public API routes while keeping private application routes blocked on additional hosts. Existing configurations are refreshed during reconciliation. External proxies still require equivalent operator-managed routing and working HTTPS.
Upgrade safely
Back up the database and persistent volumes first. From an existing Git clone:
git pull --ff-only && ./setup.sh --mode resumeSee Docker backup and isolated restore.
Archive installations should follow the documented archive upgrade procedure and verify SHA-256 checksums.
This release adds no database migrations. Publishing does not remotely update customer installations.
Verification
Focused backend integration, list-domain, HTTPS configuration and UI tests passed, including old signup-token compatibility, confirmation URLs, one-click unsubscribe, tracking inheritance and domain deletion protection. No real email, paid API call or customer-server upgrade was performed. Public TLS on a customer domain has not been tested.
SendRepute Campaigns v0.1.40
SendRepute Campaigns v0.1.40
- Correct the Arabic login layout and typography, including appropriately sized Arabic labels and headings, comfortable line height and letter spacing, and an RTL-aligned account icon.
- Bundle Noto Sans Arabic locally with its copyright notice and SIL Open Font License. Arabic login does not depend on an external font service.
- Improve the real installation wizard's RTL field, icon, token and URL presentation while preserving readable left-to-right values where required.
- Include the current self-hosted Campaigns runtime and existing saved-design recovery, paid-settlement, tracking HTTPS, backup and update-check safeguards. No additional database migrations are introduced relative to v0.1.39.
Compatibility and safe upgrade
This is an isolated audited self-hosted build with the actual installation wizard, not the public website demo. Installation does not purchase membership, charge for services, send email or update customer servers automatically. Paid central services still require separate explicit consent.
Before upgrading, back up the full PostgreSQL database, application data/encryption key, private .env and HTTPS/Caddy state. From the existing project directory, inspect local edits with git status --short, then run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key. Do not clone over an installation, run multiple versions against one database or use docker compose down -v. See the installation guide, archive upgrade instructions, Docker backup instructions and isolated restore instructions.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. These are repository downloads, not Release binary attachments. Compatible update checkers resolve immutable same-commit archive and checksum links; older attachment-only checkers require the ordinary one-time Git or archive upgrade. Verify downloaded bytes before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact release archives passed isolated component builds, frontend target and proprietary-module audits, path/checksum and portable-lockfile checks, a clean production npm install, disposable PostgreSQL migrations, offline paid-upgrade/backup fixtures, actual extracted installation-wizard Chromium checks, Arabic mobile RTL setup checks, and extracted Arabic login/font checks in light/dark themes at mobile and desktop widths. Activation setup, standalone routes, restart persistence and outbound transport auditing passed. Focused release-boundary, setup, update-check and locale tests and Campaigns typecheck passed. No real email, paid generation or customer-server deployment was performed.
SendRepute Campaigns v0.1.39
SendRepute Campaigns v0.1.39
- Align Campaign Insights with current SendRepute membership policy: VIP provides access eligibility, not a service-price discount. Accept the authoritative regular-price VIP quote and preserve exact price consent for each analysis.
- Retain compatibility with valid legacy Insights quotes during mixed-version rollout. A changed price is never silently accepted, and stale consent cannot trigger an automatic higher-priced purchase.
- Bundle the current customer API contract and self-hosted application. Current SendRepute VIP membership is $100 per month; native template access remains $1.99 per template. Membership does not discount paid usage. Local campaign management and the local MJML designer remain free; paid central services require separate explicit consent.
- Preserve existing saved designs and paid-design recovery safeguards.
Compatibility and safe upgrade
This release is an isolated audited self-hosted build with its real installation wizard, not the public website demo. Pricing and eligibility remain authoritative on SendRepute; installing this release does not purchase membership, change a wallet balance, charge for services or update customer servers automatically.
Before upgrading, back up the full PostgreSQL database, application data/encryption key and private .env. From the existing project directory, inspect local edits with git status --short and run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key. Do not clone over the installation, run multiple versions against one database or use docker compose down -v. See Docker backup instructions and isolated restore instructions. Archive installations follow the installation guide.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. These are repository downloads, not Release binary attachments. Compatible update checkers return immutable same-commit archive and checksum links; older attachment-only checkers need the ordinary one-time Git or archive upgrade. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact release archives passed isolated component builds, frontend target and proprietary-code boundary audits, archive/hash and portable-lockfile checks, clean production npm install, disposable PostgreSQL migrations, paid-upgrade/backup fixtures, extracted installation-wizard Chromium checks, activation setup and restart persistence. Focused Insights compatibility, release boundary/setup tests and Campaigns typecheck passed. No paid generation, real email send or customer-server upgrade was performed.
SendRepute Campaigns v0.1.38
SendRepute Campaigns v0.1.38
- Show paid-design recovery notices only for actionable cases. Confirmed saved designs stay out of the recovery panel, including after opening Show details.
- Hide the Show details entry when there are no actionable cases or additional pages to inspect. Hidden unresolved cases remain accessible through details, and missing-source or unverified results retain their recovery controls and warnings.
- This is a presentation-only recovery fix. It does not refund or charge credit, erase payment evidence, release an uncertain purchase guard, retry a purchase, or modify saved design content.
Compatibility and safe upgrade
No database migrations or financial/settlement runtime changes are added compared with v0.1.37. This is an isolated audited self-hosted build with its real installation wizard, not the public website demo. Repository downloads remain the supported publication channel; compatible update checkers return immutable same-commit archive and checksum links. Older attachment-only checkers require the ordinary one-time Git or archive upgrade. Publication does not install anything or update customer servers automatically.
Before upgrading, back up the full PostgreSQL database, application data/encryption key and private .env. From the existing project directory, inspect local edits with git status --short and run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key. Do not clone over the installation, run multiple versions against one database or use docker compose down -v. See Docker backup instructions and isolated restore instructions. Archive installations follow the installation guide.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. These are repository downloads, not Release binary attachments. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact release archives passed isolated component builds, self-hosted frontend boundary audit, archive/hash and portable-lockfile validation, clean production npm install, disposable PostgreSQL migration and restart-persistence checks, offline paid-upgrade/backup fixtures, extracted installation-wizard Chromium checks, setup activation and public routes/redirects. Thirty-five focused recovery/component/payment-guard tests, twenty-four release boundary/setup tests and Campaigns typecheck passed. No paid generation, real email send or customer-server upgrade was performed.
SendRepute Campaigns v0.1.37
SendRepute Campaigns v0.1.37
- Correct Arabic saved-template previews in Saved Library and campaign template selection, preserving authored email layout and canonical design content.
- Improve dark-mode card, field and section separation without recoloring the authored email.
- Add a consistent animated operation surface for save and send progress, success and errors across templates, lists and campaigns. Queued feedback means accepted into the sending queue, not delivered to recipients. RTL, mobile layouts, reduced motion and accessible status announcements are supported.
- Keep Use in Campaigns pending until the Campaigns save succeeds. A failed save keeps the document available; duplicate returns do not submit another save.
- Correct paid-design history that could label an already acknowledged saved source as needing verification after reload. Suppress the empty recovery-warning flash during initial loading. Actual missing-source and verification failures remain visible. These notices concern saved-design recovery, not a credit refund; financial guards and settlement behavior are unchanged.
Compatibility and safe upgrade
No database migrations are added or changed compared with v0.1.36. This archive is an isolated audited self-hosted build with its real installation wizard, not the website demo. Repository downloads are the supported publication channel; compatible update checkers return immutable same-commit download and checksum URLs. Older attachment-only checkers require the ordinary one-time Git or archive upgrade. Nothing is installed automatically, and publication does not remotely update a customer server.
Before upgrading, back up the complete PostgreSQL database, application data/encryption key and private .env. From the existing project directory inspect local edits with git status --short, then run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key; do not clone over an installation, run two versions against one database, or use docker compose down -v. Archive installations follow the installation guide. See Docker backup instructions and isolated restore instructions. Rollback can require restoring matching database and application-data backups.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact archives passed isolated component builds, frontend boundary auditing, portable-lockfile and archive/hash checks, clean production npm installation, disposable real PostgreSQL migration and restart-persistence checks, extracted installation-wizard Chromium checks, activation-gated setup, root and installed-installer GET/HEAD redirects, public route checks and offline paid-settlement upgrade/backup fixtures. Focused offline browser evidence covers real two-window hosted handoff with held persistence, rejection and duplicate/origin/source/state controls, plus Arabic/dark/mobile and reduced-motion feedback. Release allowlist and setup tests and nine saved-history regressions also passed. No customer database, paid generation, real email send or customer-server upgrade was performed.
SendRepute Campaigns v0.1.36
SendRepute Campaigns v0.1.36
- In installations using the included managed Caddy HTTPS profile, successful tracking-domain DNS verification now automatically queues additional hostnames and their base paths on the same Campaigns instance. Multiple tracking hosts coexist without replacing the primary hostname, certificate identity or existing campaign choices. Each campaign independently selects its verified tracking domain; verification does not select it automatically.
- Add the tracking hostname's address record pointing to the real server, publish the exact ownership TXT value, allow DNS propagation, then check DNS and verify. The managed installation handles the additional proxy configuration; Campaigns does not create DNS records. External reverse proxies and Tunnels remain operator-managed.
- Covered verified tracking names explicitly reuse an uploaded primary or Origin CA certificate only when its SAN covers the hostname; uncovered names use automatic individual certificate management. Uploaded certificates still need replacement before expiry. Origin CA is not directly browser-trusted: use a compatible Cloudflare proxied Full (strict) setup. Retain required DNS, ports and ACME connectivity.
- Native flock serializes managed writers, revision selection and controller pins. Atomic publication and retention of loading/last-good revisions keep needed PEM files available through concurrent updates, rejection and restart. The runtime image includes util-linux; bare Node installations opting into the shared managed site directory also need native flock.
- Approved tracking routes are retained for already-delivered immutable links when a selectable domain is deleted or its ownership challenge is rotated. Keep those historical hosts' DNS and certificates working; rotation/deletion stops new selection, not previously delivered links.
- Installation and all 14 in-product domain guides now describe automatic managed-Caddy setup, SAN/Origin-CA trust prerequisites, custom base-path mapping and retained-host lifecycle consistently. DNS ownership, configuration acknowledgement and working trusted HTTPS remain separate facts. A loaded configuration or SAN match is not a public TLS probe; this release does not claim a live customer TLS/525 issue was fixed.
- Repository downloads remain the supported publication channel, with the checker validating official releases and complete SHA-256 manifests before returning same-commit pinned archive/checksum URLs. No attachment upload, owner action or manual GitHub workflow is required; actual GitHub workflows are not changed.
- This archive is an isolated, audited self-hosted build with a real installation wizard, not the public website demo.
Compatibility and safe upgrade
This release adds the additive migration 033_tracking_https_hosts.sql, which retains approved hostname/base-path routes and seeds them from previously verified tracking domains. All existing migrations through 032_first_party_unsubscribes.sql are unchanged. Startup applies missing migrations using the existing Campaigns migration path.
Update-checker compatibility: installed v0.1.35 checkers can discover these verified repository downloads. Older attachment-only checkers need the normal one-time Git or archive upgrade to a compatible release. Nothing is downloaded or installed automatically, and no standalone/customer installation is remotely updated by publication. After the ordinary server upgrade, an already configured managed-Caddy installation automatically reconciles existing verified tracking hosts while preserving the primary site and campaign selections.
Before upgrading, back up the complete PostgreSQL database, application data/encryption key and private .env. From the existing Git clone on your server, inspect local edits with git status --short, then run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key; do not clone over an installation, run two versions against one database, or use docker compose down -v. Archive installations follow the installation guide. See Docker backup instructions and isolated restore instructions. Rollback can require restoring matching database and application-data backups.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact v0.1.36 archives passed isolated clean-room component builds, a fresh audited self-hosted frontend build, archive/hash/portable-lockfile checks, production npm installation, real local PostgreSQL migration and restart-persistence checks, a Chromium check of the extracted blank installation wizard and branding before owner setup, activation-gated setup, root and installed-installer GET/HEAD redirect checks, public routes and offline paid-settlement upgrade/backup fixtures. The extracted, installed Node runtime also passed additive two-host managed HTTPS staging and native-lock checks. Focused disposable real-Caddy TLS and local ACME-renewal evidence covers multiple hosts, primary certificate reuse, rejection/restart and retained keys; no public ACME or customer host was used. The packaged release checker was verified against the live previous release and its pinned manifest, with its output accepted by the actual TypeScript frontend guard. Release boundary audits remain unchanged; no central website/API implementation, proprietary catalog, tests or source maps are included. No live customer DNS/TLS change, real email, paid generation or customer-host upgrade was performed.
SendRepute Campaigns v0.1.35
SendRepute Campaigns v0.1.35
- Tracking-domain verification now creates a fresh, dedicated DNS resolver for each attempt and shares it across that attempt's address and TXT lookups. It retains the Campaigns server's configured system DNS servers, bounds query timeout/retries and does not add any public DNS fallback.
- Public address checks, private/reserved-address rejection and exact ownership TXT matching remain enforced. Resolver outages are distinguished from genuinely absent records with safe, localized diagnostics; a successful A or AAAA family can still be used when the other family is unavailable.
- Tracking-domain setup now shows two separate records in order: an A record for the actual tracking hostname, using the public IPv4 address obtained from the server or hosting provider, then the exact ownership TXT name/value. No server IP is guessed, and a Cloudflare edge IP is not presented as the server's IP.
- Keep both address routing and ownership TXT records, allow DNS propagation, then check public address resolution and ownership TXT. For a separate tracking subdomain, leave the base path as / unless its proxy is deliberately configured for a custom path.
- Tracking-host routing and trusted HTTPS remain separately operator-managed, optionally using Caddy or another suitable proxy/Tunnel. Installation HTTPS settings do not provision certificates for other tracking hostnames. This release introduces no HTTPS/TLS-readiness feature and does not claim that any live customer verification has been fixed.
- Repository downloads remain the supported publication channel, with the checker validating official releases and complete SHA-256 manifests before returning same-commit pinned archive/checksum URLs. No attachment upload, owner action or manual GitHub workflow is required; actual GitHub workflows are not changed.
- This archive is an isolated, audited self-hosted build with a real installation wizard, not the public website demo.
Compatibility and safe upgrade
The package contains Campaigns PostgreSQL migrations through 032_first_party_unsubscribes.sql; no new migration or changes to existing migration files were introduced relative to v0.1.34. Startup applies any previously missing migrations using the existing Campaigns migration path.
Update-checker compatibility: installed v0.1.34 checkers can discover these verified repository downloads. Older attachment-only checkers need the normal one-time Git or archive upgrade to a compatible release. Nothing is downloaded or installed automatically, and installing this version does not remotely update any customer server.
Before upgrading, back up the complete PostgreSQL database, application data/encryption key and private .env. From the existing Git clone on your server, inspect local edits with git status --short, then run:
git pull --ff-only && ./setup.sh --mode resumeResume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key; do not clone over an installation, run two versions against one database, or use docker compose down -v. Archive installations follow the installation guide. See Docker backup instructions and isolated restore instructions. Rollback can require restoring matching database and application-data backups.
Downloads and verification
Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.
The exact v0.1.35 archives passed isolated clean-room component builds, a fresh audited self-hosted frontend build, archive/hash/portable-lockfile checks, production npm installation, real local PostgreSQL migration and restart-persistence checks, a Chromium check of the extracted blank installation wizard and branding before owner setup, activation-gated setup, root and installed-installer GET/HEAD redirect checks, public routes and offline paid-settlement upgrade/backup fixtures. The new compiled domain-dns.js helper is included and loaded by the installed exported tracking-domain verifier. A separate read-only public DNS probe exercised that installed verifier on linker.sendrepute.com without a verification POST, credentials, DNS/TLS changes or customer writes. The packaged release checker was also verified against the live previous release and its real pinned manifest, with its output accepted by the actual TypeScript frontend guard. Release boundary audits remain unchanged; no central website/API implementation, proprietary catalog, tests or source maps are included. These checks use isolated local state/mocked paid transports: no real email, paid generation or customer-host upgrade was performed.