Repository navigation
fix(agentflow): #649 report spec gaps + shared stripSlash - #709
Conversation
- Footer freshness notice: newest imported turn older than an Ask's window end (newestImportedAt / importStale), distinct from `not yet imported`. - Close-commit cross-check: an Ask whose Agentflow-Close-Id commit is more than a minute from its Reply stamp gets `close commit mismatch`; git is read only. - E4: a worker whose clone was cloned from another checkout is that checkout's (F22) and no longer counted as `checkout unknown`. - Footer sources include the listed worker runs, so a Codex worker's one-source choice is stated. - One null-safe stripSlash in server/paths.js replaces four copies. Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Freshness: newest imported line is taken over the whole index, not the read range, so an import that stopped before `from` still yields the notice. - Freshness counts closed Asks only: an open Ask's window ends now, which no imported turn reaches, so it was always stale and import could not clear it. - Close commits are read oldest first and matched incrementally, stopping once every replied Ask is matched; at most one notebook version is held. - A Reply is matched by its heading and stamp lines (whole text as fallback), so text appended after the close commit no longer hides the round. - git log --no-show-signature; GIT_OPTIONAL_LOCKS=0 for every read. - Docs describe the whole-index and closed-Ask rules. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5a0f8412aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const importStale = newestImportedAt == null ? 0 : reported.windows | ||
| .filter(w => w.start != null && w.end != null && w.stamp != null && w.startKind !== 'no local evidence' && Math.min(w.end, now) > newestImportedAt).length; |
There was a problem hiding this comment.
Include closed no-evidence Asks in the stale count
When a closed Ask has no matched local submission, buildWindows still gives it a stamped window end but marks it no local evidence; this predicate excludes it because its start is null and explicitly rejects that start kind. If the newest imported row predates that Reply, the new freshness footer therefore reports zero stale Asks even though the documented check covers every closed Ask whose window end is newer. Base this count on the closed window's stamp/end rather than requiring a locally derived start.
Useful? React with 👍 / 👎.
Refs #649. Covers the five checklist items. The follow-up comments on the issue (items C/A/B/residual/D) are not covered, so this PR intentionally doesn't close the issue.
Changes
importStale. The check uses the newest imported row across the whole index, not just the read range, and only counts closed Asks (an open Ask is never "stale").server/agentflow/close-commits.js, read-only git): finds the earliest commit with theAgentflow-Close-Idtrailer that touches the notebook and already holds the Reply, matched on the Reply heading and stamp line, with full text as a fallback. If it is more than 1 min from the Reply stamp, the Ask gets the labelclose commit mismatch, and the stamp is kept. Matching is incremental, with--no-show-signatureandGIT_OPTIONAL_LOCKS=0.checkout unknown.openai: import).stripSlash: one null-safe helper inserver/paths.js, used in four places, with a guard test against new local copies.Docs (
docs/agentflow-report.md,docs/agentflow-integration.md) and the CHANGELOG (Unreleased) are updated.Verification
test/agentflow-649.e2e.test.js. Each one failed on the code before its fix and passes now.npm test: everything passes except the known box-onlyHerdr Node launcher fallbackfailure, plus oneAuth header injection E2Efailure that only happens under load (it passed 2/2 when run alone).