release - #2352
Conversation
Button wraps children in an unconstrained inline-flex span, so the long checkout URL sized that wrapper past the button and got clipped on both ends by justify-center, hiding the start of the URL. Constrain the wrapper from the call site so the URL can shrink, and left-align it so the ellipsis lands at the end.
…ight fix(catalog): normalize virtual license products
…cation fix(dashboard): truncate long checkout URL from the start
fix(billing): allow dropped license pools to transition
|
Capy auto-review is paused for this organization because the usage-cycle auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
| CatalogPreviewUpdateResponse, | ||
| CheckResponseV3, | ||
| } from "@autumn/shared"; | ||
| import { CatalogUpdateParamsSchema } from "@autumn/shared"; |
There was a problem hiding this comment.
Schema Missing From Root Barrel
The server alias resolves @autumn/shared to shared/index.ts, while this schema is exposed through the @autumn/shared/publicApiSchemas subpath. If the root barrel does not re-export it through another chain, the integration-test target fails to type-check or load.
| import { CatalogUpdateParamsSchema } from "@autumn/shared"; | |
| import { CatalogUpdateParamsSchema } from "@autumn/shared/publicApiSchemas"; |
Prompt To Fix With AI
This is a comment left during a code review.
Path: server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts
Line: 6
Comment:
**Schema Missing From Root Barrel**
The server alias resolves `@autumn/shared` to `shared/index.ts`, while this schema is exposed through the `@autumn/shared/publicApiSchemas` subpath. If the root barrel does not re-export it through another chain, the integration-test target fails to type-check or load.
```suggestion
import { CatalogUpdateParamsSchema } from "@autumn/shared/publicApiSchemas";
```
How can I resolve this? If you propose a fix, please make it concise.There was a problem hiding this comment.
1 issue found across 4 files
Confidence score: 3/5
- In
server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts, the assertion onpreview.plan_changes[1]?.plan?.licensestargets a field that thepreviewUpdateCatalogpath does not populate, so this test can fail for the wrong reason or pass without validating real license changes. That creates regression risk in catalog-update behavior and CI stability—update the assertion to the actually populated preview field (as used in the other utility tests) before merging.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts">
<violation number="1" location="server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts:154">
P1: The test asserts `preview.plan_changes[1]?.plan?.licenses`, but `plan` is never populated on `CatalogPlanPreview` by the `previewUpdateCatalog` call path. Looking at the utility tests in this file, other tests use expand value "n" which matches a real expand key used by the system to return nested plan fields. The expand value `plan_changes.plan` does not match any existing expand logic that would populate a `plan` property on the plan change object. The optional chaining hides this — the assertion always evaluates to `undefined` and vacuously passes. Drop the expand and access `plan_changes[1]` fields directly, or use a known expand key like "plan_changes.n" that maps to `plan_changes` → `plan_changes.n` → `n` (the expand key used by other tests in this same file).</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| }, | ||
| ], | ||
| }); | ||
| const preview = await previewUpdateCatalog({ ctx: defaultCtx, params }); |
There was a problem hiding this comment.
P1: The test asserts preview.plan_changes[1]?.plan?.licenses, but plan is never populated on CatalogPlanPreview by the previewUpdateCatalog call path. Looking at the utility tests in this file, other tests use expand value "n" which matches a real expand key used by the system to return nested plan fields. The expand value plan_changes.plan does not match any existing expand logic that would populate a plan property on the plan change object. The optional chaining hides this — the assertion always evaluates to undefined and vacuously passes. Drop the expand and access plan_changes[1] fields directly, or use a known expand key like "plan_changes.n" that maps to plan_changes → plan_changes.n → n (the expand key used by other tests in this same file).
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts, line 154:
<comment>The test asserts `preview.plan_changes[1]?.plan?.licenses`, but `plan` is never populated on `CatalogPlanPreview` by the `previewUpdateCatalog` call path. Looking at the utility tests in this file, other tests use expand value "n" which matches a real expand key used by the system to return nested plan fields. The expand value `plan_changes.plan` does not match any existing expand logic that would populate a `plan` property on the plan change object. The optional chaining hides this — the assertion always evaluates to `undefined` and vacuously passes. Drop the expand and access `plan_changes[1]` fields directly, or use a known expand key like "plan_changes.n" that maps to `plan_changes` → `plan_changes.n` → `n` (the expand key used by other tests in this same file).</comment>
<file context>
@@ -66,6 +69,102 @@ test.concurrent(
+ },
+ ],
+ });
+ const preview = await previewUpdateCatalog({ ctx: defaultCtx, params });
+
+ expect(preview.plan_changes).toHaveLength(2);
</file context>
Summary by cubic
Allow dropped license pools during plan transitions, normalize virtual license products for previews, and fix long checkout URL truncation in the dashboard.
pricesandentitlements, enabling customization of same-batch license plans in previews; added an integration test to cover this.Written for commit 7d8f975. Summary will update on new commits.
Greptile Summary
This PR adjusts license-plan previews and improves URL display behavior. The main changes are:
Confidence Score: 4/5
The integration-test schema import should use the package entry point that exports it.
server/tests/integration/licenses/catalog-update/license-catalog-response.test.ts
Important Files Changed
Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "Merge pull request #2351 from useautumn/..." | Re-trigger Greptile
Context used: