Skip to content

Releases: tindotdev/append

v0.6.0: Phase 5 - Custom Buckets & Hono RPC

31 Dec 07:32

Choose a tag to compare

What's New

Phase 5: Custom User Buckets & Hono RPC

Phase 5A: Hono RPC for type-safe API calls

  • Replace manual fetch with hc<AppType> client
  • End-to-end type safety from API to frontend

Phase 5B: Bucket table for user-owned custom buckets

  • New bucket table with user ownership
  • Default buckets seeded on user creation

Phase 5C: Bucket CRUD API

  • Full create/read/update/delete operations
  • Drag-drop reordering support

Phase 5D: Bucket manager UI

  • Settings page with bucket management
  • Drag-drop reordering with optimistic updates

Bug Fixes

  • Fix ambiguous column name in listBuckets subquery
  • Add runtime bucket validation to updateCandidate

Maintenance

  • Documentation refresh for Phase 5
  • Dependency updates

v0.5.0: Phase 4 Parallel Suggestion Generation

30 Dec 16:30

Choose a tag to compare

Phase 4: Parallel Suggestion Generation

Key Features

  • Parallel Streaming: Implement concurrent suggestion generation with concurrency limit of 10, achieving ~10x speedup (from ~100s to ~10s for 20 terms)
  • Progress Tracking: Real-time progress indicator showing "Generating X/Y..." during generation
  • Local Development Support: Fixed local development to work without Secrets Store access

Implementation Details

Parallel Streaming Utility

  • New parallelStream() async generator in packages/api/src/platform/parallel.ts
  • Respects concurrency limits while yielding results immediately as tasks complete
  • Supports error isolation using PromiseSettledResult

Suggestion Generation Updates

  • Updated generateSuggestions() to use parallel streaming instead of sequential processing
  • Results stream to client as each LLM call completes for responsive UI

Progress Tracking

  • Enhanced BatchDetailPage and BatchHeader components
  • Tracks completion progress with ref-based guard to prevent duplicate API calls
  • Displays precise progress feedback to users

Local Development Improvements

  • Added getSecretValue() helper supporting dual-mode secrets
  • Cloudflare Secrets Store bindings now production-only
  • Local .dev.vars seamlessly supports development workflows

What's Fixed

  • Local development environment now works independently of remote Secrets Store access
  • Removed unused AI binding that caused connection issues

Commits Included

  • 4141809: feat(api,web): implement parallel suggestion generation (Phase 4)
  • c2a6db5: fix(api): support local dev without Secrets Store access

Related Issues

Closes implementation of Phase 4 from project roadmap

v0.4.0 - shadcn/ui + TanStack Form Migration

29 Dec 08:53

Choose a tag to compare

What's New

This release completes Phase 3 of the roadmap by migrating the UI to shadcn/ui components and implementing TanStack Form with Valibot validation.

Features

  • shadcn/ui components: Button, DropdownMenu, Input, Label, Select, Textarea
  • TanStack Form integration: New field.tsx component for form fields with shadcn styling
  • ProtectedLayout: Migrated dropdowns to shadcn DropdownMenu (fixes click-outside behavior)
  • BatchNewPage: Migrated to TanStack Form with Valibot schema validation
  • CandidateInputs/CandidateActions: Migrated to shadcn components

Fixes

  • Resolved Biome lint errors from migration
  • Disabled noExplicitAny rule (too noisy for Cloudflare Workers code)
  • Added justified suppressions for cognitive complexity warnings

v0.3.2: Accept All Button + UX Improvements

29 Dec 07:36

Choose a tag to compare

What's New in v0.3.2

This release completes Phase 1 (Critical Bug Fix) and Phase 2 (Quick UX Wins) from the roadmap.

Phase 1: Critical Bug Fix ✅

Fixed the "Accept All" flow - Users can now accept entire batches and see their terms in bucket pages.

  • ✅ Added Accept All button to batch detail page
  • ✅ Fixed bucket pages showing no items (issue #6)
  • ✅ Fixed export showing empty list (issue #8)
  • ✅ Improved error handling with better ApiRequestError details

Phase 2: Quick UX Wins ✅

Made the app more flexible and user-friendly

  • ✅ Lowered minimum terms from 20 to 1 (issue #1) - you can now capture single terms!
  • ✅ Collapsed accepted candidates into details section (issue #5) - cleaner UI during review

Also Included

  • Added deployment scripts to package.json for easier deployments

Full Changelog: v0.3.1...v0.3.2

v0.3.1 - AI Gateway Authentication Fixes

29 Dec 04:29

Choose a tag to compare

Fixes

  • AI Gateway Authentication: Properly configure CF_ACCOUNT_ID and CF_AIG_TOKEN for authenticated AI Gateway requests
  • SSE Streaming: Fix bucket conflict test to properly consume SSE streams
  • CI Linting: Resolve Biome linting errors

Documentation

  • Add ADR for Cloudflare Secrets Store integration

Full Changelog

v0.3.0...v0.3.1

v0.3.0 - Vertical Slice Architecture

28 Dec 18:02

Choose a tag to compare

What's Changed

Architecture

  • Vertical slice refactoring - Migrated both API and Web to vertical slice architecture for better feature isolation
  • ESLint boundaries - Added eslint-plugin-boundaries for enforcing feature isolation
  • Shared contracts - New @append/contracts package for shared types and validators

Features

  • SSE streaming - Real-time streaming for batch suggestion generation
  • Cloudflare Secrets Store - Integrated for secure OpenAI API key management
  • AI Gateway Lab - New package for LLM experimentation with batch mode

API Improvements

  • Migrated all routes to feature-based structure (/features/{feature}/)
  • Added proper idempotency key handling
  • Improved test isolation and compatibility

Web Improvements

  • TanStack Router integration with proper route organization
  • Feature-based component and API structure
  • Improved protected layout and navigation

Infrastructure

  • Added Biome for formatting/linting with pre-commit hooks
  • Updated CI workflows
  • Fixed vitest-pool-workers peer dependencies

🤖 Generated with Claude Code

v0.2.3

25 Dec 07:10

Choose a tag to compare

What's Changed

  • Update actions/setup-node action to v6 by @renovate[bot] in #11
  • Update actions/checkout action to v6 by @renovate[bot] in #10
  • Update dependency @cloudflare/workers-types to v4.20251224.0 by @renovate[bot] in #7
  • Update dependency @tanstack/react-devtools to v0.8.6 by @renovate[bot] in #3
  • Update dependency better-auth to v1.4.9 by @renovate[bot] in #4
  • Update pnpm to v10.26.2 by @renovate[bot] in #5
  • Update dependency @cloudflare/vitest-pool-workers to ^0.11.0 by @renovate[bot] in #6
  • chore(deps): update tanstack-router monorepo to v1.143.4 by @renovate[bot] in #16
  • chore(deps): update vitest monorepo to v4 (major) by @renovate[bot] in #17

New Contributors

Full Changelog: v0.2.2...v0.2.3

v0.2.2: Cloudflare AI Gateway Unified Billing

24 Dec 15:17

Choose a tag to compare

Changes

  • Unified Billing: Migrate from direct OpenAI API key to Cloudflare AI Gateway Unified Billing
    • Replace OPENAI_API_KEY secret with CF_AIG_TOKEN
    • Use cf-aig-authorization header instead of Authorization
    • Single billing through Cloudflare credits

Configuration

Required Worker secret:

pnpm wrangler secret put CF_AIG_TOKEN

Prerequisites:

  1. Load credits in Cloudflare Dashboard → AI → AI Gateway → Credits
  2. Create Cloudflare API token with AI Gateway permissions
  3. Ensure AI Gateway append-gateway exists

Files Changed

  • packages/api/src/lib/suggestions.ts - Auth header and config interface
  • packages/api/src/routes/batch.ts - Bindings and validation
  • docs/adr/0006-openai-gpt-5-mini-via-ai-gateway.md - Updated to Unified Billing
  • docs/vertical-slice.md - Updated Step 3 config

v0.2.1: CI/CD Test Integration

23 Dec 11:19

Choose a tag to compare

CI/CD Enhancement

This release adds automated testing to the deployment pipeline and documents the testing strategy.

What's New

CI/CD Integration

  • Tests and typecheck now run before every deployment to production
  • Deployment workflow updated to catch issues earlier in the pipeline
  • Prevents broken code from reaching production

Testing Strategy Documentation

  • Comprehensive testing strategy documented in docs/testing.md
  • Covers unit, integration, and E2E testing approaches
  • Includes guidance for D1 database testing, auth mocking, and deployment verification

Housekeeping

  • Cleaned up temporary task files post-Step 2
  • Added testing documentation to docs index

Previous Features (v0.2.0)

Step 2: Batch Input - Complete

  • Domain schema: Term, TermSense, Bucket with duplicate handling
  • Batch API: Parse multiline input, create buckets, accept terms
  • Web routes: Batch input UI with protected authentication
  • Comprehensive test coverage for batch operations

Step 1: Single-term flow - Complete (v0.1.0)

  • Google SSO authentication with allowlist
  • Single term input and bucket creation
  • D1 schema with migrations

Full Changelog: v0.2.0...v0.2.1

v0.2.0

23 Dec 07:54

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0