fix(lint): correct stale provenance comment in validate-flow-trigger-readiness.test.ts - #7172
Merged
os-project-manager merged 1 commit intoAug 10, 2026
Conversation
…readiness.test.ts The comment near the "an ABSENT triggerType" pin claimed a present-tense LIVE instance of the omission shape in examples/app-todo (TaskCompletionFlow, #6882). #7039 repaired that flow — it now declares triggerType: 'record-after-update' and routes correctly — so the claim is stale and sends the next reader hunting for an instance that no longer exists. Rewritten as history: what the #6637-era corpus measurement found, and that the instance was since repaired by #7039, with a forward pointer to #7041 item 2 for the still-undecided question of whether the omission shape should now be covered by the rule. The test itself is unchanged and does not need to be: it asserts against its own inline `unroutable()` fixture (a local candidate_hired / app_candidate literal), never against examples/app-todo, so it stays green and non-vacuous independent of the example app's contents. Fixes #7041 (item 1 only; item 2 is routed to the maintainer, see issue comment). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F8q5J1MQyocgtNspb15fSn
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
📓 Docs Drift CheckNo hand-written docs reference the 0 changed package(s). ✅ |
os-project-manager
marked this pull request as ready for review
August 10, 2026 02:31
os-project-manager
deleted the
claude/issue-7041-stale-provenance-comment
branch
August 10, 2026 02:47
This was referenced Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #7041 (item 1 only — see scope note below).
What
packages/lint/src/validate-flow-trigger-readiness.test.tshas a pin test for the "absenttriggerType" omission shape (deliberately deferred at #6637). Its comment claimed, in the present tense, that the corpus measurement "found a LIVE instance of it inexamples/app-todo(TaskCompletionFlow, #6882)".That stopped being true once #7039 merged:
TaskCompletionFlownow declarestriggerType: 'record-after-update'and routes correctly, so there is no live instance left in the tree. The comment documented a world that no longer exists, and a stale provenance note is exactly what sends the next reader hunting for an instance that isn't there.Fix
Comment-only change. Rewritten as history rather than as a fresh present-tense claim (so it doesn't rot the same way again):
record--prefixed flowtriggerTypesilently degrades the flow to manual — no lint, no runtime signal (spun out of #5957) #6637-era corpus measurement found at the time (a live instance inexamples/app-todo, tracked as examples/app-todotask_completiondeclarestype: 'record_change'with notriggerType— the flow is dead, and its trigger condition is written to a key nothing reads #6882),task_completion— it bound to nothing and gated on a key nothing reads (#6882) #7039,validate-flow-trigger-readinesscites a live example-app instance that #6882 just removed — plus the deferred question of whether the wider absent-triggerTypecriterion should now ship #7041 item 2 for the still-open, undecided question of whether the omission shape should now be covered by the rule.The test assertions themselves are unchanged. This was verified, not assumed — the pin asserts against its own inline
unroutable()fixture (a localcandidate_hiredflow /app_candidateobject literal defined in the samedescribeblock, line 739), never againstexamples/app-todo. So it stays green and non-vacuous independent of whatexamples/app-todocontains — this is not the #6894 failure mode where a pin survives only because its input silently became empty.Scope
This PR implements item 1 only of #7041 (the stale comment). Item 2 — whether
flow-trigger-unroutableshould widen from the contradiction shape to the omission shape — is a product/rule-behavior decision that has been explicitly routed to the maintainer (see the issue comment): it's structurally the same question as #6041 (a different key, same "should this get a lint" shape), which is already sitting in the maintainer's decision box, so it shouldn't get a different decider just because it arrived through a different lane. No rule behavior changes, no new criteria, no widening — comment and prose only.Verification
pnpm --filter @objectstack/lint build— success (pre-existingimport.meta/cjs warnings only, unrelated to this change)pnpm --filter @objectstack/lint test— 68 files / 1775 tests passed, includingvalidate-flow-trigger-readiness.test.tspnpm --filter @objectstack/lint typecheck— cleanpnpm --filter @objectstack/lint exec eslint src/validate-flow-trigger-readiness.test.ts— cleannode scripts/check-nul-bytes.mjs— OKgrep -n "app-todo" packages/lint/src/validate-flow-trigger-readiness.test.ts— one hit left, correctly past-tense ("at the time this criterion was cut (A non-record--prefixed flowtriggerTypesilently degrades the flow to manual — no lint, no runtime signal (spun out of #5957) #6637) the corpus measurement found...")Changeset
None. This is a test-comment-only change in
packages/lint— no source/behavior/API change, nothing released.skip-changesetlabel applied.中文说明:本 PR 仅修正
validate-flow-trigger-readiness.test.ts中一条过期的注释——该注释曾声称examples/app-todo中存在TaskCompletionFlow触发器不可路由的真实实例(对应 #6882),但 #7039 已修复该实例(现已声明triggerType: 'record-after-update'并正确路由),原注释因此不再成立。本次改动仅重写注释为历史性表述(当时测得的事实 + 后续已被 #7039 修复),不改变测试断言本身,也不涉及规则行为变更。规则是否应扩展到"完全缺失 triggerType"的场景(#7041 item 2)是一个独立的、尚未决定的产品问题,已转交维护者裁决,本 PR 不涉及该项。Generated by Claude Code