…oject, and FileUpload-aware env output
Errors
- Every failure prints a single `error: <message>` line on stderr, as V1 did, instead of
oclif's `Error:` block (src/core/failure.ts). LaunchCommand, RetiredCommand and
launch:functions:serve report through it, and bin/run.js and bin/dev.js use it as the
last handler so an unknown command gets the same line.
- reportFailure passes through an error it has already printed (skipOclifErrorHandling),
so the bin's handler no longer prints the line a second time. The manual harness caught
the doubled line on every failing env command.
- eslint.config.mjs gives bin/*.js its Node globals, and the bins drop disable comments for
rules this config does not load, so lint-staged accepts them.
Project resolution
- A project uid given by flag or config must belong to the selected organization;
otherwise the command stops with `No project with UID "…" found in this organization.`
A project picked at the prompt is already scoped, so it is not looked up again.
Environment and project output
- launch:env:list drops the BRANCH column, and launch:env:get the BRANCH row, for a
FileUpload project (the project is fetched alongside the environment).
- env:get rows read ORGANIZATION UID and PROJECT UID; the project list column reads
PROJECT UID.
- The env:update checklist asks "Select the fields to update:", and "No records found."
is yellow on a terminal.
Tests
- test/support/project-ownership.ts mocks the ownership lookup; the integration suites,
including the variables suites merged from v2-dev, register it.
- .talismanrc checksums refreshed for the test files Talisman flags by name (`env`) or by
the word "pass" in a test title; none holds a credential.
#claude_code#
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Harshi Shah <harshi.shah@contentstack.com>
Co-Authored-By: Claude <noreply@anthropic.com>
What
Ticket: CL-7168
error: <message>line on stderr, as V1 did, instead of oclif'sError:block (src/core/failure.ts).LaunchCommand,RetiredCommandandlaunch:functions:servereport through it, andbin/run.js/bin/dev.jsuse it as the last handler, so an unknown command gets the same line.reportFailurepasses through an error it has already printed, which fixes the doubled line the manual harness caught on every failing env command.No project with UID "…" found in this organization.A project picked at the prompt is not looked up again.launch:env:listdrops the BRANCH column, andlaunch:env:getthe BRANCH row, for FileUpload projects.eslint.config.mjsgivesbin/*.jsits Node globals so lint-staged accepts the bins. The.talismanrcchecksums are refreshed for changed files whose flags are fake sequential test uids or generic patterns, not credentials.Notes (low, not addressed here):
env:get/env:listfetch the project twice (once for the ownership check, once for its type).Tests
npm test: 139 suites / 2404 tests pass, including newfailure.test.tscases for the already-reported pass-through.npm run lintis clean.LAUNCH_LIFECYCLEandLAUNCH_INTERACTIVEon. env create/get/list/update/delete, password protection, the checklist and decline-delete all pass, and the error cases print exactly one line. The harness updates go to the workspace repo separately.#claude_code#
🤖 Generated with Claude Code