Commit graph

88 commits

Author SHA1 Message Date
82946ffcf0 fix(BUG-092): add Change Email link to footer on landing and sub-pages
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-03-01 20:03:55 +01:00
8b31d11e74 docs: add missing OpenAPI annotations for signup/verify, billing/success, billing/webhook
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 16m15s
2026-02-27 16:04:55 +00:00
aa7fe55024 fix: add Examples link to nav and footer on all pages
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m59s
Fixes BUG-089
2026-02-27 07:04:37 +00:00
9dcc473e78 fix: replace misleading SDK claims with honest code examples messaging
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Failing after 1m3s
2026-02-26 07:02:57 +00:00
Hoid
6fd707ab64 feat: Add JS minification to build pipeline and expand test coverage
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m51s
Task 1: Add JS minification to build pipeline (fix BUG-053)
- Update scripts/build-html.cjs to minify JS files in-place with terser
- Modified public/src/index.html and status.html to reference original JS files
- Add TDD test to verify JS minification works correctly

Task 2: Expand test coverage for untested routes
- Add tests for /v1/usage endpoint (auth required, admin access checks)
- Add tests for /v1/billing/checkout route (rate limiting, config checks)
- Add tests for rate limit headers on PDF conversion endpoints
- Add tests for 404 handler JSON error format for API vs HTML routes
- All tests follow TDD principles (RED → GREEN)

Task 3: Update swagger-jsdoc to fix npm audit vulnerability
- Upgraded swagger-jsdoc to 7.0.0-rc.6
- Resolved minimatch vulnerability via npm audit fix
- Verified OpenAPI generation still works correctly
- All 52 tests passing, 0 vulnerabilities remaining

Build improvements and security hardening complete.
2026-02-25 10:05:50 +00:00
DocFast Agent
c52d1491d7 fix: footer API Status link → /status (status page instead of raw JSON)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 10m53s
2026-02-24 11:19:14 +00:00
OpenClaw
272c03c38d feat: branded HTML verification email + fix stale df_free placeholder
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 10m44s
2026-02-24 07:02:42 +00:00
94586e38a4 Add WCAG 2.1 AA compliant aria-labels to form inputs
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m23s
- Added aria-label to recoverEmailInput: 'Email address for key recovery'
- Added aria-label to recoverCode: '6-digit verification code'
- Added aria-label to emailChangeApiKey: 'Your API key'
- Added aria-label to emailChangeNewEmail: 'New email address'
- Added aria-label to emailChangeCode: '6-digit verification code for email change'

Fixes accessibility issue where screen readers couldn't announce input purposes in modal dialogs.
2026-02-23 13:04:45 +00:00
OpenClaw Bot
1c0c8a3e2a Fix BUG-085 & BUG-086: Replace api.docfast.dev with docfast.dev and remove non-existent SDK install instructions
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m9s
2026-02-23 10:04:14 +00:00
OpenClaw
f17b483682 fix: correct Pro plan description from 'unlimited' to '5,000/month'
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m13s
2026-02-22 16:02:32 +00:00
OpenClaw
8e9b99ccb0 fix: add Go, PHP, Laravel examples to source file (examples.html)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m41s
2026-02-22 10:03:27 +00:00
OpenClaw
4169a9f470 fix: update SDK list to include all 5 languages
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-22 10:03:00 +00:00
DocFast Dev
b476b0bd4e Fix SEO and accessibility issues in production build
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m20s
- Change 'Hosted in the EU' from h3 to h2 for proper heading hierarchy
- Add FAQ structured data (JSON-LD) for rich search results
- Remove onclick attributes from copy buttons (event listeners in app.js)

These changes were previously applied to templates/pages/ but missing
from public/src/ which is used by the Docker build. All changes now
applied to correct source files and built.
2026-02-21 19:03:39 +00:00
DocFast Dev
4aeac959c3 Fix CSP-blocked inline onclick handlers
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 10m51s
- Remove onclick from API key recovery modal Copy button (templates/pages/index.html)
- Event listener already exists in app.js (line 295)
- Remove onclick from server-rendered API key display (src/index.ts line 207)
- Remove onclick from billing success page Copy button (src/routes/billing.ts line 181)
- Create public/copy-helper.js to handle all [data-copy] elements via external JS
- All copy functionality now CSP-compliant (script-src 'self')
2026-02-21 16:04:15 +00:00
DocFast Bot
0e04fb5523 feat: add Go, PHP, Laravel examples to examples page and update landing copy
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m15s
2026-02-21 13:31:02 +00:00
DocFast Dev
f332d425ec Fix heading hierarchy (h3→h2) and add FAQ structured data for SEO
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m12s
- Changed 'Hosted in the EU' from h3 to h2 (WCAG compliance)
- Added FAQPage JSON-LD schema with 5 developer-focused questions
- Improves accessibility and Google rich results eligibility
2026-02-21 13:03:06 +00:00
bc948c4711 fix: remove /signup from sitemap (404 page)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-21 10:01:44 +00:00
OpenClaw Agent
a5f3683e30 Build pages with updated SDK messaging
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m31s
2026-02-21 07:03:27 +00:00
OpenClaw Agent
7ab371a40b Update landing page copy: replace 'No SDKs' with SDK availability messaging
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-21 07:02:20 +00:00
DocFast Bot
0d66341f22 feat: update examples page with SDK examples, fix API URLs
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m25s
- Node.js and Python examples now show SDK usage (recommended) + raw HTTP
- Fix api.docfast.dev → docfast.dev in all curl examples
- Update features subtitle to mention official SDKs
2026-02-20 20:26:58 +00:00
DocFast Bot
45b5be248c docs: remove free tier, update rate limits and auth for demo+pro model
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m58s
Promote to Production / Deploy to Production (push) Successful in 2m21s
- Remove free tier from rate limits, add Demo (5/hour, watermarked)
- Update auth section: remove free-tier key mention, link to docfast.dev
- Update getting started: demo → upgrade to Pro → use API key
- Add deprecated: true to /v1/signup/free swagger annotation
- Regenerate openapi.json
2026-02-20 19:10:25 +00:00
DocFast Bot
e787923908 feat: add IndexNow key for Bing/Yandex search indexing
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 54s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m15s
2026-02-20 13:03:56 +00:00
DocFast Bot
1d97f5e2aa Add /examples page with code examples for common use cases
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run
2026-02-20 10:04:45 +00:00
DocFast CEO
432a24dd81 fix: download button in playground + de-emphasize rate limits
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Fix download button: exclude #demoDownload from smooth scroll handler
  that was calling preventDefault() on blob: URLs after PDF generation
- Replace '5,000 PDFs per month' with 'High-volume PDF generation' in pricing
- Update schema.org structured data to remove specific limits
2026-02-20 09:51:20 +00:00
ca070520b4 Remove rate limiting mention from landing page
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
Rate limiting is a technical constraint, not a feature to advertise.
Focus on what customers get: security, zero storage, streaming.
2026-02-20 09:46:40 +00:00
dabf3c1004 Redesign playground: template tabs, live preview, split pane, mobile responsive
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m8s
- Add 3 pre-built templates (Invoice, Report, Custom HTML)
- Split-pane editor with live HTML preview (updates as you type)
- Generation timer shows actual response time
- Before/after comparison (free watermarked vs Pro clean)
- Pro CTA integrated into result panel
- Fully responsive: stacks on mobile
- Professional polish matching site design language
2026-02-20 09:32:25 +00:00
DocFast CEO
a178a1b06d fix(landing): update Docker build sources for BUG-080
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m59s
- Update public/src/index.html (Docker build source)
- Remove signup modal partial include
- Remove Free tier, add playground, update CTAs
- Update structured data
2026-02-20 08:10:29 +00:00
825c6562ba feat: wire up swagger-jsdoc dynamic spec, delete static openapi.json
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Create src/swagger.ts config module for swagger-jsdoc
- Add GET /openapi.json dynamic route (generated from @openapi annotations)
- Delete static public/openapi.json (was drifting from code)
- Add @openapi annotation for deprecated /v1/signup/free in index.ts
- Import swaggerSpec into index.ts
- All 12 endpoints now code-driven: demo/html, demo/markdown, convert/html,
  convert/markdown, convert/url, templates, templates/{id}/render,
  recover, recover/verify, billing/checkout, signup/free, health
2026-02-20 07:56:56 +00:00
DocFast Bot
792e2d9142 v0.4.1: Code-driven OpenAPI docs via swagger-jsdoc
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Add swagger-jsdoc dependency for auto-generating OpenAPI spec from JSDoc
- Add JSDoc @openapi annotations to all route handlers
- Create scripts/generate-openapi.mjs build step
- OpenAPI spec now auto-generated from code — no manual JSON editing
- All 13 endpoints documented with full parameters
- New demo endpoints documented, signup marked as deprecated
- Updated info description: demo-first, no free tier references
- Dockerfile updated to run openapi generation during build
- Build script updated: npm run build generates spec before compile
2026-02-20 07:54:37 +00:00
DocFast Bot
53755d6093 v0.4.0: Remove free tier, add public demo endpoint with watermark
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m31s
Promote to Production / Deploy to Production (push) Successful in 2m26s
- Remove free account signup flow entirely
- Add POST /v1/demo/html and /v1/demo/markdown (public, no auth)
- Demo: 5 requests/hour per IP, 50KB body limit, watermarked PDFs
- Landing page: interactive playground replaces 'Get Free API Key'
- Pricing: Demo (free) + Pro (€9/mo), no more Free tier
- /v1/signup returns 410 Gone with redirect to demo/pro
- Keep /v1/recover for existing Pro users
- Update JSON-LD, API discovery, verify page text
2026-02-20 07:32:45 +00:00
9095175141 a11y & SEO: fix source files - aria-labels, focus management, canonical, WebApplication schema, focus-visible
Some checks failed
Promote to Production / Deploy to Production (push) Successful in 2m43s
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 07:22:01 +00:00
OpenClaw
32a00be0b3 a11y & SEO: aria-labels, focus management, structured data, sitemap update, v0.3.3
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-20 07:03:48 +00:00
37386bfb5c fix: version bump 0.3.2, remove debug log, dynamic /api version, Pro plan 5000 PDFs
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m28s
Promote to Production / Deploy to Production (push) Successful in 2m20s
1. Version bump to 0.3.2
2. Remove debug console.log('CACHE HIT:') from static asset middleware
3. /api endpoint: hardcoded version → dynamic from package.json
4. OpenAPI docs + terms: Pro plan 10,000 → 5,000 PDFs/month
5. Remove .backup files
2026-02-19 14:12:37 +00:00
OpenClaw Deployer
fb05989b3b fix: SEO + accessibility + consistency fixes (BUG-056,062,063,064,065,066,067,068)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m8s
2026-02-19 08:39:56 +00:00
OpenClaw Deployer
a996c76c11 fix: align Pro plan quota to 5,000 PDFs/month (matches code + Stripe)
All checks were successful
Promote to Production / Deploy to Production (push) Successful in 2m0s
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 9m5s
2026-02-18 13:10:20 +00:00
OpenClaw Deployer
0902e1e437 feat: add SMTP auth support for K3s migration
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m3s
Promote to Production / Deploy to Production (push) Successful in 3m23s
- Support SMTP_USER/SMTP_PASS env vars for authenticated SMTP
- Support SMTP_FROM env var for configurable sender address
- Auto-detect secure mode for port 465
- Backwards compatible: falls back to unauthenticated local relay
2026-02-18 12:47:33 +00:00
DocFast Bot
87946a1762 fix: BUG-053,055,058,060,061,067,069 - JS minification, meta tags, skip-link, docs footer
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m44s
- BUG-053: Add terser JS minification to build process
- BUG-060: Add og:image, twitter:card, twitter:image to sub-pages
- BUG-067: Update skip-link to #main-content on all pages
2026-02-17 18:03:59 +00:00
e57a45b431 fix: apply QA fixes to correct build source (public/src/)
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m41s
- BUG-055: Remove duplicate preconnect tags from homepage
- BUG-058: Add twitter:image meta tag to homepage
- BUG-060: Add og:title/description/url to sub-pages (impressum/privacy/terms/status)
- BUG-061: Already done in sitemap.xml
- BUG-067: Add skip-to-content link via nav partial + styles_base
- BUG-069: Footer already added to docs.html
- BUG-053: Minify app.js and status.js, update HTML refs
2026-02-17 13:11:24 +00:00
7037b885e2 fix: BUG-055,058,060,061,067,069,053 - QA low/info fixes
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m35s
- BUG-055: Remove duplicate preconnect tags from homepage
- BUG-058: Add twitter:image meta tag to homepage
- BUG-060: Add og:title/description/url to sub-pages
- BUG-061: Add /status to sitemap.xml
- BUG-067: Add skip-to-content link on all pages
- BUG-069: Add legal footer to /docs page
- BUG-053: Minify app.js with terser
2026-02-17 13:07:43 +00:00
DocFast Bot
f5cea97adf security: remove Change Email feature (leaked key = account hijack)
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m7s
2026-02-17 11:40:27 +00:00
DocFast Bot
1702abdeb8 fix: add /change-email route in index.ts + fix SQL query escaping in keys.ts
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m36s
- Register GET /change-email route in src/index.ts (serves change-email.html)
- Fix updateKeyEmail() SQL query string (dollar signs were stripped by heredoc)
- Fix updateEmailByCustomer() SQL query string
- Rebuild TypeScript dist/
2026-02-17 11:34:21 +00:00
DocFast Bot
8f3b1a9660 feat: convert change-email from modal to standalone page + Stripe customer.updated webhook
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m8s
- Add /change-email as a proper standalone page (public/src/change-email.html)
  with API key input, new email input, verification code flow, and success state
- Update footer partial: change "/#change-email" link to "/change-email" on all pages
- Remove email change modal HTML and hash-handler JS from index page source
- Add /change-email to sitemap.xml
- Rebuild all HTML files via build-html.cjs

- Add updateEmailByCustomer() to src/services/keys.ts
- Add customer.updated webhook handler in src/routes/billing.ts
  to sync email changes made via Stripe dashboard back to DocFast
2026-02-17 11:31:37 +00:00
DocFast Bot
5099bae41f refactor: merge duplicate nav/style partials, fix sticky nav overflow
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m36s
2026-02-17 11:20:47 +00:00
OpenClaw
2bfd893510 Fix: sticky navbar on all pages
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m10s
2026-02-17 10:38:52 +00:00
DocFast Agent
7653939bd9 fix: QA audit bugs BUG-051/052/056/057/059/062/063/064/065/066/068
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 1m38s
- BUG-056: Fix sitemap namespace sitemapns.org -> sitemaps.org
- BUG-062: Extend <main> to wrap all page content (hero+features+pricing+EU section)
- BUG-064: Add sr-only <label> elements to all modal form inputs (signup, recovery, change-email)
- BUG-051/052: Remove duplicate X-Content-Type-Options headers from nginx (let helmet handle)
- BUG-057: Fix JSON-LD and pricing card: Pro plan is 2,500 PDFs/month not 5,000
- BUG-059: Add meta description, canonical URL, og: tags to /docs page
- BUG-063: Change eu-hosting h3 to h2 (correct heading hierarchy)
- BUG-065/066: Add aria-modal=true, role=dialog to modals; aria-label=Close to close buttons
- BUG-068: Add hash-based modal open for #change-email on page load
- Add .sr-only CSS utility class to base and index styles
2026-02-17 08:15:03 +00:00
OpenClaw
09c6feb06e Fix audit #14 (body size limits), #17 (duplicate session_id), #22 (unused import)
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m53s
2026-02-16 19:51:24 +00:00
OpenClaw
6cc30db5c6 Add styled /status page, update footer/terms links from /health to /status
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m49s
2026-02-16 19:48:25 +00:00
OpenClaw
59cc8f3d0e Session 45: support email, audit fixes (template validation, content-type, admin auth, waitUntil)
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m20s
- Added support@docfast.dev to footer, impressum, terms, landing page, openapi.json
- Fixed audit #6: Template render validates required fields (400 on missing)
- Fixed audit #7: Content-Type check on markdown/URL routes (415)
- Fixed audit #11: /v1/usage and /v1/concurrency now require ADMIN_API_KEY
- Fixed audit Critical #3: URL convert uses domcontentloaded instead of networkidle0
2026-02-16 19:30:21 +00:00
OpenClaw
e51e65524a refactor: extract shared partials from HTML pages (nav, footer, styles, modals)
Some checks failed
Deploy to Production / Deploy to Server (push) Has been cancelled
- Created build-time templating system using existing build-html.cjs
- Extracted index.html into source template with partials:
  _styles_index.html, _nav_index.html, _modals.html
- All 4 templated pages (index, impressum, privacy, terms) use partials
- docs.html excluded (Swagger UI, completely different structure)
- Added HTML build step to Dockerfile
- Built output is byte-identical to original files
2026-02-16 18:52:31 +00:00
OpenClaw
aab6bf3bee feat: Pro limit 2,500/mo, website templating, cleanup
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m24s
- Set Pro tier limit to 2,500 PDFs/month (was unlimited/5000)
- Added Pro limit enforcement in usage middleware
- Updated landing page, JSON-LD, and Stripe product description
- Created build-time HTML templating (partials for nav/footer/styles)
- Source files in public/src/, partials in public/partials/
- Build script: node scripts/build-html.cjs
- Deleted stale backup file
- Fixed index.html nav logo to use <a> tag for consistency
2026-02-16 18:46:59 +00:00