@holdyourvoice/hyv 2.9.8 → 2.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/assets/FREE-PAID.md +1 -1
- package/dist/index.js +14 -25
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable CLI changes. Also mirrored to [holdyourvoice.com/changelog](https://holdyourvoice.com/changelog) for user-facing releases.
|
|
4
4
|
|
|
5
|
+
## [2.9.9] — 2026-06-12
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Welcome step 4 failure copy — says `hyv welcome` retry, not `hyv sync` (sync requires paid plan)
|
|
9
|
+
- CLI plan/init/export/api messages point to `/app` and `/app/billing`, not `/dashboard`
|
|
10
|
+
- Rewrite prompts no longer silently pick a cached profile when none is passed (generic rules as intended)
|
|
11
|
+
- Web auth forgot-password and session check retry on cold-start 503s
|
|
12
|
+
- Marketing email links point to `/app` not `/dashboard`
|
|
13
|
+
|
|
5
14
|
## [2.9.7] — 2026-06-12
|
|
6
15
|
|
|
7
16
|
### Fixed
|
package/assets/FREE-PAID.md
CHANGED
|
@@ -36,7 +36,7 @@ npx @holdyourvoice/hyv mcp
|
|
|
36
36
|
- profile-aware rewrite prompts (`hyv rewrite`)
|
|
37
37
|
- hybrid server analysis (`hyv scan --server`, MCP `hyv_analyze`)
|
|
38
38
|
- multiple profiles + team voices (team plan)
|
|
39
|
-
- dashboard at https://holdyourvoice.com/
|
|
39
|
+
- dashboard at https://holdyourvoice.com/app
|
|
40
40
|
|
|
41
41
|
First month $1 → https://holdyourvoice.com/#pricing
|
|
42
42
|
|
package/dist/index.js
CHANGED
|
@@ -5753,7 +5753,7 @@ async function request2(method, path26, body) {
|
|
|
5753
5753
|
if (res.status === 401)
|
|
5754
5754
|
throw new Error("your session expired. run: hyv init to sign in again.");
|
|
5755
5755
|
if (res.status === 403)
|
|
5756
|
-
throw new Error("you don't have access to this feature. check your plan at holdyourvoice.com/
|
|
5756
|
+
throw new Error("you don't have access to this feature. check your plan at holdyourvoice.com/app/billing");
|
|
5757
5757
|
if (!res.ok) {
|
|
5758
5758
|
throw new Error(`something went wrong (${res.status}). try again or contact support.`);
|
|
5759
5759
|
}
|
|
@@ -11798,11 +11798,13 @@ async function stepSignup(profileName) {
|
|
|
11798
11798
|
} else {
|
|
11799
11799
|
const detail = response.data?.error;
|
|
11800
11800
|
console.log(import_chalk12.default.yellow(
|
|
11801
|
-
` profile saved locally \u2014
|
|
11801
|
+
` profile saved locally \u2014 retry \`hyv welcome\` when online${detail ? ` (${detail})` : ` (HTTP ${response.status})`}`
|
|
11802
11802
|
));
|
|
11803
11803
|
}
|
|
11804
11804
|
} catch (err) {
|
|
11805
|
-
console.log(import_chalk12.default.yellow(
|
|
11805
|
+
console.log(import_chalk12.default.yellow(
|
|
11806
|
+
` profile saved locally \u2014 retry \`hyv welcome\` (${err?.message || "sync failed"})`
|
|
11807
|
+
));
|
|
11806
11808
|
}
|
|
11807
11809
|
console.log(import_chalk12.default.cyan("\n opening billing in your dashboard ($1 first month)..."));
|
|
11808
11810
|
await withSpinner("opening billing\u2026", () => openAuthenticatedDashboard({ next: "/app/billing" }));
|
|
@@ -15473,7 +15475,7 @@ function registerInitCommand(program3) {
|
|
|
15473
15475
|
} else if (options?.browser === false) {
|
|
15474
15476
|
console.log(import_chalk4.default.red("License key required when --no-browser is set."));
|
|
15475
15477
|
console.log("\nUsage: hyv init <license-key>");
|
|
15476
|
-
console.log("\nGenerate a license key at: https://holdyourvoice.com/
|
|
15478
|
+
console.log("\nGenerate a license key at: https://holdyourvoice.com/app");
|
|
15477
15479
|
process.exit(1);
|
|
15478
15480
|
} else {
|
|
15479
15481
|
authData = await authenticateWithBrowser();
|
|
@@ -15939,25 +15941,12 @@ Draft with line numbers ({draft_name}):
|
|
|
15939
15941
|
`;
|
|
15940
15942
|
}
|
|
15941
15943
|
function loadProfile(name) {
|
|
15942
|
-
if (name) {
|
|
15943
|
-
|
|
15944
|
-
if (content) {
|
|
15945
|
-
return { content, name };
|
|
15946
|
-
}
|
|
15944
|
+
if (!name) {
|
|
15945
|
+
return null;
|
|
15947
15946
|
}
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
}
|
|
15952
|
-
const profiles = fs10.readdirSync(PROFILES_DIR).filter((f) => f.endsWith(".md"));
|
|
15953
|
-
if (profiles.length > 0) {
|
|
15954
|
-
const defaultProfile = profiles[0].replace(".md", "");
|
|
15955
|
-
const content = readCachedProfile(defaultProfile);
|
|
15956
|
-
if (content) {
|
|
15957
|
-
return { content, name: defaultProfile };
|
|
15958
|
-
}
|
|
15959
|
-
}
|
|
15960
|
-
} catch {
|
|
15947
|
+
const content = readCachedProfile(name);
|
|
15948
|
+
if (content) {
|
|
15949
|
+
return { content, name };
|
|
15961
15950
|
}
|
|
15962
15951
|
return null;
|
|
15963
15952
|
}
|
|
@@ -16865,13 +16854,13 @@ async function openBillingPortal() {
|
|
|
16865
16854
|
}
|
|
16866
16855
|
} else {
|
|
16867
16856
|
console.log(import_chalk14.default.yellow("Could not open billing portal."));
|
|
16868
|
-
console.log(import_chalk14.default.dim(
|
|
16857
|
+
console.log(import_chalk14.default.dim(`Visit ${DASHBOARD_BILLING_URL} to manage billing.`));
|
|
16869
16858
|
}
|
|
16870
16859
|
}
|
|
16871
16860
|
async function downgradePlan() {
|
|
16872
16861
|
console.log(import_chalk14.default.yellow("\nDowngrade Plan\n"));
|
|
16873
16862
|
console.log("To downgrade your plan, please visit:");
|
|
16874
|
-
console.log(import_chalk14.default.dim(
|
|
16863
|
+
console.log(import_chalk14.default.dim(` ${DASHBOARD_BILLING_URL}`));
|
|
16875
16864
|
console.log("\nOr contact support at shashank@holdyourvoice.com");
|
|
16876
16865
|
}
|
|
16877
16866
|
|
|
@@ -19521,7 +19510,7 @@ async function exportCommand(format, opts) {
|
|
|
19521
19510
|
} else {
|
|
19522
19511
|
console.log(`
|
|
19523
19512
|
${c.red("\u2717")} no voice profiles found`);
|
|
19524
|
-
console.log(` ${c.dim("create one at")} ${c.cyan("https://holdyourvoice.com/
|
|
19513
|
+
console.log(` ${c.dim("create one at")} ${c.cyan("https://holdyourvoice.com/app")}`);
|
|
19525
19514
|
}
|
|
19526
19515
|
process.exit(1);
|
|
19527
19516
|
return;
|
package/package.json
CHANGED