Commit Graph

  • 02cb424d5c brother: emits declared in the module's own list too, parts of 700 KiB at most, a duplicates window on device-asks, and the built binary ignored (issue 1453) jschoubben 2026-10-20 21:37:07 +02:00
  • b430b35633 brother: README for the bucket, the documents in parts, printing and the device process (issue 1453) jschoubben 2026-10-20 21:31:06 +02:00
  • 1d62305001 brother: scanning moves into the device process and its scans are kept in the bucket; scanner.document, printer.upload and printer.print carry documents in parts and print over IPP (issue 1453, ADR 0468) jschoubben 2026-10-20 21:30:51 +02:00
  • d6e88fac17 brother: the module requires an s3-bucket, with mesh-mail's S3 client and store.json read by the device account alone (issue 1453, ADR 0468 clause 2) jschoubben 2026-10-20 21:24:19 +02:00
  • feada9fb14 brother: the admin process becomes the device process, brother-device, with device-asks and device-answers (issue 1453, ADR 0468 clause 1) jschoubben 2026-10-20 21:23:28 +02:00
  • adfb61c053 brother: the admin account, its owned secrets, the process and the printer-asks stream declared as mesh-mail's sender is; an integration test and the README (issue 1453) jschoubben 2026-10-20 21:21:15 +02:00
  • 29107b0d93 brother: the admin process alone reads the admin password and logs in; printer.settings queues an ask and reads its answer (issue 1453) jschoubben 2026-10-20 21:20:16 +02:00
  • 58c0c0682c brother: README for the two seats, the pinned certificate, the admin password and the login (issue 1453) jschoubben 2026-10-20 21:12:56 +02:00
  • 6782816707 brother: the printer seat's status verb, IPP Get-Printer-Attributes by hand and the eSCL state, replayed from captures (issue 1453) jschoubben 2026-10-20 21:12:45 +02:00
  • 34260d8c29 brother: the printer seat's settings verb, read-only through the login, with the page's links and form fields (issue 1453) jschoubben 2026-10-20 21:11:15 +02:00
  • 2b62a1819e brother: the printer config and admin-password secret, HTTPS pinned to one certificate, and the login by the form's own field (issue 1453) jschoubben 2026-10-20 21:10:14 +02:00
  • 78f9731d4a brother: the scanner seat declared and claimed, its verbs scan, status and list; preferences untrusted (issue 1453, 1446) jschoubben 2026-10-20 21:07:00 +02:00
  • 4a892ee29d Move the scan module to brother, ADR 0467 clause 1: the code unchanged in what it does (issue 1453) jschoubben 2026-10-20 21:06:24 +02:00
  • 809dd76973 Merge pull request 'A scan module: scan the glass over eSCL, crop the document, file it as a PDF and announce it (issue 1440, ADR 0464)' (#383) from feat/scan-module into main mesh-tools 2026-10-20 18:23:43 +00:00
  • 0821718d7c issue 1440: the scan module's manifest, settings template and README jschoubben 2026-10-20 20:13:58 +02:00
  • 27709b07e7 issue 1440: scan_now, scan_status and scan_list, and scan.added said after the rename jschoubben 2026-10-20 20:13:02 +02:00
  • ae47a6cc10 issue 1440: file the scan as a one-page PDF, written whole and renamed, and list the filed scans jschoubben 2026-10-20 20:11:39 +02:00
  • 26ae4d2fd8 issue 1440: the plain-lid test's specks lie where counting them would make a box jschoubben 2026-10-20 20:10:29 +02:00
  • cf407f187d issue 1440: crop the document out of the platen's white jschoubben 2026-10-20 20:10:20 +02:00
  • 36a34a49b8 issue 1440: the scan module's eSCL client, settings and image density jschoubben 2026-10-20 20:09:47 +02:00
  • a67f01963f Merge pull request 'mesh-issues stops listening to the removed module's transition, which every controller merge check now refuses (issue 1406)' (#382) from fix/1406-drop-the-old-transition-name into main mesh-tools 2026-10-20 13:28:29 +00:00
  • 56ba1c3837 Hear the gate's transition alone: today's module is forgotten (issue 1406) mesh-tools 2026-10-20 13:02:35 +00:00
  • db32f8ac56 Merge pull request 'Remove today's delivery module now that the gate holds its seat (design 47 R3e, issue 1351, ADR 0454)' (#381) from fix/1351-remove-todays-delivery-module into main mesh-tools 2026-10-20 12:27:48 +00:00
  • 1c7024224d Make the catalogue test strict: the gate alone claims the seat, and say the old module is gone (ADR 0454, issue 1351) mesh-tools 2026-10-20 12:03:46 +00:00
  • 1ef19030f1 Remove today's mesh-delivery module: the gate holds the seat since the handover (ADR 0454, issue 1351) mesh-tools 2026-10-20 12:02:56 +00:00
  • bb0fe93bbd Merge pull request 'The gate takes over today's mesh-delivery: mesh-delivery-gate holds the seat, asks and merges through the parts, and today's module leaves (design 47 R3e, issues 1346-1351)' (#380) from feat/r3e-the-gate into main mesh-tools 2026-10-20 06:49:17 +00:00
  • 1d9c72c476 Compare in the carry bed what the carry copies, not what the gate does after it; keep today's module among mesh-issues' owners mesh-tools 2026-10-20 06:43:26 +00:00
  • 1f193f6d01 Let the catalogue hold the gate and today's module as the two claimants of the seat, and say the removal follows the handover (issue 1351) mesh-tools 2026-10-20 06:43:17 +00:00
  • 41f18b2452 Keep today's module mesh-delivery in the catalogue, unchanged: its removal follows the handover as a pull request of its own mesh-tools 2026-10-20 06:41:48 +00:00
  • cf5c02737b Pin mesh-sdk to main's merge of #47 (88581d0a), the same tree as ba684e54 the review read mesh-tools 2026-10-20 06:32:31 +00:00
  • a3a9b8749d Merge pull request 'Let a commit copy files from another repository on the forge, so a large move reaches the forge from any machine (issue 1365)' (#379) from fix/1365-a-commit-copies-from-a-repository into main mesh-tools 2026-10-20 05:57:00 +00:00
  • 83adc46fe0 Give each asking at unchanged heads its own router id, overwrite the ask instead of taking it away, and announce the answered asking (review round 1, G2; issue 1370) mesh-tools 2026-10-20 01:26:28 +00:00
  • 67fe9a4dbe Pin mesh-sdk at issue 1370's commit and read the phase removed by its name (review round 1) mesh-tools 2026-10-20 01:25:52 +00:00
  • 1a985d68fd Test that the carry copies a group, a pull key and an unasked delivery byte for byte (review round 1) mesh-tools 2026-10-20 01:20:37 +00:00
  • 68117bd74d Hold the seat only when no assignment stands, every have key says removed and both watches are current; fix the two bed tests that failed the try (review round 1, G1) mesh-tools 2026-10-20 01:20:09 +00:00
  • dc3a177410 Let a commit copy files from another forge repository, so a large move is not typed through the caller mesh-tools 2026-10-20 01:07:28 +00:00
  • 3b03c220ad Check that the catalogue holds no module mesh-delivery but through the names its handover needs, and say how the seat passes (issue 1351) mesh-tools 2026-10-20 00:59:36 +00:00
  • d16fa1e052 Hear the gate's transitions beside today's delivery module's in mesh-issues, and name the gate among the owners (issue 1350) mesh-tools 2026-10-20 00:58:01 +00:00
  • 6a39da5485 Owe the forge its statuses, views, notes and comments as keys, read the plan from plans as data, and call an empty check answer an error (issue 1349) mesh-tools 2026-10-20 00:52:42 +00:00
  • beafa55d97 Ask the Approve through the gate's asks, hand merges to the bridge one member at a time, and move source.main once a group is merged (issue 1348) mesh-tools 2026-10-20 00:45:02 +00:00
  • dd462a80e2 Keep the gate silent until it holds the seat, and carry today's state over once when it first does (issue 1347) mesh-tools 2026-10-20 00:29:19 +00:00
  • a390bb40f8 Take a stray key out of the gate's reads (issue 1346) mesh-tools 2026-10-20 00:19:29 +00:00
  • 09f0b0d5ab Move the delivery module to the gate: mesh-delivery-gate claims the seat with its own buckets and reads (issue 1346) mesh-tools 2026-10-20 00:19:19 +00:00
  • c0880c4dc2 Merge pull request 'Read the grant file on keycloak's moved path, so a consumer not moved gets its client (issue 1332)' (#378) from fix/1332-keycloak-reads-the-grant-file into main mesh-tools 2026-10-19 22:46:05 +00:00
  • b9104454f9 Read the grant file on keycloak's moved path, so a consumer not moved is still made (issue 1332) jochen 2026-10-20 00:30:45 +02:00
  • 73a10fafc7 Pull keycloak's moved-path harness into movedHarness, and test it reads the grant file (issue 1332) jochen 2026-10-20 00:30:10 +02:00
  • 954f84ea19 Merge pull request 'The mail web client: mesh-mail-web, and mesh-mail's views for it (design 59 milestone 1)' (#377) from feat/mail-webclient into main mesh-tools 2026-10-19 21:27:33 +00:00
  • 9f3a8ee391 Follow real links instead of building them, and check the CSP on every answer (issue 1268) jochen 2026-10-19 23:18:53 +02:00
  • cad6194447 Keep the HTTP endpoint's own state, so status and health stop claiming to serve once it has failed (issue 1283) jochen 2026-10-19 23:18:51 +02:00
  • 3fd1b47fe7 Bounce once through this origin before sign-in, so a Strict cookie is not lost crossing from Keycloak or another site (issue 1263) jochen 2026-10-19 23:18:48 +02:00
  • 5b57422523 Report an unknown ask through a small interface, not *testing.T directly (issue 1285) jochen 2026-10-19 22:53:18 +02:00
  • 523d7846cd Fix mesh-mail-web's manifest: operators is type list, the listen word names its port number (issue 1262) jochen 2026-10-19 22:47:56 +02:00
  • 502cda34cb Add design 59 milestone 1's acceptance tests on the runtime player (issue 1268) jochen 2026-10-19 22:42:27 +02:00
  • c996121e9d Add the runtime player and stand-in mail-store for a bundle's integration test (issue 1285) jochen 2026-10-19 22:38:36 +02:00
  • f863e852c9 Add the write page and a send's state, behind issue 1284's form token (issue 1267) jochen 2026-10-19 22:29:41 +02:00
  • 58b337770d Show a mail as escaped text and serve its attachments as downloads (issue 1266) jochen 2026-10-19 22:26:47 +02:00
  • ff1886ac62 Add the search page, by mail-store.search's own argument names (issue 1265) jochen 2026-10-19 22:24:52 +02:00
  • 28fdbbd346 Show every granted account, its state and its folders' counts (issue 1264) jochen 2026-10-19 22:22:52 +02:00
  • 3ee80c98ab Bind every changing form's token to its session (issue 1284) jochen 2026-10-19 22:18:03 +02:00
  • 8e0ef84060 Sign in through Keycloak: code flow with PKCE, verified ID token, 12-hour session (issue 1263) jochen 2026-10-19 22:16:15 +02:00
  • 68c141849f Serve mesh-mail-web's HTTP endpoint: internal host check, CSP, open (issue 1283) jochen 2026-10-19 22:09:49 +02:00
  • a9ad306693 Add the module mesh-mail-web, with its status verb (issue 1262) jochen 2026-10-19 22:07:36 +02:00
  • a3e9985c15 Keep each account's newest mails in a bucket, bounded past 81 accounts (issue 1282) jochen 2026-10-19 21:56:04 +02:00
  • 08200bc178 Keep each account's state in a bucket (issue 1255) jochen 2026-10-19 21:50:12 +02:00
  • a9ff48e200 Answer a send's state only to its caller (issue 1261) jochen 2026-10-19 21:44:12 +02:00
  • 66aa204f67 Merge pull request 'Say a group member refused only because main moved a warning for ten minutes, urgent after (issue 1275 AC6, ADR 0442)' (#376) from fix/1275-ac6-out-of-date-warning into main mesh-tools 2026-10-19 18:58:21 +00:00
  • a76910a0c0 Say only the merge tool's two out of date refusals a warning, and never step a severity down (issue 1275, ADR 0442's cases) jschoubben 2026-10-19 20:51:31 +02:00
  • dc86203d29 Say a refusal for an out of date verdict a warning for ten minutes, urgent after (issue 1275, operator's amendment, AC6) jschoubben 2026-10-19 20:46:46 +02:00
  • d8ee728ad6 Say a refusal for an out of date verdict a warning for ten minutes, urgent after (issue 1275, operator's amendment, AC6) fix/1275-group-merges-whole-or-not jschoubben 2026-10-19 20:46:46 +02:00
  • 9efdd87a73 Merge pull request 'Merge a group whole or not at all, and say loudly when it cannot (issues 1275, 1276)' (#375) from fix/1275-group-merges-whole-or-not into main mesh-tools 2026-10-19 18:45:31 +00:00
  • 301cd2287f Answer gitea_commit_statuses in the bus test's runtime, and say a held, refused member once (issue 1275, review round 1) jschoubben 2026-10-19 20:38:48 +02:00
  • 524e3405e5 Ask a group's Approve only when every member may merge, and withdraw the ask when a required status turns (issue 1275) jschoubben 2026-10-19 20:32:22 +02:00
  • 6e6d1f3e47 Merge a group whole or not at all: re-read every required status first, stop at the first refusal, say a held or half merged group urgent (issue 1275, 1276) jschoubben 2026-10-19 20:32:15 +02:00
  • eda55ceb9e Merge pull request 'Give the forge bridge a merge commit's trees in one call, and each open pull request's head branch (design 47 R3c, issue 1234)' (#374) from feat/delivery-parts into main mesh-tools 2026-10-19 18:22:09 +00:00
  • e8c3448797 Merge pull request 'Answer each gmail mail once when no folder is named, keeping archived mail (issue 1248)' (#373) from fix/1248-gmail-mail-once into main mesh-tools 2026-10-19 13:39:15 +00:00
  • 5c1ff4bb15 mesh-mail: dedup-archive picks the same copy in both stores when a message-id also sits in a second non-archive folder (issue 1248, review round 1 finding 1) jochen 2026-10-19 15:33:36 +02:00
  • 280aeb2f47 Answer each gmail mail once when no folder is named, keeping archived mail (issue 1248) jochen 2026-10-19 15:30:44 +02:00
  • b767aac8e0 Merge pull request 'mail_search answers the operator's questions: optional words, filters by sender, recipient, cc, date, words, attachment, flags, thread and correspondents, ordered and grouped (issues 1228-1232)' (#372) from feat/mail-search into main mesh-tools 2026-10-19 13:17:13 +00:00
  • 920199862e mesh-mail: group-by-sender and order-by sender compare addresses case-insensitively in Postgres too, and a sender's shown name and address are its newest mail's, deterministically (issue 1230, review finding 6) jochen 2026-10-19 15:09:44 +02:00
  • 8dd2a42448 mesh-mail: mail_search's order defaults to descending when left out, matching its own schema text, and AC1's no-filter test proves ordering, limit and grant isolation together (issue 1232, review findings 5 and 7) jochen 2026-10-19 15:05:23 +02:00
  • d1a9056a1c mesh-mail: mail_search gains words/words-any, a word found in subject or body, since subject-words and body-words together only ever meant and (issue 1229, review finding 3; also proves AC9's type-or-name independently and AC2+unread combined) jochen 2026-10-19 15:02:40 +02:00
  • a3476a7bf2 mesh-mail: from-someone-i-wrote-to recognises gmail's Sent folder name too, and stays scoped to one account (issue 1231, review findings 1 and 2) jochen 2026-10-19 14:57:26 +02:00
  • 1c3158e098 mesh-mail: mail_search's address filter never treats % or _ as a wildcard, so a literal domain filter does not leak every mail in Postgres (issue 1228, review finding 4) jochen 2026-10-19 14:52:36 +02:00
  • 75957fc3c0 Hash the root tree from the root's entries, since the forge names the commit (issue 1234) jschoubben 2026-10-19 14:52:29 +02:00
  • ea83746297 Give the forge bridge a merge commit's trees in one call, and a pull request's head branch (issue 1234) jschoubben 2026-10-19 14:50:19 +02:00
  • b60ee706d4 mesh-mail: mail_search's tool makes the query optional and offers every filter and order-by (one schema for mail_search and mail-store.search), validated before the index is ever asked (issue 1232) jochen 2026-10-19 14:46:58 +02:00
  • 4a60deb4a8 mesh-mail: mail_search finds a thread's replies and mail from someone the operator wrote to, so a reply or a known correspondent's junk mail can be found (issue 1231) jochen 2026-10-19 14:39:59 +02:00
  • fc10031d22 mesh-mail: mail_search orders by date, sender, subject or size and groups by sender, so the newest, the largest or who writes most can be answered (issue 1230) jochen 2026-10-19 14:36:53 +02:00
  • 2985122856 mesh-mail: mail_search's Query gains subject/body words, attachment type/name and read/unread, so a word in one field, an attachment or a flag can filter mails (issue 1229) jochen 2026-10-19 14:29:15 +02:00
  • 20342f2172 mesh-mail: mail_search's Query gains from, to, cc and a date range, so a sender, a recipient or a date can filter mails without query words (issue 1228) jochen 2026-10-19 14:22:14 +02:00
  • 7bb588ca1b Merge pull request 'mesh-mail sends an approved mail from its own sender process, and tells a failed send once (ADR 0436, ADR 0438; issues 1172, 1193-1199)' (#371) from feat/mail-sender into main mesh-tools 2026-10-19 11:36:51 +00:00
  • a2c0c58677 mesh-mail: a redelivery of a message whose send already finished (sent, failed, refused or not proven) is a repeat, terminated without recording, emitting or telling anything again (operator-approved change to ADR 0436 clause 10; issue 1196) jochen 2026-10-19 13:29:31 +02:00
  • c441d83ba7 Merge pull request 'Keep two values of each issue in the tracker's bucket, since the log holds them all (issue 1221)' (#370) from fix/1221-tracker-keeps-two-copies into main mesh-tools 2026-10-19 11:08:47 +00:00
  • e601e88e95 Keep two values of each issue in the tracker's bucket, since the log holds them all (issue 1221) jschoubben 2026-10-19 12:38:55 +02:00
  • fb8e677cd8 Merge pull request 'The router takes a module's condition on the operator channel's one subject (design 47 R3b: issues 1217, 1218)' (#369) from feat/delivery-seat-by-claim into main mesh-tools 2026-10-19 10:28:28 +00:00
  • 5aca005cb7 Shorten the router's burst window in the test bundle so the desk is sent within seconds (issue 1218, check finding 1) jschoubben 2026-10-19 12:15:47 +02:00
  • 9f9e9fc9d3 Shorten the router's start grace in the test bundle so the bus tests stay in seconds (issue 1218, review round 1 finding 2) jschoubben 2026-10-19 12:05:07 +02:00
  • f737418bb3 Keep a module's condition open when the controller's conditions are read (issue 1217, review round 1 finding 1) jschoubben 2026-10-19 12:04:58 +02:00
  • 5b235a6e80 Prove over the bus that a condition on the one subject reaches the desk (issue 1218) jschoubben 2026-10-19 11:59:49 +02:00
  • de6741a335 Take a module's condition on the operator channel's one subject (issue 1217) jschoubben 2026-10-19 11:58:10 +02:00