A commit has no order, so the mesh says who runs what and claims no newer #153

Merged
jschoubben merged 1 commits from fix/087-a-commit-has-no-order into main 2026-09-30 07:29:48 +00:00
Owner

What I shipped this morning said the opposite of the truth, and the live mesh proved it within the hour.

It reported "N machine(s) run an older host than another machine does" by comparing versions as strings. A host reports its version as a commit, and commits have no order. With the adopted machine pushed for the first time, it named the three machines running the newer host (installed 09:18) as the ones behind the older one (01:13) — because ced54d4 sorts above 04a27ca, which means nothing.

The code carried a caveat saying versions compare as strings and that this "is enough for the timestamps and commits this mesh uses". That was the error, written down and not noticed.

It now reports the split and claims no ordering:

4 machine(s) do not all run the same host:
  04a27ca      g14, novox, shanks
  ced54d4      ace

  a host refuses a declaration carrying a field it does not know, whole — so the
  mesh may send only what every one of these understands. Which of them is newer is
  not readable from a commit; that needs a version the host reports as ordered

More useful as well as more honest — the reader sees who is on which side of the split, which is what decides whether a field can be sent.

This is issue 145 arriving by my own door: a report that confidently says the opposite of the truth is worse than one that says less.

make check: only the pre-existing failure.

**What I shipped this morning said the opposite of the truth, and the live mesh proved it within the hour.** It reported "N machine(s) run an older host than another machine does" by comparing versions as strings. A host reports its version as a **commit**, and commits have no order. With the adopted machine pushed for the first time, it named the three machines running the *newer* host (installed 09:18) as the ones behind the older one (01:13) — because `ced54d4` sorts above `04a27ca`, which means nothing. The code carried a caveat saying versions compare as strings and that this "is enough for the timestamps and commits this mesh uses". That was the error, written down and not noticed. It now reports the split and claims no ordering: ``` 4 machine(s) do not all run the same host: 04a27ca g14, novox, shanks ced54d4 ace a host refuses a declaration carrying a field it does not know, whole — so the mesh may send only what every one of these understands. Which of them is newer is not readable from a commit; that needs a version the host reports as ordered ``` More useful as well as more honest — the reader sees who is on which side of the split, which is what decides whether a field can be sent. This is issue 145 arriving by my own door: a report that confidently says the opposite of the truth is worse than one that says less. `make check`: only the pre-existing failure.
jschoubben added 1 commit 2026-09-30 07:29:41 +00:00
novox/hq 04-ISSUES/087. The version I shipped this morning said "N
machine(s) run an older host than another machine does" and worked it out
by comparing versions as strings. A host reports its version as a commit.
Commits have no order.

On the live mesh it named the three machines running the NEWER host as the
ones behind: `ced54d4` sorts above `04a27ca` and means nothing. An
arbitrary lexicographic result, presented as a fact, about the one thing
this was built to make trustworthy.

It now reports the split — which machines run which version — and claims
no ordering:

  4 machine(s) do not all run the same host:
    04a27ca      g14, novox, shanks
    ced54d4      ace

    a host refuses a declaration carrying a field it does not know, whole
    — so the mesh may send only what every one of these understands. Which
    of them is newer is not readable from a commit; that needs a version
    the host reports as ordered

More useful as well as more honest: the reader sees who is on which side
of the split, which is what decides whether a field can be sent.

A report that confidently says the opposite of the truth is worse than one
that says less — which is the subject of 04-ISSUES/145, arriving by my own
door within an hour of my closing it.
jschoubben merged commit 8ee2e4d441 into main 2026-09-30 07:29:48 +00:00
jschoubben deleted branch fix/087-a-commit-has-no-order 2026-09-30 07:29:48 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#153