fix(board): --dispatch neste= carried three other record fields
d_neste took the record from field 14 onward - the index from when the record had 14 fields. ORDRE, FLY and VOY were later inserted before `neste` and the index never moved, so every dispatch block read `neste=<claimed>|<claimedage>|<voy>|<prose>` (measured on the shipped 0.34.0: `neste=1|0d|0|NESTE: ...`). Now field 17 onward. Found while adding a field before `neste`, which would have made the prefix one field longer. board-selftest pins the exact start of the fixture's NESTE prose, so the next inserted field turns it red. board-selftest 427 -> 428; README and CLAUDE.md counts moved with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
20fcd67f4a
commit
0008dbbc3a
5 changed files with 25 additions and 5 deletions
|
|
@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **`board.sh --dispatch` put three other record fields in front of `neste=`.**
|
||||||
|
The index that takes "the last field onward" was written when the record had
|
||||||
|
14 fields and was never moved as ORDRE, FLY and VOY were inserted before
|
||||||
|
`neste`, so a dispatch block read `neste=0|-|0|<the NESTE prose>`. It now
|
||||||
|
takes field 17 onward, and a selftest check pins the exact start of the
|
||||||
|
prose so the next inserted field turns it red.
|
||||||
|
|
||||||
## [0.34.0] - 2026-09-12
|
## [0.34.0] - 2026-09-12
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
||||||
|
|
@ -467,7 +467,7 @@ marketplace plugin. Three components, one boundary:
|
||||||
- **Board (`scripts/board.sh`):** cross-repo attention board. Reads STATE.md
|
- **Board (`scripts/board.sh`):** cross-repo attention board. Reads STATE.md
|
||||||
next-step blocks + board lines, `git status`, and mailbox pending counts, and
|
next-step blocks + board lines, `git status`, and mailbox pending counts, and
|
||||||
prints one line per repo. Read-only by construction: it writes to no repo, no
|
prints one line per repo. Read-only by construction: it writes to no repo, no
|
||||||
STATE.md and no mailbox. Pinned by `board-selftest.sh` (427 checks).
|
STATE.md and no mailbox. Pinned by `board-selftest.sh` (428 checks).
|
||||||
|
|
||||||
**It lives here because the mailbox is one of its three inputs, and it carries
|
**It lives here because the mailbox is one of its three inputs, and it carries
|
||||||
the same axis distinction the mailbox does.** A pending count means *others
|
the same axis distinction the mailbox does.** A pending count means *others
|
||||||
|
|
@ -1502,7 +1502,7 @@ obligations in another repo.
|
||||||
builtins only in hook and tests.
|
builtins only in hook and tests.
|
||||||
- TDD: no behavior change without a failing selftest check first.
|
- TDD: no behavior change without a failing selftest check first.
|
||||||
`bash scripts/coord-selftest.sh` must exit 0 (257/257),
|
`bash scripts/coord-selftest.sh` must exit 0 (257/257),
|
||||||
`bash scripts/board-selftest.sh` must exit 0 (427/427),
|
`bash scripts/board-selftest.sh` must exit 0 (428/428),
|
||||||
`bash scripts/route-selftest.sh` must exit 0 (73/73),
|
`bash scripts/route-selftest.sh` must exit 0 (73/73),
|
||||||
`bash scripts/orders-selftest.sh` must exit 0 (116/116) and
|
`bash scripts/orders-selftest.sh` must exit 0 (116/116) and
|
||||||
`bash scripts/state-line-guard-selftest.sh` must exit 0 (54/54).
|
`bash scripts/state-line-guard-selftest.sh` must exit 0 (54/54).
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ Session A in repo X leaves a message for repo Y; the next session in repo Y gets
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -199,7 +199,7 @@ Note that raising the inbox's priority (Rule 7) deliberately does **not** widen
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
bash scripts/coord-selftest.sh # 257 checks against a throwaway mailbox
|
bash scripts/coord-selftest.sh # 257 checks against a throwaway mailbox
|
||||||
bash scripts/board-selftest.sh # 427 checks against a throwaway repo tree
|
bash scripts/board-selftest.sh # 428 checks against a throwaway repo tree
|
||||||
bash scripts/route-selftest.sh # 73 checks, incl. the route->board round trip
|
bash scripts/route-selftest.sh # 73 checks, incl. the route->board round trip
|
||||||
bash scripts/orders-selftest.sh # 116 checks, incl. the 20-way barriered claim race
|
bash scripts/orders-selftest.sh # 116 checks, incl. the 20-way barriered claim race
|
||||||
bash scripts/state-line-guard-selftest.sh # 54 checks, incl. the Edit replace_all projection and the ratchet
|
bash scripts/state-line-guard-selftest.sh # 54 checks, incl. the Edit replace_all projection and the ratchet
|
||||||
|
|
|
||||||
|
|
@ -1788,6 +1788,14 @@ printf '%s\n' "$d8" | grep -q '^tab=1$'; check "dispatch: plan block carries tab
|
||||||
printf '%s\n' "$d8" | grep -q '^repo=repo-a$'; check "dispatch: plan block carries repo=" $?
|
printf '%s\n' "$d8" | grep -q '^repo=repo-a$'; check "dispatch: plan block carries repo=" $?
|
||||||
printf '%s\n' "$d8" | grep -q "^dir=$ROOT/repo-a\$"; check "dispatch: plan block carries dir=" $?
|
printf '%s\n' "$d8" | grep -q "^dir=$ROOT/repo-a\$"; check "dispatch: plan block carries dir=" $?
|
||||||
printf '%s\n' "$d8" | grep -q '^paste=cd '; check "dispatch: plan block carries a paste= that cds first" $?
|
printf '%s\n' "$d8" | grep -q '^paste=cd '; check "dispatch: plan block carries a paste= that cds first" $?
|
||||||
|
# neste= is the record's LAST field, taken as "field N onward". The index was
|
||||||
|
# written when the record had 14 fields and never moved as ORDRE, FLY and VOY
|
||||||
|
# were inserted before it, so the shipped block read `neste=0|-|0|Lukk ...` -
|
||||||
|
# three other columns glued onto the prose. Pinned on the exact start of
|
||||||
|
# repo-a's NESTE, so any future field added before `neste` without moving this
|
||||||
|
# index turns the check red instead of silently growing the prefix.
|
||||||
|
printf '%s\n' "$d8" | grep -q '^neste=Lukk to MAJOR fra reviewen'
|
||||||
|
check "dispatch: neste= carries the NESTE prose alone, no other record fields in front of it" $?
|
||||||
# The prompt reaches the session through argv. A bare model+effort command
|
# The prompt reaches the session through argv. A bare model+effort command
|
||||||
# forces the operator to type Go, and the session must then GUESS the task out
|
# forces the operator to type Go, and the session must then GUESS the task out
|
||||||
# of STATE instead of being handed it - measured twice on 2026-08-16.
|
# of STATE instead of being handed it - measured twice on 2026-08-16.
|
||||||
|
|
|
||||||
|
|
@ -1406,7 +1406,10 @@ dispatch() {
|
||||||
[ -n "$d_rec" ] || { echo "board: no repo named '$D_REPO' in the scanned roots ($ROOTS)" >&2; exit 2; }
|
[ -n "$d_rec" ] || { echo "board: no repo named '$D_REPO' in the scanned roots ($ROOTS)" >&2; exit 2; }
|
||||||
d_status="$(printf '%s' "$d_rec" | cut -d'|' -f4)"
|
d_status="$(printf '%s' "$d_rec" | cut -d'|' -f4)"
|
||||||
d_dir="$(printf '%s' "$d_rec" | cut -d'|' -f10)"
|
d_dir="$(printf '%s' "$d_rec" | cut -d'|' -f10)"
|
||||||
d_neste="$(printf '%s' "$d_rec" | cut -d'|' -f14-)"
|
# `neste` is the LAST record field and is taken as "field N onward". This
|
||||||
|
# index once read 14 and was never moved as fields were inserted before
|
||||||
|
# `neste`, gluing three other columns onto the prose - move it with the record.
|
||||||
|
d_neste="$(printf '%s' "$d_rec" | cut -d'|' -f17-)"
|
||||||
[ -d "$d_dir" ] || { echo "board: the directory for $D_REPO does not exist: $d_dir" >&2; exit 2; }
|
[ -d "$d_dir" ] || { echo "board: the directory for $D_REPO does not exist: $d_dir" >&2; exit 2; }
|
||||||
|
|
||||||
# Rejected traits REFUSE. Degrading to a command without them is the worst
|
# Rejected traits REFUSE. Degrading to a command without them is the worst
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue