Skip to content

Latest commit

 

History

History
106 lines (81 loc) · 3.88 KB

File metadata and controls

106 lines (81 loc) · 3.88 KB

Status — DogSpeak

Last updated: 2026-06-21 Maturity: 🟢 status-production-ready Live at: https://sudarshanchaudhari.github.io/DogSpeak/

What's done

  • Datadog alert / log / monitor input → plain-English explanation
  • Three audience modes: non-technical, manager/exec, junior developer
  • Multi-provider LLM: Anthropic, OpenRouter, Groq, Ollama (local), custom OpenAI-compatible endpoint
  • Streaming responses
  • Translation history with CSV export
  • One-click Slack/Teams share
  • Dark / light theme
  • Color-coded severity (OK / Info / Warn / Critical)
  • Security: API key in sessionStorage (cleared on tab close), opt-in localStorage, idle timeout (default 15 min), CSP header for AI provider domains, AbortController with 45s timeout
  • Error boundary
  • GitHub Pages auto-deploy on push to main
  • 67 tests across 7 suites (Vitest + React Testing Library)
  • Build, lint, typecheck, tests all green

What's left

Nothing essential. Feature-complete and deployed.

Optional polish:

  • Migrate next lint config to standalone ESLint CLI before Next 16 removes it (not applicable here — DogSpeak uses Vite, not Next)
  • More LLM providers if user demand emerges

Quality gates

Gate Status
Build
Lint ✅ 0 errors
Typecheck (strict)
Tests ✅ 67 / 7 suites
Live URL ✅ HTTP 200

Deployment

Already live via GitHub Pages workflow on every push to main.

File-by-file checklist

Source (src/)

  • main.tsx — React root + ErrorBoundary mount
  • App.tsx — root component composition
  • types.ts — shared TypeScript interfaces
  • vite-env.d.ts — Vite env type declarations
  • styles/global.css — CSS variables, resets, animations

Components

  • components/Navbar.tsx — top bar + theme toggle
  • components/ApiKeyInput.tsx — provider/model/key config + idle timeout
  • components/InputPanel.tsx — textarea + examples + audience selector
  • components/ResultPanel.tsx — translation output (headline, analogy, facts, action)
  • components/HistoryPanel.tsx — past translations + CSV export
  • components/ErrorBoundary.tsx — React error boundary

Hooks

  • hooks/useApiKey.ts — provider config + key storage
  • hooks/useTranslation.ts — translation state + history + AbortController
  • hooks/useIdleTimeout.ts — auto-clear key after inactivity
  • hooks/useTheme.ts — dark/light mode toggle

Lib (utils/)

  • utils/api.ts — AI provider calls (Anthropic + OpenAI-compatible)
  • utils/constants.ts — examples, audience schemas, severity config

Tests (src/**/*.test.*)

  • utils/api.test.ts
  • hooks/useApiKey.test.ts
  • hooks/useTranslation.test.ts
  • components/ApiKeyInput.test.tsx
  • components/HistoryPanel.test.tsx
  • components/InputPanel.test.tsx
  • components/ResultPanel.test.tsx
  • 67 tests across 7 suites — all green

Deployment

  • GitHub Pages workflow (.github/workflows/deploy.yml)
  • vite.config.js with correct base path for Pages
  • Live URL responding 200

Nothing remaining for the current product.

Categorized work remaining

Item Effort Bucket Blocker Priority

🎉 DogSpeak has zero open items. Already feature-complete and live.

Release plan

DogSpeak is already at v1.0.0 effectively (auto-deploys via GitHub Actions on every main push). To formalize:

  1. Tag a GitHub Release: gh release create v1.0.0 --title "DogSpeak v1.0.0" --notes "First tagged release. See README + STATUS.md." (in repo dir, branch main)
  2. Optional: add a CHANGELOG.md ahead of the tag
  3. Confirm Pages site still 200: curl -sI https://sudarshanchaudhari.github.io/DogSpeak/ | head -1

Deploy prerequisites

None. Zero env vars required. Already live on GitHub Pages.