Repository navigation
docs(deployment): name the two service-mode variables for the marketplace publish - #1790
Merged
Merged
Conversation
…lace publish §Marketplace Deployment told a maintainer to run `objectstack cloud login`, then `pnpm build`, then `pnpm publish:marketplace`. Step 1 writes nothing step 3 reads. Re-measured on `scripts/publish-marketplace.mjs`: `readFileSync` 0, `homedir` 0, `cloud login` 0, `cloud.json` 0, `OS_TOKEN` 0, against a control of `process.env` 5 — it opens no credential file of any kind, so no login step could supply what it wants. The section now names `OS_CLOUD_URL` and `OS_CLOUD_API_KEY` in the same fenced block as the publish command, marks the dry-run as the credential-free one, and links `RELEASE_STRATEGY.md` as the single source of truth. The `cloud login` line is kept only as a warning rather than deleted: measured on the pinned `@objectstack/cli@17.3.0`, `dist/commands/package/publish.js` imports `tryReadCloudConfig` from `utils/cloud-config.js`, which resolves `join(homedir(), '.objectstack', 'cloud.json')` — so the command is exactly right for the CLI publish path, and naming which path it belongs to is the inoculation. The other ten occurrences of the string were each followed to the command they lead to, all of which is `objectstack package publish`, and are left untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpRjGNnwyo2J1rrmekxB1W
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
huangyiirene
marked this pull request as ready for review
September 8, 2026 13:49
This was referenced Sep 8, 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 #1784
An audit, not a find-and-replace. Every occurrence of
objectstack cloud loginwas followed to the command it actually leads to before any verdict was reached. One of eleven was wrong.The two flows, measured
cloud loginright?pnpm publish:marketplace→scripts/publish-marketplace.mjsOS_CLOUD_URL+OS_CLOUD_API_KEYfromprocess.env, and nowhere elseobjectstack package publish(the CLI)~/.objectstack/cloud.json, orOS_CLOUD_API_KEY/OS_TOKENas a bearerScript, re-measured at this commit rather than inherited:
readFileSync0 ·homedir0 ·cloud login0 ·cloud.json0 ·OS_TOKEN0, against a control ofprocess.env5. It opens no credential file of any kind.CLI, measured on this repo's pinned
@objectstack/cli@17.3.0:dist/commands/package/publish.js:31importstryReadCloudConfigfromutils/cloud-config.js, which resolvesjoin(homedir(), '.objectstack', 'cloud.json')— the login step really does feed this path. Its--tokenflag is env-bound toOS_CLOUD_API_KEYand--orgtoOS_ORG_ID, so both auth modes the marketplace guides document are real.Per-site verdict — 11 occurrences across 8 files
README.md:106objectstack package publish— step 3 of the same blockdocs/DEPLOYMENT.md:62pnpm publish:marketplace— line 64 of the same blockcontent/docs/marketplace/fork-hotcrm.mdx:112objectstack package publish— §7, same blockcontent/docs/marketplace/fork-hotcrm.zh-Hans.mdx:112content/docs/marketplace/fork-hotcrm.zh-Hant.mdx:112content/docs/marketplace/publishing-your-first-app.mdx:20objectstack package publish— §4…publishing-your-first-app.zh-Hans.mdx:20…publishing-your-first-app.zh-Hant.mdx:20content/docs/marketplace/publishing-your-first-app.mdx:164401troubleshooting for the CLI publish; names both real modes…publishing-your-first-app.zh-Hans.mdx:164…publishing-your-first-app.zh-Hant.mdx:164Two further hits are excluded as non-instructions:
docs/RELEASE_STRATEGY.md:84(already the corrected ⛔ warning) and two lines inside.changeset/release-strategy-publish-auth-is-service-mode.md(prose describing that correction).⭐ The prior that
content/docs/marketplace/**is right held, and is now measured rather than assumed — those six pages never invokepnpm publish:marketplaceat all. Nothing in that tree moved, so the three-locale rule was never engaged.401 Unauthorizedline at:164, present in all three locales — those are three occurrences, not a family of one. This is my reading, recorded rather than reconciled; it changes no verdict, since all three are correct.The correction
docs/DEPLOYMENT.md§Marketplace Deployment prescribedobjectstack cloud login→pnpm build→pnpm publish:marketplace— the identical defect that PR #1783 corrected indocs/RELEASE_STRATEGY.md, sitting in a second file that points at the same script. Following that shape, the section now:OS_CLOUD_URLandOS_CLOUD_API_KEYin the same fenced block as the publish command, so the block is copy-paste complete;DRY_RUNshort-circuits the credential check);cloud loginonly as a ⛔ warning, and says which path it is right for — deleting the string would have traded a stale instruction for a differently-wrong one;RELEASE_STRATEGY.md§Marketplace Publish as the single source of truth rather than restating it, matching howCONTRIBUTING.mdcross-links it.⛔ No guard was added or proposed. ⛔
scripts/publish-marketplace.mjswas not touched — the script is not wrong. ⛔content/docs/releases/untouched.Gates
pnpm verify— exit 0, captured before any pipe (> /tmp/verify.log 2>&1; EXIT=$?), full chain at3b7d83a1:validate && typecheck && lint && lint:i18n-gate && hygiene && hygiene:tokens && build && testTest Files 164 passed (164)·Tests 3439 passed | 1 skipped (3440)✓ source token ratchet cleanline_budget: NOT APPLICABLE, per the gate's own scope line —Source token ratchet — authored surface: src/**/*.ts minus src/translations, src/data. This diff is.mdonly and never enters that surface.link-check.ymlscans.mdexact, sodocs/DEPLOYMENT.mdis genuinely read by it — the new relative linkRELEASE_STRATEGY.md(a sibling insidedocs/) is in its scope. Its green would say nothing about the eight.mdxpages, but none of those moved.files_changed:docs/DEPLOYMENT.md·.changeset/deployment-marketplace-publish-auth-is-service-mode.md(empty frontmatter — the sanctioned "releases nothing" declarationchangeset-check.ymldocuments, preferred over the label as committed evidence).Refs, none closing here: the audit was framed by #1782 and PR #1783;
CONTRIBUTING.mdcross-linking came from PR #1780; the roster-short-by-one-tree shape is #1460 / #1467 / #1676 / #1729.🤖 Generated with Claude Code
https://claude.ai/code/session_01PpRjGNnwyo2J1rrmekxB1W
Generated by Claude Code