Carry the proposal day only into the dated rules, so an old effort's marked insight stands (hq issue 844)
mesh/merge-gate head f75e1a91d957 merged into trunk a95b3fa053e0 — pass: builds mesh-knowledge → novox; no bus step; every machine composes with the change…
mesh/repo-check head f75e1a91d957 merged into trunk a95b3fa053e0 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-…
mesh/delivery delivered

This commit is contained in:
2026-10-15 21:29:55 +02:00
parent ebfec39937
commit f75e1a91d9
3 changed files with 38 additions and 7 deletions
@@ -379,14 +379,13 @@ func (k *KB) Propose(caller string, a ProposeAsk) (*Proposed, error) {
if !current && a.Kind == KindResearch && r.Effort == "" {
r.Effort = held.Current.Status
}
judged := r
// A new version of an active effort is new text: the dated rules hold it from the day it is proposed, while the
// record keeps its own date (novox/hq issue 844).
day := r.Date
if r.Pending != nil && !r.IsInsight() {
// A new version of an active effort is new text: the dated rules hold it from the day it is proposed, while
// the record keeps its own date (novox/hq issue 844).
judged = r.Clone()
judged.Date = k.now().Format("2006-01-02")
day = k.now().Format("2006-01-02")
}
refusals = append(refusals, JudgeRecord(judged, held, k.lookup(ctx), ref)...)
refusals = append(refusals, JudgeRecordOn(r, held, k.lookup(ctx), ref, day)...)
if raw, _ := json.Marshal(r); len(raw) > MostRecordBytes {
refusals = append(refusals, Refusal{Rule: "size", Says: fmt.Sprintf("the record is %d bytes; a record holds at most %d", len(raw), MostRecordBytes)})
}