Repository navigation
v0.1.0
Pre-release
Pre-release
What's Changed
- M0.1: Project skeleton by @Igloczek in #1
- M0.2: Upstream reference and test services by @Igloczek in #2
- M0.3: Shared HTTP and application contracts by @Igloczek in #3
- M0.4: Database layer and loop helper by @Igloczek in #4
- M0.5: Contract suite harness by @Igloczek in #5
- M0.6: JSX runtime, page shell and asset build by @Igloczek in #6
- M0.7: SQLite write-load spike by @Igloczek in #7
- M0.8: Bun SMTP and LiquidJS spikes by @Igloczek in #8
- M1.1: Full v1 SQLite schema by @Igloczek in #9
- M1.3: Users and production authentication by @Igloczek in #10
- M1.4: Roles, permissions and TOTP by @Igloczek in #11
- M1.5: Lists CRUD, tags, opt-in types and counts by @Igloczek in #12
- M1.6: Subscribers and external IDs by @Igloczek in #13
- M1.2: Settings and validated configuration by @Igloczek in #14
- M2.1: SMTP messaging and delivery outcomes by @Igloczek in #15
- M2.2: Durable sends and outbox by @Igloczek in #16
- M1.8: Templates and bounded Liquid rendering by @Igloczek in #17
- M2.3: Transactional API by @Igloczek in #18
- M2.4: Unsubscribe and frequency cap by @Igloczek in #19
- M5.1: Subscriber events API by @Igloczek in #20
- M1.7: Subscriber query, search, segments and export by @Igloczek in #21
- M5.2: Sequence conditions by @Igloczek in #22
- M5.3: Sequences and enrollments by @Igloczek in #23
- test: ignore the host runtime's loopback port probes by @Igloczek in #24
- M5.4: Sequence scheduler by @Igloczek in #25
- M5.6: Worked example end to end by @Igloczek in #26
- M3.1: Campaigns API by @Igloczek in #27
- test: occupied-port bootstrap check drops probe connections by @Igloczek in #28
- M3.2: Campaign runner by @Igloczek in #29
- test: ignore host port probes in the nonconforming-route fixture by @Igloczek in #30
- M6.1: Performance against the targets by @Igloczek in #31
- M6.1b: Close the mixed-load throughput gap by @Igloczek in #32
- M2.5: Public pages by @Igloczek in #33
- M2.6: Outbound webhooks by @Igloczek in #34
- M3.3: Tracking analytics by @Igloczek in #35
- M3.4: Bounces by @Igloczek in #36
- M3.5: Media by @Igloczek in #37
- M1.9: CSV subscriber import by @Igloczek in #38
- M4.1: Admin shell, auth screens and dashboard by @Igloczek in #39
- M4.2: Subscribers and lists screens by @Igloczek in #40
- M4.3: Templates and campaigns screens by @Igloczek in #41
- M4.4: Settings, users, roles and profile screens by @Igloczek in #42
- M4.5: Bounces, media, import and forms screens by @Igloczek in #43
- M4.6: Analytics, maintenance and logs by @Igloczek in #44
- M5.5: Sequence screens, subscriber tabs and test mode by @Igloczek in #45
- test: wait for the import's temporary file by @Igloczek in #46
- M6.2: Backup command and operations guide by @Igloczek in #47
- M6.4: OpenAPI document by @Igloczek in #49
- M6.3: Release workflow, version, verification and packaging by @Igloczek in #48
- B1: Enforce one process per data directory by @Igloczek in #50
- B2: Bounded retention by @Igloczek in #51
- B3: Admin CSP and editor containment by @Igloczek in #52
- B4: Public-form CAPTCHA (ALTCHA, hCaptcha) by @Igloczek in #53
- B5: Sequence follow-ups and the subscriber activity tab by @Igloczek in #54
- B6: Send and media safety by @Igloczek in #55
- B9: Amazon SES bounces and complaints by @Igloczek in #56
- B7: Load and memory by @Igloczek in #57
- B8: Test debt and intermittent failures by @Igloczek in #58
- B10: Product defects left in the backlog by @Igloczek in #59
- Speed up local verification: parallel tests, one build, bun check by @Igloczek in #60
- e2e: spread spec files over independent stacks; 17.0 min to 9.8 min at 2 stacks by @Igloczek in #61
- B11: Event latency under mixed load by @Igloczek in #62
- B12: tooling, test and editor backlog lines by @Igloczek in #63
- B13: held-image caret, intermittent evidence and diagnostics by @Igloczek in #64
- B14: held-image caret follow-ups by @Igloczek in #65
- B15: editor polish from the B14 reviews by @Igloczek in #66
- B16: linked banner keeps visible trailing space by @Igloczek in #67
- Editor: a link's own white-space keeps its spaces on a click by @Igloczek in #68
- B17: campaign runner state guards by @Igloczek in #69
- B18: outbox lease and stuck sends (D80) by @Igloczek in #70
- B20: sequence enrollment endings (D81) and reschedule OpenAPI probe by @Igloczek in #72
- B19: subscriber consent invariants (D81, D82) by @Igloczek in #71
- B22: no send.failed after a subscriber wipe (D85); legacy enrollment endings (D83) by @Igloczek in #74
- B21: auth, bounce settings and webhook postpone (D84) by @Igloczek in #73
- B23: sending lease follow-ups (#69, #70, #74) by @Igloczek in #75
- B24: test and settings follow-ups (#71, #72, #73) by @Igloczek in #76
- B25: D22 durability decision (D86) by @Igloczek in #77
- B26: tx attachment budget bounds real memory (D87) by @Igloczek in #78
- B27: intermittent watch lines and tx harness by @Igloczek in #79
- B28: tx burst memory under D87's bound by @Igloczek in #80
- B29: remaining test gaps (#75, #76) by @Igloczek in #81
- B30: migration 18 login test that can fail by @Igloczek in #82
- B31: event latency tail by cause (D88) by @Igloczek in #83
- B32: cheaper settings.read() (D88) by @Igloczek in #84
- B33: Linux arm64 executable and multi-arch Docker image (D89) by @Igloczek in #85
- feat(mcp): Streamable HTTP MCP endpoint for templates and campaigns (B34) by @Igloczek in #86
- B35: Amazon SES is the only provider (D89) by @Igloczek in #87
- B36: completeness audit (D89) by @Igloczek in #88
- B37: one shared send-rate cap for SES (D92) by @Igloczek in #89
- B38: admin notification mails by @Igloczek in #90
- B39: MCP completeness (D91) by @Igloczek in #91
- B40: remove inert settings controls (D89) by @Igloczek in #92
- B41: deliverability docs for SES (D89) by @Igloczek in #93
- B42: runner test fails fast with its state instead of timing out by @Igloczek in #94
- B43: sending polish (#89/#90 backlog) by @Igloczek in #95
- B49: drive bound covers real I/O (fixes media test) by @Igloczek in #96
- B44: MCP polish (#86/#91 backlog) by @Igloczek in #97
- B45: backup polish (#85 backlog) by @Igloczek in #98
- B46: bounce test polish (#87 backlog) by @Igloczek in #99
- B48: small leftovers by @Igloczek in #100
- B50: race-free ports in test fixtures by @Igloczek in #101
- B51: new settings items never inherit another item's secret by @Igloczek in #102
- B52: bind the port before background loops start by @Igloczek in #103
- B54: test reliability by @Igloczek in #104
- B56: settings secret residuals by @Igloczek in #105
- B55: backup residuals by @Igloczek in #106
- B53: final nits sweep by @Igloczek in #107
- B57: last review nits by @Igloczek in #108
- B58: two micro nits by @Igloczek in #109
- B59: version 0.1.0 by @Igloczek in #110
New Contributors
Full Changelog: https://github.com/iglo-tech/iglo.email/commits/v0.1.0