dd8305d97d
mesh-mail: the refused-sign-in acceptance test's wait excluded queued too, so it returned done on the very first look before the sender ever claimed anything (issue 1198)
jochen2026-10-19 11:10:36 +02:00
06dfce87f5
mesh-mail: decide kept by settleSend's own returned revision, not its error, so a changed revision is actually retried instead of silently accepted as another writer's state; emit mail.send.failed from claimQueuedSend only once its own write lands (review round 2; issue 1198)
jochen2026-10-19 11:07:24 +02:00
7db4bd215d
mesh-mail: fix the work-queue stream's real bus name (MAIL_SENDS, not MAIL-SENDS) and build the integration tests' stream, subject and duplicate window exactly as the controller composes them, exercising the send id's dedup (review round 1 finding 7; issue 1198)
jochen2026-10-19 10:57:45 +02:00
1639269ad4
mesh-mail: on Approve the tools record the send queued directly, with no separate approved state, then publish; a stuck queued record is republished by the sweep past a short grace, never NakWithDelay'd by the sender (ADR 0436 clause 8, decided to replace the review round 1 item 2 work-around; issues 1194, 1196, 1199)
jochen2026-10-19 10:53:32 +02:00
7397051771
mesh-mail: tighten tests that proved less than their criterion — attempt 5 and no mail received (1198/AC4), mail_health actually turning unhealthy (1199/AC2), and the words mail_send_status gives, not only its status (1199/AC4) (review round 1 finding 6)
jochen2026-10-19 10:53:12 +02:00
95089762ef
mesh-mail: retry the outcome's own write on a changed revision, and never ack or emit an outcome that could not be kept (review round 1 finding 5; issue 1198)
jochen2026-10-19 10:43:45 +02:00
ce3b12f349
mesh-mail: emit mail.send.failed when the sender's own claim refuses or finds a send already sending, same as a failed send after it (review round 1 finding 4; issue 1198)
jochen2026-10-19 10:40:41 +02:00
acb82992ee
mesh-mail: index a send for a tell or mail_health's overdue check before its record carries the outcome, drop the old index entry only after, and report an index write that fails instead of dropping it silently (review round 1 finding 3; issues 1194, 1199)
jochen2026-10-19 10:38:07 +02:00
0a7669b48f
mesh-mail: a send still approved (the tools' own publish-then-record race) is redelivered later, never refused or told (review round 1 finding 2; issue 1196)
jochen2026-10-19 10:31:39 +02:00
f140099a75
mesh-mail: declare the sender's own secret broker-send, so the controller can issue its account (review round 1 finding 1; issue 1172)
jochen2026-10-19 10:29:48 +02:00
f3a59ee63a
mesh-mail: tell the operator once for a failed approved send and once more if its sender has not taken it, make an overdue send unhealthy, and give mail_send_status its full vocabulary (ADR 0436 clauses 11, 12; issue 1199)
jochen2026-10-19 10:22:27 +02:00
33a97e6d13
mesh-mail: the sender records a send's outcome, retries a not-taken failure and emits mail.send.sent or mail.send.failed, acknowledging only once it is kept (ADR 0436 clauses 10, 11; issue 1198)
jochen2026-10-19 10:11:41 +02:00
e7dce9616c
mesh-mail: classify an SMTP send's outcome (not taken, refused, not proven), and carry the send id in the Message-ID (ADR 0436 clause 10; issue 1197)
jochen2026-10-19 10:03:44 +02:00
1ccb617a86
mesh-mail: the sender verifies the operator's warrant again from the router's own record and claims a send once before any connection (ADR 0436 clauses 9, 10; issue 1196)
jochen2026-10-19 09:57:07 +02:00
dd3ed68483
mesh-mail: a send process that connects on its own bus account and consumes the mail-sends queue, stopping cleanly on a signal (ADR 0436 clause 7; issue 1195)
jochen2026-10-19 09:49:24 +02:00
428b42181d
mesh-mail: on the operator's Approve the tools record approved and queue the send for the sender, instead of sending it themselves (ADR 0436 clause 8; issue 1194)
jochen2026-10-19 09:44:42 +02:00
59c0906c79
mesh-mail: move password reading out of the tools' reach into its own package, so only keep and the send actor import it (ADR 0436 clause 12; issue 1193)
jochen2026-10-19 09:32:54 +02:00
75a9a45c6f
mesh-mail: pin mesh-sdk go to release 2, declare the sender account, bus process and work-queue stream (ADR 0436 clauses 7, 8; issue 1172)
jochen2026-10-19 09:23:45 +02:00
b4527d9091
Merge pull request 'Ask a refused merge again when its checks turn green on the forge (issue 1144)' (#368) from fix/1144-merge-asked-again-on-green-status into main
mesh-tools2026-10-18 22:05:45 +00:00
a32b7af3fd
Ask a refused merge again when its checks turn green on the forge (issue 1144)
jochen2026-10-18 23:50:25 +02:00
a6295d6b98
Merge pull request 'Write a provisioner client's files only on a change over the bus, never on a timer (issue 1129, ADR 0430)' (#366) from fix/1129-no-drift-pass into main
mesh-tools2026-10-18 16:56:32 +00:00
afb94d925e
Merge pull request 'Register the repository mesh-delivery as an owner, so its issues can be located in it (issue 1133)' (#367) from fix/1133-mesh-delivery-owner into main
mesh-tools2026-10-18 16:52:06 +00:00
26d81b09b5
Register the repository mesh-delivery as an owner, so its issues can be located in it (issue 1133)
jschoubben2026-10-18 18:39:11 +02:00
72ad5ad138
Merge pull request 'A repository the gitea module makes refuses an administrator's merge past its checks (issue 1141)' (#365) from fix/1141-admin-override into main
mesh-tools2026-10-18 16:24:56 +00:00
54db38be08
gitea: a repository the module makes refuses an administrator's merge past its checks (issue 1141)
jschoubben2026-10-18 18:10:29 +02:00
e7ff7c3045
Write a provisioner client's files only on a change over the bus, never on a timer (issue 1129, ADR 0349 clause 4)
fix/1129-no-drift-pass
jochen2026-10-18 18:08:50 +02:00
4301da630d
Merge pull request 'gitea fills repositories.json through the provisioner client, so an approved repositories value lands at once (issue 1128)' (#364) from fix/1128-repositories-template into main
mesh-tools2026-10-18 16:03:58 +00:00
e75e793a4b
gitea: fill repositories.json through the provisioner client, so an approved value lands at once (issue 1128)
jschoubben2026-10-18 17:40:47 +02:00
cfb90d7b2f
Merge pull request 'The gitea module makes the organisation's repositories from its config, protected before any team reaches them; no tool creates in the organisation (issue 1124, ADR 0428)' (#363) from fix/1124-repositories-config into main
mesh-tools2026-10-18 15:05:04 +00:00
11761637cf
Put main's rule right again once a new repository is in the organisation: the forge drops a merger without access, and under the setup account the tools' account has none (issue 1124, ADR 0428 §3, review round 1)
jschoubben2026-10-18 16:58:17 +02:00
8c587d0f00
Let the repositories pass's failed exit be its gate: a run-once step the node-engine runs again until it passes, its stderr naming each refused repository, step and forge answer, instead of a health check of its own (issue 1124, ADR 0428 §6)
jschoubben2026-10-18 16:52:29 +02:00
df275b3c6e
Make the organisation's repositories from the gitea module's config value, protected under the setup account before they join the organisation, and take the owner argument from gitea_create_repo, since a repository's maker becomes its administrator (issue 1124, ADR 0428)
jschoubben2026-10-18 16:49:12 +02:00
94b49a296f
Test that the gitea module makes the organisation's repositories from its config, protected before any team reaches them, and that no tool creates in the organisation (issue 1124, ADR 0428)
jschoubben2026-10-18 16:45:49 +02:00
e47d0694c7
Merge pull request 'gitea_create_repo creates a repository in an organisation, saying the forge's refusal (issue 1124)' (#362) from fix/1124-create-repo-in-org into main
mesh-tools2026-10-18 13:50:31 +00:00
0d3f0fd3fc
Let gitea_create_repo create in an organisation, saying the forge's refusal, so novox repositories can be made through the tools (issue 1124)
jschoubben2026-10-18 15:45:01 +02:00
50fee22d0a
Test that gitea_create_repo creates in an organisation and says the forge's refusal (issue 1124)
jschoubben2026-10-18 15:44:38 +02:00
7f77ce663a
Merge pull request 'mesh-delivery waits for nothing: a check is asked at once and a standing verdict adopted (issue 1115)' (#361) from fix/zero-delay into main
mesh-tools2026-10-18 10:38:05 +00:00
6954467292
mesh-delivery bus test waits for the group's composed check, not a member's own check asked at once (issue 1115)
jschoubben2026-10-18 12:33:02 +02:00
5f002441b7
mesh-delivery takes an empty answer to a check ask as a refusal (issue 1115)
jschoubben2026-10-18 12:28:03 +02:00
fc9ddd9185
mesh-delivery adopts a standing verdict only when every required check stands, at every look, and counts an ask with no id as none (issue 1115)
jschoubben2026-10-18 12:25:53 +02:00
1760b94824
mesh-delivery waits for nothing: a check is asked at once and a standing verdict adopted (issue 1115)
jschoubben2026-10-18 12:22:31 +02:00
580fadb63e
Merge pull request 'A pull request at the same head as one closed unmerged takes its delivery over (issue 1114)' (#360) from fix/takeover-on-close into main
mesh-tools2026-10-18 09:59:02 +00:00
30d3bb9466
A pull request announced at a live head takes its delivery over when the other one closes or is edited (issue 1114)
jschoubben2026-10-18 11:53:28 +02:00
e40ec47058
Merge pull request 'mesh-delivery hears a pull request closed unmerged from the forge's own event (issue 1107)' (#359) from fix/close-heard-from-forge-event into main
mesh-tools2026-10-18 09:00:18 +00:00
bc1acddaa4
mesh-delivery hears the forge's own pull-request closed event as a close unmerged (issue 1107)
jschoubben2026-10-18 04:55:48 +02:00
798d6fd685
Merge pull request 'A group member refused for its own pending repo-check is asked its own check, not the composed one (issue 1049)' (#358) from fix/1049-own-check-on-refusal into main
mesh-tools2026-10-18 02:41:25 +00:00
b0ec4f6f14
A group member refused for a pending status of its own asks its own check once, not the composed check (issue 1049)
jschoubben2026-10-18 04:27:42 +02:00
d3dd46a9fd
Merge pull request 'Readers of the assignments skip an ended or pending one (design 47 milestone 5, issue 1098)' (#357) from feat/chain-on-the-bus into main
mesh-tools2026-10-18 02:04:16 +00:00
3bc4215d87
Take the bus's backup guard out of modules/nats: it would move the bus (issue 1098, guard follows in issue 1104)
jschoubben2026-10-18 03:55:47 +02:00
68e3326d4c
Providers and the provisioner client take the SDK that reads an ended assignment as a removed key (issue 1098)
jschoubben2026-10-18 02:40:18 +02:00
84af0ed180
Guard that the bus storage stays declared as data with a backup (issue 1098)
jschoubben2026-10-18 02:37:28 +02:00
9edd16eaeb
mesh-provisioner-client takes a module off the node when its assignment is ended (issue 1098)
jschoubben2026-10-18 02:37:28 +02:00
60a3823f0e
mesh-vault reads an ended assignment as a removed key (issue 1098)
jschoubben2026-10-18 02:37:28 +02:00
bdbca4b921
mesh-config drops an ended assignment as a removed one (issue 1098)
jschoubben2026-10-18 02:37:28 +02:00
44e7002d3c
Merge pull request 'A group approved together merges in one pass and goes out in one delivery plan (design 47 milestone 3 fix: issues 1049, 1082, 1047, 1083, 1079)' (#356) from feat/group-one-pass into main
mesh-tools2026-10-17 23:44:21 +00:00
7383bc3170
A stale composed pass counts members judged since it was asked, whichever verdict lands first (issue 1047, review round 2)
jschoubben2026-10-18 01:20:18 +02:00
ebd29223f3
Prove over a real bus that an edit of the description asks the Approve again (issue 1079, review round 1)
jschoubben2026-10-18 01:18:43 +02:00
e8a74765f8
A composed check that lands judged against a trunk that has moved is out of date and asked again (issue 1047, review round 1)
jschoubben2026-10-18 01:18:13 +02:00
6556e61485
Read a pull request's review record again when its description is edited, and ask the Approve again if it was unanswered (issue 1079)
jschoubben2026-10-18 01:12:40 +02:00
93365be98f
A new pull request at a commit whose delivery was stopped and unmerged takes that delivery over (issue 1083)
jschoubben2026-10-18 01:10:51 +02:00
814c1a991c
A trunk move asks at once the check of a group member whose Approve is not asked yet (issue 1047)
jschoubben2026-10-18 01:10:12 +02:00
983e4a6444
A closed group's member whose merge was refused asks the composed check again at once, and a refusal loop past ten minutes is said (issue 1082)
jschoubben2026-10-18 01:09:37 +02:00
da094008ea
A group's composed verdict names each member's siblings at the heads it composed, so a sibling's own merge is no move (issue 1049)
jschoubben2026-10-18 01:08:26 +02:00
0c56f60305
Merge pull request 'Let a proposed record be withdrawn (issue 1081)' (#355) from fix/1081-withdraw into main
mesh-tools2026-10-17 22:15:25 +00:00
684e8801c4
Take the ask back on the router when withdrawing a record (issue 1081, review round 1)
jochen2026-10-18 00:09:16 +02:00
6394a62a02
Merge remote-tracking branch 'origin/main' into fix/1081-withdraw
jochen2026-10-18 00:03:16 +02:00
ddf7a5ab09
Let a proposed record be withdrawn (issue 1081)
jochen2026-10-18 00:02:48 +02:00
3395af96bc
Merge pull request 'mesh-delivery holds a delivery whose backup failed and release asks again; restic records a backup that cannot start (issues 1067, 1068)' (#353) from feat/backup-before-send into main
mesh-tools2026-10-17 21:48:51 +00:00
4d03755c65
Bring the branch up to main after #354 (issue 1047: the trunk move asked no check)
jschoubben2026-10-17 23:43:21 +02:00
ad80048c22
Merge pull request 'Tools to read the knowledge base and the issue tracker in fewer, smaller calls (issues 1064, 1069, 1070, 1071)' (#354) from feat/kb-tracker-tools into main
mesh-tools2026-10-17 21:34:20 +00:00
bf3b3a5e36
Review round 1: list's pending ignores an ask that has ended, and its before cursor never cuts a page between a decision and research effort of the same number (issue 1064)
jochen2026-10-17 23:09:46 +02:00
7bdb8f4782
Review round 1: list numbers combines search and before as AND, its limit defaults to the count asked and said names a cut; README names brief, numbers and worker (issues 1070, 1071)
jochen2026-10-17 23:07:29 +02:00
b387cddc7c
Let the knowledge base answer its whole-set findings, whole or by record (issue 1069)
jochen2026-10-17 23:01:22 +02:00
1cfbcf8e30
Let the knowledge base list its records by kind, status, topic or a flag (issue 1064)
jochen2026-10-17 22:59:09 +02:00
c898a937a1
Order the events of the failed-backup bus test: each after the module took the one before (issue 1068)
jschoubben2026-10-17 22:57:44 +02:00
82693a441c
A release the controller refuses to take leaves the delivery held for its failed backup (issue 1068)
jschoubben2026-10-17 22:53:43 +02:00
1124f17912
Let issue-tracker.list take numbers and worker (issue 1070)
jochen2026-10-17 22:50:09 +02:00
4799f79242
Read the plan's backups as the controller says them: machine, module, state, words (issue 1068)
jschoubben2026-10-17 22:45:46 +02:00
01c9ab0cf5
Let issue-tracker.get answer briefly, with only its last note (issue 1071)
jochen2026-10-17 22:45:42 +02:00
8f7aeeeb81
Hold a delivering delivery for a failed backup before the send; release asks the backups again (issue 1068)
jschoubben2026-10-17 22:45:03 +02:00
914099774e
Record a backup that cannot start as the module's last night (issue 1067)
jschoubben2026-10-17 22:42:21 +02:00
f076cadece
Merge pull request 'No ready mark: the Approve is asked once the checks pass, and a group merges in one pass on its one Approve (issues 1022, 978)' (#352) from feat/one-group-one-plan into main
mesh-tools2026-10-17 20:11:06 +00:00
0771797431
Merge remote-tracking branch 'origin/main' into feat/one-group-one-plan
jschoubben2026-10-17 21:40:08 +02:00
f69f84b9e5
Merge pull request 'Run the integration-tagged tests in the merge check, before any test carries the tag (issue 895)' (#351) from fix/895-catalog-script-first into main
mesh-tools2026-10-17 19:38:15 +00:00
47e42806ff
Leave a composed member's gate to the group's verdict, reword the mark leftovers, restore main's merge-check.sh (issues 1022, 978)
jschoubben2026-10-17 21:33:03 +02:00
86d5706182
Run the integration-tagged tests in the merge check, before any test carries the tag (issue 895)
jschoubben2026-10-17 21:32:23 +02:00
2d3b61ec45
Merge a group in one pass on its one Approve, with no order and no turns (issue 978)
jschoubben2026-10-17 20:54:16 +02:00
668444785d
Ask the Approve as soon as the checks pass, with no ready mark (issue 1022)
jschoubben2026-10-17 20:44:54 +02:00
5e7567e5a0
Merge pull request 'Every directory says how it treats files it does not know, and the catalogue checks it (issue 1024)' (#349) from feat/owned-paths into main
mesh-tools2026-10-17 18:14:12 +00:00
7104df6fa2
Take in main's move of build-agent and route-proxy to mesh-controller (issue 1024)
mesh-tools2026-10-17 17:55:07 +00:00
5e6f5b8f6d
Merge pull request 'build-agent and route-proxy leave for mesh-controller (issue 1019, ADR 0420)' (#350) from feat/whole-modules into main
mesh-tools2026-10-17 17:44:16 +00:00
629aafdea2
Check again after the group's delivery stopped (issue 1019)
jschoubben2026-10-17 19:36:31 +02:00
795806efa7
Declare the group's order: after novox/mesh-controller (issue 1019)
jschoubben2026-10-17 18:43:08 +02:00
652b00b25b
Say on every directory how it treats files it does not know, and check it (issue 1024, ADR 0422)
mesh-tools2026-10-17 16:23:03 +00:00
c47d949258
Repoint the build-agent and route-proxy owners to mesh-controller (issue 1019)
jschoubben2026-10-17 18:16:28 +02:00
4c6e0b625e
Build-agent and route-proxy leave for mesh-controller (issue 1019)
jschoubben2026-10-17 18:16:10 +02:00
54b3ce503e
Merge pull request 'mesh-delivery announces each merge with the Approve it merged on (issue 1025, ADR 0420)' (#348) from feat/move-a-module into main
mesh-tools2026-10-17 16:00:29 +00:00
40eed3a036
Merge remote-tracking branch 'origin/main' into feat/move-a-module
jschoubben2026-10-17 17:19:44 +02:00
0d2fc5e4d7
Merge pull request 'ssh-client's sweep keeps what ssh reads itself and linked key folders, and fails loudly (issue 1020, ADR 0417)' (#347) from fix/1020-sweep-edges into main
mesh-tools2026-10-17 15:13:46 +00:00
3ec2881a27
issue 1025: the merged announcement is an owed effect, and a group's merge is tested
jschoubben2026-10-17 15:41:43 +02:00