Accuracy pass: undocumented limits, stale install path, dead index entries - #36
Open
tpavlu wants to merge 1 commit into
Open
Accuracy pass: undocumented limits, stale install path, dead index entries#36tpavlu wants to merge 1 commit into
tpavlu wants to merge 1 commit into
Conversation
…, prune dead index entries
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.
What changed and why
Three unrelated accuracy fixes. The pricing table was missing two tier limits users can actually hit — file uploads and media storage — and the media cap is the one that bites, because it is finite on Free while Rich Content actively encourages images and diagrams. The Claude Code hook page still curls the legacy installer path. And the docs index advertised two entries that are not real destinations, while a real page was missing from navigation entirely.
Verified
All verification against
ref-tools/ref.Limits —
shared-common/tierConfig.ts(TIER_CONFIGS)maxFileUploads: Free 1,000 · Pro 50,000 · Max 500,000.maxMediaStorageBytes: Free1073741824· Pro'unlimited'· Max'unlimited'.1073741824is namedONE_GBinplan-app/server/src/services/mediaStore.unit.test.tsandplan-app/server/src/utils/mcpToolHandlersMediaUpload.testkit.ts, so the table says "1 GB". Values are presented with the same comma grouping the existing rows use.functions/src/pdfUploadUnifiedEndpoint.tscheckscheckLimitWithAddition(tier, 'fileUploads', …)and returns 403limit_exceeded; the count comes fromcountFileUploadsinfunctions/src/middleware/checkTierLimits.ts(sum oftotalFilesacross the user's or team's upload sets).plan-app/server/src/services/mediaLimits.ts(checkMediaStorageLimit) short-circuits on'unlimited'and otherwise sumssizeBytesovermediaRefsfor the owning user or team. Enforced on both upload paths —plan-app/server/src/routes/media.ts("Media storage limit reached — upgrade to upload more images", 403) andplan-app/server/src/utils/mcpMediaUploadToolHandlers.ts. That covers editor uploads and MCPupload_media, which is why the Rich Content sentence names both.Install path —
plan-app/server/src/routes/plugins.tsPLUGIN_NAMEisref-plan. Both/install/ref-planand/install/ref-plan-hookare registered to the same handler, and the source comment states theref-plan-hookpath is kept as an alias because the installed plugin is nowref-plan. The router mounts at/plugins(plan-app/server/src/index.ts). So the current path ishttps://api.plan.ref.tools/plugins/install/ref-plan.enabledPlugins["ref-plan-hook@ref-tools-marketplace"]from~/.claude/settings.jsonand registersref-plan@ref-tools-marketplace.plan-app/client/src/components/settings/ClaudeCodeSettingsPage.tsx:43buildsinstallCommandfrom.../plugins/install/ref-plan-hook. Not fixed here (product repo is out of scope for this PR) — flagging for whoever owns that page.Index entries —
docs.jsonplans/beta.mdxdeleted.docs.jsonalready redirects/plans/beta→/plans/getting-started/intro, so the page never resolves; it is in no navigation group and nothing in the repo links to it. Its content is superseded by the fourplans/workflows/role-*pages,plans/workflows/claude-code-hook, andusage/pricing, and it had gone stale in its own right — it still carried the legacyref-plan-hookinstall command and pre-launch pricing copy. The redirect is left in place so old links keep working.usage/rbac.mdxwas not in navigation. It is now, in the Usage group of both the Plans and Context tabs, next tousage/teams. Its content checks out:TeamRoleis'admin' | 'writer' | 'reader'(functions/src/procedures/teamTypes.ts:7, allowlisted again infunctions/src/routes/teamsJoinLinkRoutes.ts:15).Unverified / omitted
getting-started/dashboard.mdx— left in place, deliberately not added to navigation. The brief suggested promoting it, but its content does not match the app. Inclient/pages/Dashboard.tsxthe cards are "Plan", "Install ref-plan MCP", "Add Resources", "Usage & Credits", and a team/invite card. The page describes aQuick Installcard and aSearch Documentationcard that does not exist, and claims a "snackbar toast log" of recent system messages and a CSV export path I could not find. Adding it to navigation would surface those errors to customers. It is a judgement call whether the page should be rewritten or deleted, so it is untouched — someone should decide. Nothing links to it and it is in no nav group today.TIER_CONFIGS.Enterprise.maxMediaStorageBytesis1073741824— the same as Free — and unlikefileUploadsandpdfPagesthere is no override path for it:LimitTypeinshared-common/limitErrors.tsomitsmediaStorageBytes, the enterprise-limit CLI (command/cli_teams_enterprise.ts,command/cli_teams_overrides.ts) exposes no flag for it, andcheckMediaStorageLimitpasses no override. "Custom" matches the rest of the Enterprise column and the tier's own generated feature line ("Custom limits (negotiable)"), but the code as written would cap an Enterprise account at 1 GB. This looks like a product gap rather than a docs gap — worth a look. If the answer is "Enterprise really is 1 GB", the cell should change.### Tier detailslist still mentions only credits and repos. Adding upload and storage numbers there would duplicate the table without adding anything.comparison/building-doc-search.mdxis another root-level page absent from navigation, noticed while auditing. Out of scope for this PR; mentioning it so it is not lost.Conflicts
Yes — this PR edits
docs.json(two added"usage/rbac"lines, one per tab). Sibling PRs in this batch also editdocs.json; conflicts are expected and should be trivial to resolve.Generated by Claude Code