Commit graph

27 commits

Author SHA1 Message Date
randogoth
687ff8b521 chore: release 0.1.1 2026-10-15 09:19:51 +03:00
randogoth
16dafcd388 fix: deliver an accept token once, not on every message
send attached the token to every message addressed to an accepted
correspondent, so a secret rode in the body of ordinary mail indefinitely.
sec 5.8 says the owner delivers each token to its correspondent; it does not
say every message carries one.

Harmless between people, and fatal for any recipient that republishes what it
receives: a published record is verified by rebuilding the exact bytes the
author signed, and those cannot include a token without disclosing it. An
author who accepted such a service could never post to it again — and
accepting a correspondent is the behaviour the rest of the system teaches.

Schema 3 adds `delivered`, set only once the recipient's server has taken the
message, so a failed send leaves the token still owing. Not cleared by block:
the token is a pure function of the master and the identity frozen at
acceptance, so they keep the value either way and re-accepting hands back the
same one.

Existing rows migrate as still owing rather than delivered. One more message
carries the token, which is what every message did before, so nothing that
works today can break; assuming delivery would instead strand anyone accepted
but never written to.
2026-10-14 22:32:21 +03:00
randogoth
8872ec6c98 style: format core with rustfmt 2026-09-30 21:54:01 +03:00
randogoth
447be4b38d fix: bound the TCP connect with the client timeout 2026-09-30 21:46:41 +03:00
randogoth
1468f3cbc0 feat: SRV discovery (_smolmail._tcp) and port-scoped trust syntax in the CLI 2026-09-30 13:58:37 +03:00
randogoth
13c624f2b0 feat: scope server pins by port, default port inherits (agreed with bunshin) 2026-09-30 13:49:07 +03:00
randogoth
96a558da16 flake badge 2026-09-29 20:48:08 +03:00
randogoth
445d83db70 docs: add AI-DECLARATION.md and update README badge to copilot
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-29 20:29:37 +03:00
randogoth
2d65d66012 fix: seal the sent copy to the sender, not the recipient (sec 5.6) 2026-09-29 13:04:08 +03:00
randogoth
7f3e30655f docs: restore connect's session doc from the account_with_dial insertion 2026-09-29 13:03:32 +03:00
randogoth
28f13641a3 feat: dial hints on the account-bound operations for self-resolving hosts 2026-09-29 12:48:40 +03:00
randogoth
5559fcce31 feat: dial hint on Address for hosts that resolve DNS themselves 2026-09-29 12:46:58 +03:00
randogoth
45987fe03d test: pin accepted_state's contract — main tier, blocked, never accepted 2026-09-29 11:58:00 +03:00
randogoth
1c4011325f feat: read a contact's acceptance state 2026-09-29 11:08:05 +03:00
randogoth
4ef0fdaec0 feat: unpin a server back to trust on first use 2026-09-29 11:07:06 +03:00
randogoth
1ae2752eb0 feat: local delete with seen marking for reader-side removal 2026-09-29 11:00:31 +03:00
randogoth
234b75651f fix: join the RNS loop thread before exit and keep the response slot per-request 2026-09-29 10:20:41 +03:00
randogoth
39c4c4d6a5 fix: deletable self-sent mail, honest refused-handshake reporting, registration remedy 2026-09-29 09:52:48 +03:00
randogoth
4a780ed648 feat: gsmol-compatible backup export and import behind the store feature 2026-09-29 00:23:04 +03:00
randogoth
96d2412370 feat: schema v2 with the kept column and contact history, migrated at open 2026-09-29 00:16:54 +03:00
randogoth
21931c38d4 feat: check fetch cancellation before each envelope 2026-09-29 00:08:03 +03:00
randogoth
aa3950bc80 feat: gate the store behind a feature and document the schema as a contract 2026-09-28 23:41:11 +03:00
randogoth
8fb5661b53 refactor: split the library into fumi-core and make it embeddable 2026-09-28 23:21:08 +03:00
randogoth
d3cd0afb4f chore: add Apache-2.0 license and third-party notices 2026-09-28 22:51:51 +03:00
randogoth
22fe9f1b9f feat: implement Phase 2 RNS carrier 2026-09-28 17:52:55 +03:00
randogoth
37df976fde feat: implement Phase 1 TCP client 2026-09-28 16:37:22 +03:00
randogoth
1690aed3dc feat: add fumi client implementation plan for Smol Mail 1.2
Add comprehensive plan for Rust client implementation including:
- TCP transport (v1.1) support
- RNS transport (v1.2) support via FFI with microReticulum
- Architecture with transport abstraction
- Module structure and dependencies
- CLI command design
- Testing strategy
- Implementation priority

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-28 11:21:58 +03:00