Commit graph

257 commits

Author SHA1 Message Date
c82e00f18b fix: replace stale Free Tier with Demo tier in Terms of Service
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Section 2.1: Replace Free Tier with Demo (Free) - no account required,
  5 req/hour, testing and evaluation only, no SLA/support
- Section 5.1: Change 'no SLA for free tier' to 'no SLA for demo usage'
- Add terms-content test to verify no Free Tier references remain
- Rebuild public/terms.html via build-html.cjs
2026-03-05 14:05:34 +01:00
47571c8c81 fix: validate PDF options in template render route (BUG-103)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 16m25s
2026-03-05 11:04:22 +01:00
OpenClaw
ba2e542e2a fix: use sanitized PDF options from validator in convert/demo routes (BUG-102)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m44s
2026-03-05 08:05:22 +01:00
c03f217690 fix(BUG-101): enforce route-specific body size limits
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m40s
Remove global express.json({ limit: '2mb' }) that preempted route-specific
parsers. Each route group now has its own express.json() with correct limit:
- Demo: 50KB, Convert: 500KB, Others: 2MB, Stripe webhook: unchanged
2026-03-04 17:06:31 +01:00
d2f819de94 fix: flush usage entries independently to prevent batch poisoning (BUG-100)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m5s
2026-03-04 14:04:53 +01:00
OpenClaw Subagent
314edc182a Fix OpenAPI PdfOptions schema: add missing format values, waitUntil field, and template size limits
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m49s
- Updated format enum from 6 to 11 values: added Ledger, A0, A1, A2, A6
- Added waitUntil field with enum: [load, domcontentloaded, networkidle0, networkidle2]
- Added 100KB size limit documentation for headerTemplate and footerTemplate
- Added comprehensive test to verify OpenAPI spec matches validation logic
- All tests passing (463/463)
2026-03-04 11:09:19 +01:00
7d44524ae0 Add input validation for waitUntil and size limits for headerTemplate/footerTemplate
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Add waitUntil validation with allowed values: load, domcontentloaded, networkidle0, networkidle2
- Add size limit validation for headerTemplate and footerTemplate (100KB max)
- Follow TDD approach: 15 new failing tests, then implementation
- All 462 tests passing (was 447)
2026-03-04 11:04:46 +01:00
OpenClaw Bot
646a94dd6a chore: update dependencies (patch/minor)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m30s
2026-03-04 08:07:28 +01:00
Hoid (Backend Dev)
5f776db662 Fix BUG-099: Add TTL mechanism to provisionedSessions to prevent memory leak
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m22s
- Replace unbounded Set with Map<sessionId, timestamp> tracking insertion time
- Add periodic cleanup every hour to remove entries older than 24h
- Add on-demand cleanup before duplicate checks for timely cleanup
- Add comprehensive TDD tests verifying TTL behavior:
  * Fresh entries work correctly
  * Stale entries (>24h) get cleaned up
  * Fresh entries survive cleanup
  * Bounded size with many entries
- All 447 tests pass including 4 new TTL tests
- Memory leak fixed while preserving DB-level deduplication
2026-03-03 17:06:38 +01:00
DocFast CEO
024fa0084d fix: clean up request interceptor in recyclePage to prevent pool contamination
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m17s
When renderUrlPdf() sets up request interception for SSRF DNS pinning,
the interceptor and event listener were never cleaned up in recyclePage().
This could cause subsequent HTML-to-PDF conversions on the same pooled
page to have external resources blocked by the stale interceptor.

- Export recyclePage for testability
- Add removeAllListeners('request') + setRequestInterception(false)
- Add browser-recycle.test.ts with TDD (red→green verified)

Tests: 443 passing (was 442)
2026-03-02 17:05:45 +01:00
DocFast CEO
b05bd44432 chore: remove stale documentation and backup Dockerfile
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- BACKUP_PROCEDURES.md (outdated, CNPG handles backups now)
- CI-CD-SETUP-COMPLETE.md (setup notes, not needed in repo)
- Dockerfile.backup (old Dockerfile variant)
2026-03-02 17:03:01 +01:00
DocFast CEO
5aee8ae753 chore: remove stale tracking files and artifact
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
- Remove \001@ stray file (BUG-031)
- Remove bugs.md, state.json, sessions.md, decisions.md (stale from session 1, real state tracked externally)
2026-03-02 17:02:16 +01:00
6290c3eb97 fix(BUG-095,BUG-097): add Support link to footer partial, expand docs.html footer
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m44s
2026-03-02 14:11:13 +01:00
DocFast CEO
cf1a589a47 chore: bump to v0.5.2, update sitemap dates, add .dockerignore, update deps
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m44s
- Version bump 0.5.1 → 0.5.2 (24 commits since last tag)
- Update sitemap lastmod dates to 2026-03-02
- Add .dockerignore to exclude node_modules, .git, tests from build context
- Update minor deps: pg, puppeteer, stripe, swagger-ui-dist, @types/*
- npm audit: 0 vulnerabilities, 440 tests passing
2026-03-02 08:12:30 +01:00
9eb9b4232b test: add billing edge case tests (characterization)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m8s
2026-03-01 20:05:05 +01:00
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
bb0a17a6f3 test: add 14 comprehensive template service tests
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m48s
Cover edge cases for invoice and receipt rendering:
- Custom currency (invoice + receipt)
- Multiple items with different tax rates
- Zero tax rate
- Missing optional fields
- All optional fields present
- Receipt with/without to field
- Receipt paymentMethod
- Empty items array (invoice + receipt)
- Missing quantity (defaults to 1)
- Missing unitPrice (defaults to 0)
- Template list completeness check

Total tests: 428 (was 414)
2026-03-01 17:03:50 +01:00
4887e8ffbe test: add missing email-change verify edge cases (expired, max_attempts)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 15m49s
2026-03-01 14:05:43 +01:00
7808d85dde fix: add .js extension to html test import (TypeScript moduleResolution)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m46s
2026-03-01 11:05:08 +01:00
d976afebc5 test: add escapeHtml utility tests
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-03-01 11:03:18 +01:00
ecc7b9640c feat: add PDF options validation to demo route (TDD)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 14m58s
2026-03-01 08:06:55 +01:00
Hoid
a91b4c53a9 test: add comprehensive tests for isTransientError utility
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 17m44s
2026-02-28 20:03:14 +01:00
597be6bcae fix: resolve TypeScript errors in email-change tests (broken Docker build)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 16m33s
2026-02-28 17:05:47 +01:00
f89a3181f7 feat: validate PDF options with TDD tests
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Failing after 9m38s
2026-02-28 14:05:32 +01:00
0e03e39ec7 docs: comprehensive README with all endpoints, options, and setup
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Failing after 9m30s
2026-02-28 11:09:59 +01:00
03f82a8d03 fix: update basic-ftp and rollup to resolve security vulnerabilities
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Failing after 9m34s
- basic-ftp: critical path traversal (GHSA-5rq4-664w-9x2c) - production dep via puppeteer
- rollup: high path traversal (GHSA-mw96-cpmx-2vgc) - dev dep via vitest
- npm audit now shows 0 vulnerabilities
- All 291 tests pass
2026-02-28 07:02:30 +00:00
480c794a85 feat: add email change routes (BUG-090)
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Failing after 9m41s
2026-02-27 19:04:36 +00: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
427ec8e894 test: add app-level integration tests for routes, CORS, 404, headers
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m23s
2026-02-27 13:05:07 +00:00
0d90c333c7 test: add db retry and templates route tests
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m42s
2026-02-27 10:05:34 +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
e1084fb49c test: demo route tests
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
2026-02-27 07:04:28 +00:00
f0e9a79606 test: add billing and convert route tests
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m25s
2026-02-26 19:03:48 +00:00
1fe3f3746a test: add route tests for signup, recover, health
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m35s
2026-02-26 16:05:05 +00:00
OpenClaw
c01e88686a add unit tests for usage middleware (14 tests)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m53s
2026-02-26 13:04:15 +00:00
1aea9c872c test: add auth, rate-limit, and keys service tests
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m13s
2026-02-26 10:03:31 +00:00
1a37765f41 add verification service and email service tests (13 new tests)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m26s
2026-02-26 07:04:39 +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
50a163b12d feat: unit tests for security/utility functions (isPrivateIP, isTransientError, markdown, escapeHtml)
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m40s
Promote to Production / Deploy to Production (push) Successful in 8m48s
2026-02-25 19:04:59 +00:00
0a002f94ef refactor: deduplicate sanitizeFilename, add template+sanitize unit tests, fix esc single-quote
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m38s
2026-02-25 16:04:22 +00:00
DocFast Dev
c4fea7932c feat: add unhandled error handlers + SSRF and Content-Disposition tests
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m5s
2026-02-25 13:10:32 +00:00
DocFast CEO
288d6c7aab fix: revert swagger-jsdoc to 6.2.8 (7.0.0-rc.6 broke OpenAPI spec generation) + add OpenAPI spec tests
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled
swagger-jsdoc 7.0.0-rc.6 returns empty spec (0 paths), breaking /docs and /openapi.json.
Reverted to 6.2.8 which correctly generates all 10+ paths.
Added 2 regression tests to catch this in CI.
2026-02-25 13:04:26 +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
b95994cc3c fix: make test suite runnable without DB/Chrome, add tests to CI
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m28s
- Refactor index.ts to skip start() when NODE_ENV=test
- Add test setup with mocks for db, keys, browser, verification, email, usage
- Add vitest.config.ts with setup file
- Rewrite tests to work with mocks (42 tests, all passing)
- Add new tests: signup 410, recovery validation, CORS headers, error format, API root
- Add test step to CI pipeline before Docker build
2026-02-25 07:07:12 +00:00
bc698b66b2 bump: v0.5.1 — includes footer link fix
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 11m32s
2026-02-24 16:01:15 +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
ec7af37214 fix: add Cache-Control header to landing page
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 14m44s
Promote to Production / Deploy to Production (push) Successful in 2m36s
2026-02-24 10:02:10 +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