Repository navigation
fix(cli): spaced-path hint takes the longest path and reads --flag=value; telemetry docs name the reverse session id - #7452
Conversation
…lue; telemetry docs name the reverse session id Follow-ups from review on #7443 and #7444: - The quote hint returned the first run of words that existed, so a "Final Cut/" folder hid "Final Cut export.mp4". It now names the longest. - "--compare=my clip.mp4" got no hint; the value after = now starts a run. - The telemetry section lists the skill a reverse or templates command ran for, and the HeyGen session id a recorded reverse run carries.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
jrusso1020
left a comment
There was a problem hiding this comment.
Reviewed at b5ec1f2f93f7caabbfa27d1d1b6af28fdc237172. No blocker found.
utils/reject-extra-positionals.ts:49–70 now retains the longest existing joined candidate and starts a candidate from a flag’s value after =. The change remains on the usage-error diagnostic path; it neither rewrites parsed arguments nor changes command execution. Source-traced its leaf-command caller and the existing JSON/stderr and exit-2 behavior. docs/packages/cli.mdx:2310–2312 now discloses authoring skill and recorded reverse session ID, matching trackSkillCommandRan and its command callers.
Nit — clarify aggregation: the parenthesis “so a retry counts once” would be more precise as “so recorded runs can be deduplicated by session ID.” Commands still emit each observation; consumers must count distinct nonempty session IDs. This is wording precision, not a new runtime counting defect.
Validation: Gated Vitest focused helper suite: 5 passed; replacing the helper with origin/main’s predecessor gives 3 failures / 2 passing controls, then the reviewed source was restored byte-for-byte. The fixture uses the PR’s assertions and actual helper, substituting only an unrelated audio-command object to avoid the borrowed dependency graph. Fresh independent adversarial source pass found no additional blocker. No full build, spawned CLI or live analytics validation claimed.
Need: yes · Size: ok · Reuse: existing resolveExtraPositionals, usage errors and telemetry producer contract · Simpler: already minimal · Structure: fine (checked existing resolveExtraPositionals, usage errors and telemetry producer contract; no split)
Risk: low — diagnostic selection and documentation only.
Verdict: APPROVE
Reasoning: The path-hint gaps are covered by discriminating regressions, and the disclosure names the emitted fields.
— Rames / hf-review
jerrai-bot-heygen
left a comment
There was a problem hiding this comment.
Reviewed exact head b5ec1f2f93f7caabbfa27d1d1b6af28fdc237172. The diagnostic now retains the longest existing joined path instead of stopping at a shorter directory, and extracts the value after = for split flag values. The fixture places a shorter existing directory beside the intended longer file and covers positional, separate flag-value, and equals forms. This remains a usage-error hint; parsed command arguments are not rewritten. The telemetry disclosure names the emitted skill and the recorded reverse session ID. No blocker found.
Wording nit: “so a retry counts once” is contingent on the analytics consumer counting distinct nonempty session IDs; the CLI still emits each command observation, and signed-out attempts have no session ID. “So recorded runs can be deduplicated by session ID” would be more precise. CLI CI shards and docs validation were still running at my check, independent merge gates; skipped checks were not treated as tests. No local test or merge/enqueue by reviewer.
— Jerrai
miguel-heygen
left a comment
There was a problem hiding this comment.
Review at b5ec1f2f. This follows up on the nits from #7443 and #7444. Rames and Jerrai approved at this head; this adds to their reviews.
reject-extra-positionals.ts:55-65:spacedPathnow keeps the longest existing join across every start, so aFinal Cut/folder no longer shadowsFinal Cut export.mp4. The updated test makesref one/a real directory besideref one take.mp4and pins the longer name. That is the exact shadowing case.runStarthandles--flag=valueby joining from the value, and returns""for a bare flag, so a flag name never starts a run. The newa flag=valuecase pins it.cli.mdx:2310: the telemetry list now names which skillreverse startortemplates pullran for, and the HeyGen session id of a recorded reverse run.
Nits (non-blocking):
- The comment "the longest run of them that is a file names it" now sits above
runStart, notspacedPath. It also says file, butexistsSyncaccepts a directory. Only a directory longer than every matching file would change the hint, so this is wording only. Move the comment down a function, and say "path" or switch tostatSync(...).isFile(). cli.mdx: "so a retry counts once" overstates what the CLI does, as Rames and Jerrai noted. The session id lets a consumer dedupe recorded runs, while each attempt is still sent, and a signed-out one carries no id. "so recorded retries can be counted once" would be exact.
CI at this head: 71 success / 15 skipped, none failed or pending, including CLI smoke (required).
Verdict: APPROVE
Reasoning: Both spaced-path gaps are closed and pinned by tests that fail on the previous head's behavior, and the disclosure now covers the new fields. What's left is wording.
…n-com#7110, heygen-com#7000; advance watermark Eight commits, PR heygen-com#7452 and ten pin moves are recorded with their evidence in the continued ledger, DECISIONS and UPSTREAM. Adopted: heygen-com#7249 (template entries detected structurally), heygen-com#7110 (whisper nan/inf output), heygen-com#7000 (engine probe test on fake timers). Deferred: heygen-com#7444, heygen-com#7452. Not applicable: heygen-com#7257, heygen-com#7443, heygen-com#7450. The watermark moves to c149730, PR heygen-com#7452, and the nine moved pins plus heygen-com#7434 are re-pinned at their current heads. Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
Follow-ups from review on #7443 and #7444.
Changes
Final Cut/folder hidFinal Cut export.mp4. It now keeps the longest match.--flag=valuegets the hint too.--compare=my clip.mp4arrives as--compare=myandclip.mp4. The value after=now starts a run, the same as a separate flag value.docs/packages/cli.mdxnow says which skill areverse startortemplates pullran for, and that a recorded reverse run carries its HeyGen session id (so a retry counts once). The paragraph below it says "Nothing else personal is added", so the list has to be complete.Tests
reject-extra-positionals.test.ts: aref one/folder sits next toref one take.mp4, so every case also checks that the folder no longer shadows the file. A third case covers the--compare=form. All 5 pass.🤖 Generated with Claude Code