Commit graph

39 commits

Author SHA1 Message Date
89fd13ac2d EMAIL-WP-0005-T02: add GreenMail test harness
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Adds tests/harness/docker-compose.yml running GreenMail 2.1.12 (digest-pinned)
with SMTP 3025, IMAP 3143 and the API bound to 127.0.0.1 only, plus a
config/harness-imap.yml scanner profile and harness README. Auth is disabled
and no users are declared, so a mailbox is created on first login and per-test
users need no provisioning.

GreenMail standalone offers no STARTTLS, only plaintext or implicit TLS, while
SMTPProvider hardcoded starttls() -- so no send could reach it. SMTPProvider
now takes a security mode via EMAIL_CONNECT_SMTP_SECURITY, defaulting to
starttls. plaintext is refused for any non-loopback host, and hostnames are
never resolved to decide that, so a misconfigured deployment fails at startup
rather than sending credentials in the clear. Trusting GreenMail's self-signed
cert was rejected as the wider risk; see DECISIONS.md.

Verified end to end against the live harness: SMTPProvider.send -> GreenMail ->
ImapMailboxSource, and the documented scan-mailbox CLI. Suite: 52 passed with
the harness down.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 01:41:38 +02:00
86f22c2e65 EMAIL-WP-0005-T01: add Maildir mailbox source
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Adds MaildirMailboxSource reading new/ and cur/, wired through
source.maildir_dir and mailbox.protocol: maildir. Message identity is the
Maildir unique name without its :2,FLAGS suffix, so it survives the new/ to
cur/ move; it is carried on MailboxSourceMessage.dedup_uid and appended to the
message dedup key only when set, leaving fixture and IMAP keys unchanged.

Cursor ordering parses the Maildir delivery time instead of comparing names
lexically. mark_seen and a missing directory are rejected, matching the
read-only IMAP contract.

Also fixes the parse-failure path, which keyed identity on raw_message_ref.
A new/ to cur/ move rewrites that ref, so an unparseable message re-registered
as new on every rescan; it now prefers the source uid when one exists.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 01:31:58 +02:00
9c0d6f1b40 Add EMAIL-WP-0005 test mailbox harness workplan
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Plans a Maildir mailbox source, a containerized SMTP/IMAP test server,
deterministic test-user mailboxes, and end-to-end send-and-scan integration
tests, so automated test environments get mail accounts for test users without
a live provider.

Records the decision to use a purpose-built test server rather than integrating
s/qmail, and keeps bounce/complaint/deferral evidence on fixtures plus an
optional provider simulator tier.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 01:26:25 +02:00
04897a149f Complete EMAIL-WP-0004 transactional invitation mail delivery.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Ship the railiance01 deploy package (OpenBao/ESO custody, NetworkPolicy,
probes), provider failure classification and suppression, T04 unit and live
proof, and non-secret NK-WP-0024 hand-back evidence. Workplan finished.
2026-08-12 13:32:11 +02:00
custodian-sync
5d1c5e1c5c chore(consistency): sync task status from DB [auto]
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Updated by fix-consistency on 2026-08-12:
  - update .custodian-brief.md for email-connect
2026-08-12 13:24:38 +02:00
custodian-sync
f069e32005 chore(consistency): sync task status from DB [auto]
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Updated by fix-consistency on 2026-08-12:
  - update .custodian-brief.md for email-connect
2026-08-12 13:14:15 +02:00
09323f1a72 Refresh transactional mail work records
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 19:37:11 +02:00
98250e5838 Add single-use registration cancellation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 19:27:00 +02:00
752d91cf5c Add single-use registration verification
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-08-10 12:29:55 +02:00
custodian-sync
be5aab1297 chore(consistency): sync task status from DB [auto]
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Updated by fix-consistency on 2026-08-09:
  - update .custodian-brief.md for email-connect
2026-08-09 21:31:32 +02:00
980b9fab44 Implement transactional invitation mail service
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-09 21:28:41 +02:00
custodian-sync
eda3896228 chore(consistency): sync task status from DB [auto]
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Updated by fix-consistency on 2026-08-08:
  - update .custodian-brief.md for email-connect
2026-08-08 23:38:44 +02:00
9d421e6d08 Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Maintainer decision, 2026-07-29: adopts TRSL V1C1 as this repo's
preliminary governing license, per target-revenue's
workplans/TREV-WP-0008-governance-and-pilot-rollout.md T05. Full
specialist legal review is deferred until out of beta (target-revenue
SCOPE.md §1). No Phase is yet declared for this repo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-30 00:05:52 +02:00
ae7d0fbf1c Added decision documentaion
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-10 21:42:19 +02:00
72366cde17 docs: workplan-first agent guidance prose (CUST-WP-0055 T04 batch 5)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-08 19:51:18 +02:00
9fae98c844 Regenerate agent instructions from state-hub templates (CUST-WP-0055 T01)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
Sync AGENTS.md, CLAUDE.md, and .claude/rules from updated project_rules
templates: workplan-first session protocol, legacy terminology footnote,
and GET /workplans/ examples.
2026-07-08 14:50:20 +02:00
f984221852 Add Forgejo CI smoke workflow (enablement template)
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 3s
2026-07-08 12:30:51 +02:00
821289b37a Draft capability entry (reuse-surface REUSE-WP-0017-T04, cohort 1)
Honest first-pass maturity vector grounded in README/docs/tests present
in this repo; no invented evidence. Flagged for human review before
publish. See reuse-surface history/2026-07-06-coverage-classification.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 19:03:42 +02:00
854b8492af Recorded Decisions 2026-07-04 00:37:17 +02:00
7cd7efe956 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-22:
  - update .custodian-brief.md for email-connect
2026-06-22 23:20:53 +02:00
208b4ae4cc Normalize agent instructions and workplan frontmatter (STATE-WP-0067)
- Align agent files with on-disk workplan prefixes (infer from workplan ids)
- Set workplan domain to registered domain_slug; add topic_slug where applicable
- Repair frontmatter delimiter formatting; migrate legacy task status literals
- Regenerate AGENTS.md, CLAUDE.md, and .claude/rules from State Hub templates
2026-06-22 23:16:24 +02:00
bfb1034132 Mark .repo-classification.yaml human-reviewed (CUST-WP-0050 T02)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:40:44 +02:00
55c3a5417d Reclassify as tooling (CUST-WP-0050 T02)
Apply the new 'tooling' category (reusable internal tooling/infrastructure)
from the Repo Classification Standard. First-pass agent classification.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 03:06:02 +02:00
dcda76eff2 Add repo classification (CUST-WP-0050 T02)
First-pass agent classification per the Repo Classification Standard v1.0
(canon-repo-classification); pending human review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 02:44:47 +02:00
5a13a12edf Add credential routing instructions for all agent runtimes
Propagate shared credential-routing section (Codex, Claude, Grok, llm-connect)
from state-hub template via scripts/propagate_credential_routing.py.
2026-06-18 22:48:37 +02:00
334a01d8e3 Add capability registry scaffold (REUSE-WP-0014-T04 B02)
Empty helix_forge registry layout for federation publishing.
2026-06-16 01:52:17 +02:00
b7591f531b feat: add expected recipient reporting 2026-06-02 03:07:13 +02:00
5ea6c738d2 docs: add expected recipient reporting workplan 2026-06-02 02:45:33 +02:00
7a9686f53a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-02:
  - update .custodian-brief.md for email-connect
2026-06-02 02:43:38 +02:00
7ab1f9deb9 feat: finish mailbox evidence scanner mvp 2026-06-02 02:24:39 +02:00
226c045397 feat: expand mailbox evidence scanner 2026-06-02 02:07:50 +02:00
8532583182 feat: start mailbox evidence scanner 2026-06-02 01:19:09 +02:00
8292ffe41d docs: add mailbox evidence scanner workplan 2026-06-02 00:48:01 +02:00
155456424d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-02:
  - update .custodian-brief.md for email-connect
2026-06-02 00:46:07 +02:00
23c6a9aef0 chore: register with state hub 2026-06-02 00:36:01 +02:00
4dbf0b074a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-02:
  - update .custodian-brief.md for email-connect
2026-06-02 00:33:20 +02:00
eca19b3860 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-02:
  - update .custodian-brief.md for email-connect
2026-06-02 00:26:15 +02:00
4e12876749 Seeded repo with intent and PRD 2026-06-01 23:56:07 +02:00
Coulomb Social
62f52c1faa Initial commit 2026-06-01 21:37:38 +00:00