Skip to content

Unify tool access and harden worker operations#21

Merged
rohan-patnaik merged 2 commits intomainfrom
codex/compress-image-heavy
Feb 5, 2026
Merged

Unify tool access and harden worker operations#21
rohan-patnaik merged 2 commits intomainfrom
codex/compress-image-heavy

Conversation

@rohan-patnaik
Copy link
Copy Markdown
Owner

@rohan-patnaik rohan-patnaik commented Feb 5, 2026

Summary

  • remove tool-level premium gating and align local dev behavior to bypass limits automatically in local dev mode
  • simplify tools UI by removing the dev bypass toggle and updating usage/capacity copy
  • remove workflow/team surfaces and related Convex/web wiring no longer used
  • harden worker tooling (clearer numeric parsing errors, safer unlock password handling, dynamic signature stamp sizing, unique OCR temp files, HTML-to-PDF filename generation)
  • update docs and worker assets to match runtime behavior

Validation

  • npm --prefix apps/web run lint
  • npm --prefix apps/web run test
  • pytest -q apps/worker/tests
  • coderabbit review --plain --type uncommitted --base main (one full run; follow-up rerun blocked by rate limits)

Summary by CodeRabbit

  • New Features

    • Expanded tool catalog to 27 unified tools including PDF conversions (Word, PowerPoint, Excel, HTML, JPG), editing, signing, organizing, and OCR capabilities.
    • All tools now available across all plans; premium is capacity-based (higher throughput and daily limits) rather than tool-restricted.
  • Removed Features

    • Workflows, Teams, and workflow studio removed.
    • Premium-only tool restrictions eliminated.
  • Documentation

    • Updated architecture and QA docs to reflect 27-tool unified catalog.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 5, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR consolidates the platform from a premium-tiered, workflow-studio architecture to a unified 27-tool catalog with capacity-based premium. It removes team/workflow management modules, eliminates premium-only tool restrictions, expands worker tool support with office conversions and OCR capabilities, and updates the public API surface accordingly.

Changes

Cohort / File(s) Summary
Backend Tool & Job System
apps/web/convex/jobs.ts, apps/web/convex/schema.ts
Replaced PREMIUM_ONLY_TOOLS with a broader SUPPORTED_TOOLS set containing 27 tools; removed devBypass mutation argument and premium enforcement logic; added tool validation on job creation; removed workflows, teams, and teamMembers database tables.
Error Definitions
apps/web/convex/lib/errors.ts, apps/web/src/lib/errors.ts
Removed USER_LIMIT_PREMIUM_REQUIRED error code from FRIENDLY_ERRORS constant in both backend and frontend, narrowing allowed error types.
Workflow & Team Infrastructure
apps/web/convex/lib/workflow_compiler.ts, apps/web/convex/lib/workflow_spec.ts, apps/web/convex/teams.ts, apps/web/convex/workflows.ts
Deleted entire workflow compiler, workflow specifications, and team management modules; removed all related type definitions, constants, and 4+ exported queries/mutations for workflow and team operations.
Public API Surface
apps/web/src/lib/convex.ts
Removed WorkflowSummary, TeamMemberSummary, and TeamSummary type exports; removed workflows and teams API namespaces; removed devBypass field from jobs.createJob input.
Frontend Pages
apps/web/src/app/page.tsx, apps/web/src/app/tools/page.tsx, apps/web/src/app/workflows/page.tsx, apps/web/src/app/usage-capacity/page.tsx
Removed ToolCard badge prop and workflow studio page (975 lines); expanded tools page with 17+ new/renamed tool IDs, textarea field type, and removed tier badge UI; updated home page tool shelf descriptions and removed workflow references; updated usage page copy and removed premium-only error references.
Header & Navigation
apps/web/src/components/SiteHeader.tsx, apps/web/src/middleware.ts
Removed Workflows navigation link; updated supporter banner messaging; made middleware auth handler async.
Worker Python Implementation
apps/worker/zenpdf_worker/tools.py, apps/worker/zenpdf_worker/worker.py
Added 9 new tool functions (word/powerpoint/excel-to-pdf, pdf-to-powerpoint, sign-pdf, edit-pdf, organize-pdf, ocr-pdf, scan-to-pdf); enhanced overlay and OCR logic; replaced web-to-pdf with html-to-pdf dispatch; expanded TOOL_OUTPUT_SUFFIXES mappings; added 110+ lines of new tool implementations and 100+ lines of dispatch logic updates.
Worker Dependencies & Tests
apps/worker/Dockerfile, apps/worker/requirements.txt, apps/worker/tests/test_tools.py
Added libreoffice, ocrmypdf, tesseract-ocr system packages; added python-pptx==1.0.2 dependency; introduced 9 new test functions covering edit, organize, sign, ocr, and conversion tools (133+ new test lines).
Configuration & Environment
apps/web/.env.example
Added ZENPDF_DEV_MODE=1 environment variable for local development bypass.
Documentation
README.md, docs/ARCHITECTURE.md, docs/OBSERVABILITY.md, docs/PRD.md, docs/QA.md, docs/RELEASE_CHECKLIST.md, docs/SECURITY.md, docs/SELF_HOST.md, docs/TOOL_TECHNIQUES.md
Updated README with 27-tool scope; removed workflow/team references from architecture; clarified logging no longer requires teamId; rewrote tool techniques for 27-tool catalog alignment; updated QA tool expectations and output naming; updated security policy to remove workflow scope; updated release checklist to reference tools instead of workflows; added dev-mode bypass documentation; removed premium-only tool distinctions from PRD.

Sequence Diagram(s)

No sequence diagrams generated — the architectural change simplifies control flow (removal of workflow abstraction layer) rather than introducing new multi-component interactions, and the core job→tool→worker dispatch is straightforward.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~65 minutes


Possibly related PRs

Poem

🐰 Twenty-seven tools now shine as one,
No workflows to weave, just jobs to be done!
Teams took their leave, and tiers lost their gate,
A simpler, swifter PDF fate. ✨📄

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/compress-image-heavy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rohan-patnaik rohan-patnaik merged commit 937dac8 into main Feb 5, 2026
3 of 4 checks passed
@rohan-patnaik rohan-patnaik deleted the codex/compress-image-heavy branch February 5, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant