fix(web): close AC1 gap on faq, faster-whisper and parakeet pages

Extend the AC1 honesty tests to the faq install answer and the
faster-whisper/parakeet install commands, and add fork-status plus
upstream-install-script disclosure on all three surfaces.

Fixes #24
This commit is contained in:
soubarnak
2026-11-06 09:41:36 +05:30
parent 2721b57bc1
commit cfd5bba65c
4 changed files with 41 additions and 1 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ const faqCategories = [
questions: [
{
q: "How do I install Voculinux?",
a: "Run the one-liner installer: curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash. The installer handles dependencies and configuration. You can also download an AppImage from GitHub Releases if you prefer a no-root portable binary (host xdotool/wtype/ydotool still required for text injection), or grab a .deb, .rpm, Snap, or Flatpak package for your distro.",
a: "Run the one-liner installer: curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash. Fork status: this fetches the upstream install script, so it installs Vocalinux (upstream), not Voculinux; fork release artefacts are not published yet. The installer handles dependencies and configuration. You can also download an AppImage from upstream GitHub Releases if you prefer a no-root portable binary (host xdotool/wtype/ydotool still required for text injection), or grab a .deb, .rpm, Snap, or Flatpak package for your distro.",
},
{
q: "Which Linux distributions are supported?",
+5
View File
@@ -308,6 +308,11 @@ export default function FasterWhisperPage() {
</code>
))}
</div>
<p className="mb-4 text-sm text-muted-foreground">
Fork status: these commands fetch the upstream install script, so they
install Vocalinux (upstream), not Voculinux. Fork release artefacts
are not published yet.
</p>
<ol className="space-y-4">
{setupSteps.map((step, index) => (
<li
+5
View File
@@ -320,6 +320,11 @@ export default function ParakeetPage() {
</code>
))}
</div>
<p className="mb-4 text-sm text-muted-foreground">
Fork status: these commands fetch the upstream install script, so they
install Vocalinux (upstream), not Voculinux. Fork release artefacts
are not published yet.
</p>
<ol className="space-y-4">
{setupSteps.map((step, index) => (
<li
@@ -21,6 +21,9 @@ describe("fork install honesty (ticket #24, AC1)", () => {
const distro = readPage("install", "[distro]", "page.tsx");
const nixos = readPage("install", "nixos", "page.tsx");
const flatpak = readPage("flatpak", "page.tsx");
const faq = readPage("faq", "page.tsx");
const fasterWhisper = readPage("faster-whisper", "page.tsx");
const parakeet = readPage("parakeet", "page.tsx");
it("does not promise packaged artefacts with every release", () => {
for (const [name, source] of [
@@ -62,6 +65,33 @@ describe("fork install honesty (ticket #24, AC1)", () => {
expect(`nixos: ${nixos}`).not.toContain("use the signed xbps repository");
});
it("discloses fork status on the faq install answer", () => {
expect(`faq discloses fork status: ${faq}`).toContain("Fork status:");
expect(`faq marks upstream script: ${faq}`).toMatch(
/upstream install script|upstream Vocalinux|upstream GitHub Releases/,
);
expect(`faq states artefacts unpublished: ${faq}`).toMatch(
/not published yet|not yet published|once published/,
);
});
it("labels the upstream install script on engine option pages", () => {
for (const [name, source] of [
["faster-whisper", fasterWhisper],
["parakeet", parakeet],
] as const) {
expect(`${name} discloses fork status: ${source}`).toContain(
"Fork status:",
);
expect(`${name} marks upstream script: ${source}`).toMatch(
/upstream install script/,
);
expect(`${name} states artefacts unpublished: ${source}`).toMatch(
/not published yet|not yet published|once published/,
);
}
});
it("labels upstream release links as upstream until fork releases land", () => {
for (const [name, source] of [
["home", home],