Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit fe77950f12b11534632d16e7529bf1efc3ff0026
parent 3dbc29034b3ae782ff432963925e35e8bfde1003
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Mon, 27 Apr 2026 23:29:20 -0400

feat(editor): hide system paths from dashboard, collapse on settings

The dashboard no longer prints the transcripts dir, and the resolved-paths
table on the settings page is wrapped in a closed <details> so a casual
screen-share doesn't leak local directory names. The summary toggles open
to reveal the same path/env-var view as before.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Diffstat:
Meditor/app/page.tsx | 4----
Meditor/app/settings/page.tsx | 46++++++++++++++++++++++++----------------------
Aeditor/cypress/e2e/dashboard-paths.cy.ts | 20++++++++++++++++++++
3 files changed, 44 insertions(+), 26 deletions(-)

diff --git a/editor/app/page.tsx b/editor/app/page.tsx @@ -85,10 +85,6 @@ export default async function Dashboard() { </table> </section> )} - - <p className="text-sm text-zinc-500"> - Transcripts dir: <code className="text-xs">{paths.transcriptsDir}</code> - </p> </div> ); } diff --git a/editor/app/settings/page.tsx b/editor/app/settings/page.tsx @@ -37,30 +37,32 @@ export default function SettingsPage() { </section> <section className="flex flex-col gap-3 border-t border-zinc-200 dark:border-zinc-800 pt-6"> - <div> - <h2 className="text-lg font-semibold">Resolved paths</h2> - <p className="text-sm text-zinc-500"> + <details data-testid="system-paths"> + <summary className="cursor-pointer text-lg font-semibold"> + System paths + </summary> + <p className="text-sm text-zinc-500 mt-2"> Read-only view of <code>getPaths()</code>. Set the matching env - vars (TRANSCRIPTS_DIR, EXPORT_PUBLIC_DIR, YTDLP_BIN, WHISPER_BIN, - WHISPER_MODEL, PARALLEL_TRANSCRIBE_LIMIT) before launching to - override. + vars (TRANSCRIPTS_DIR, SETTINGS_FILE, EXPORT_PUBLIC_DIR, YTDLP_BIN, + WHISPER_BIN, WHISPER_MODEL, PARALLEL_TRANSCRIBE_LIMIT) before + launching to override. </p> - </div> - <table className="text-sm"> - <tbody> - {pathRows.map(([key, value]) => ( - <tr - key={key} - className="border-b border-zinc-200 dark:border-zinc-800" - > - <th className="text-left font-medium py-2 pr-4 align-top"> - {key} - </th> - <td className="py-2 font-mono text-xs break-all">{value}</td> - </tr> - ))} - </tbody> - </table> + <table className="text-sm mt-3" data-testid="system-paths-table"> + <tbody> + {pathRows.map(([key, value]) => ( + <tr + key={key} + className="border-b border-zinc-200 dark:border-zinc-800" + > + <th className="text-left font-medium py-2 pr-4 align-top"> + {key} + </th> + <td className="py-2 font-mono text-xs break-all">{value}</td> + </tr> + ))} + </tbody> + </table> + </details> </section> </div> ); diff --git a/editor/cypress/e2e/dashboard-paths.cy.ts b/editor/cypress/e2e/dashboard-paths.cy.ts @@ -0,0 +1,20 @@ +describe("Dashboard hides system paths", () => { + it("does not display 'transcripts dir' or the actual path on the dashboard", () => { + cy.resetData("empty"); + cy.task("resolvePath", "test-transcripts").then((abs) => { + cy.visit("/"); + cy.get("body").should("not.contain.text", "transcripts dir"); + cy.get("body").should("not.contain.text", "Transcripts dir"); + cy.get("body").should("not.contain.text", abs as string); + }); + }); + + it("hides system paths under a closed details on settings, reveals on click", () => { + cy.resetData("empty"); + cy.visit("/settings"); + cy.findByTestId("system-paths").should("not.have.attr", "open"); + cy.findByTestId("system-paths").find("summary").click(); + cy.findByTestId("system-paths").should("have.attr", "open"); + cy.findByText("transcriptsDir").should("be.visible"); + }); +});