ci(deps): Bump pnpm/action-setup from b307475762933b98ed359c036b0e51f26b63b74b to fc06bc1257f339d1d5d8b3a19a8cae5388b55320#10
Open
dependabot[bot] wants to merge 113 commits intomainfrom
Conversation
Add .env.production.example with all required/optional variables and docs/self-hosting.md covering Docker Compose deployment, TLS setup, backups, and troubleshooting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PostgreSQL backup via pg_dump with gzip compression and 30-day retention policy. Intended for cron scheduling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ove axios - Add getBillingStatus, createBillingPortal, BillingStatus type to api.ts - Replace raw fetch in nav.tsx and settings/page.tsx with typed functions - Remove local BillingStatus interface from settings page - Remove axios dependency (no longer needed after OpenAPI client deletion) - Zero raw fetch calls remain outside api.ts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…iance - Add coverageStatus field to ReconciliationItem (covered/noncovered/unknown) - Classify based on dateAcquired (>= 2026-01-01) and costBasis presence - Add coveredCount/noncoveredCount to ReconciliationReport summary - Add IRS View section with covered/noncovered badges to reconcile page - 7 new tests for coverage classification, all existing tests pass - Full EN/ZH i18n support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…admap Tax engine: add CostBasisStrategy interface and registerStrategy() API for pluggable international tax methods (weighted average, moving average). Fully backward-compatible — existing FIFO/LIFO/HIFO/Specific ID unchanged. Custom strategies resolve via registry fallback in the default switch branch. Landing: add EU (DAC8/Germany/France) & Japan roadmap banner with i18n. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ions - Rename DTax→dTax in README.md, add logo image and language switcher - Add README.zh.md (简体中文), README.zh-Hant.md (繁體中文) - Add README.ja.md (日本語), README.ko.md (한국어) - Add README.es.md (Español), README.pt.md (Português) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add README.{zh,zh-Hant,es,ja,ko,pt}.md to sync-public.yml filter
- Copy logo to docs/logo.png (apps/ excluded from public repo)
- Update logo path in all 7 READMEs: apps/web/public/ → docs/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 1: JSON-LD structured data (Organization, SoftwareApplication, BreadcrumbList, FAQPage) Phase 2: Page-level SEO metadata for 8 public pages with hreflang alternates Phase 3: MDX blog infrastructure (next-mdx-remote, blog lib, list/detail pages, sitemap, nav) Phase 4: 20 evergreen articles EN + 20 ZH (crypto tax guides, exchange tutorials, comparisons) Phase 5: npm package keywords/description optimization (tax-engine + cli) Phase 6: GEO optimization (FAQ sections on features/pricing/for-cpas, AI crawler robots.txt rules) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…O, PMPA, TOTAL_AVERAGE) - GERMANY_FIFO: FIFO with 12-month Spekulationsfrist tax-free exemption - PMPA: French weighted average cost (Prix Moyen Pondéré d'Acquisition) - TOTAL_AVERAGE: Japanese total average method (総平均法) - 26 new tests (817 total), all passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update all domain references to getdtax.com across 18 files. Add manifest.json, service worker, and PWA meta tags for mobile app experience. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace millisecond approximation (365.25 days) with calendar-based date comparison. IRS requires "more than one year" from the day after acquisition. Assets held exactly 1 year are now correctly classified as SHORT_TERM. Updated all 7 method files + added boundary tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Save originalAmount before mutation and use threshold comparison instead of post-mutation arithmetic reconstruction. Prevents ghost lots from persisting in the lot pool after wrap operations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…elpers Move duplicated getHoldingPeriod function from 7 method files into a shared module. Reduces duplication and ensures holding period logic is maintained in a single place. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…al methods Import TxType from @dtax/shared-types in parsers/types.ts instead of maintaining a separate inline union. Add GERMANY_FIFO, PMPA, and TOTAL_AVERAGE to TaxSummary.method type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
IRS wash sale rule applies to acquisitions 30 days before OR after a loss sale. Risk scanner previously only checked forward direction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
451-line file split into pdf-utils.ts (61), render-form8949.ts (182), render-schedule-d.ts (181), with original as 86-line orchestrator. Public API unchanged, all 819 tests pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added 17 new tests: international methods, currency conversion, JSON validation, compare output, edge cases, and multi-file merging. Total: 71 tests (30 integration + 41 unit). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rsion Use SheetJS to convert Excel files to CSV on the frontend before upload. Zero backend changes — all 23 existing CSV parsers work transparently. Binance and other exchanges that export Excel are now supported. - Accept .csv, .xlsx, .xls in drag-drop zone and file picker - Dynamic import of xlsx library (only loaded when needed) - Updated drop zone text for all 7 locales Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Support Binance trade history exports in 11 languages: EN, ZH (Simplified), ZH-Hant (Traditional), JA, KO, TR, ES, PT, DE, FR, RU, VI. Uses column name mapping with Unicode normalization (handles Turkish İ→i case). Detection uses language-specific header combinations to avoid false positives with other exchange formats. Added 21 new tests covering all supported languages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… parser Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rser Add multi-language column name mappings (ZH-Hans, ZH-Hant, JA, KO) using shared col-resolver pattern. Updates both app format and newer format parsers to use resolveCol() for all column access. Adds detection for non-English headers in isCryptoComCsv() and 10 new test cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add multi-language (ZH/ZH-Hant/JA/KO) CSV column resolution and side-value mapping for the OKX parser using shared col-resolver. Includes 14 new tests for Chinese, Japanese, and detection guards. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create eslint.config.mjs for apps/api and packages/tax-engine - Install typescript-eslint and eslint as devDependencies - Disable no-require-imports for existing test code compatibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add "pnpm start" to root package.json (turbo start) - Register start task in turbo.json with build dependency and persistent Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CLI package uses Node.js globals (console, process, fs) but was missing @types/node, causing DTS generation to fail with "Cannot find name 'console'" errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename admin audit operationId from getAuditLogs to adminGetAuditLogs to resolve duplicate with /audit route - Install @openapitools/openapi-generator-cli as web devDependency - Add --generator-key api to openapi script for openapitools.json config Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
These files are auto-regenerated by Astro on dev/build/typecheck and should not be tracked in version control. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- API healthcheck: wget → node fetch (node:24-slim has no wget) - Web healthcheck: localhost → 0.0.0.0 (Next.js standalone binds 0.0.0.0) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Nginx: /api/api/* strips prefix, /api/* preserves full path - Fix NEXT_PUBLIC_API_URL example (remove trailing /api) - Update server runbook with deployment workflows, migration guide, troubleshooting, and user initialization commands Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… proxy
- i18n 10 sub-page metadata (title/description) with locale maps (7 locales)
- Enhance buildMetadata to accept string | Record<AppLocale, string>
- Use routing.locales instead of duplicated LOCALES array
- i18n JSON-LD structured data via getTranslations("schema") (22 keys × 7)
- Fix CPA price inconsistency: unified to $499 across JSON-LD, metadata, translations
- i18n breadcrumb names (Home/Blog) via schema namespace
- Fix global-tax-rates breadcrumb URL hardcoded /en/ → dynamic locale
- Add nginx /ingest proxy for PostHog ad-blocker bypass in production
- Harden proxy with rate limit (10r/s burst 20) and short timeouts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…uild Blog MDX files are read at runtime (fs.readdirSync + force-dynamic), so they can be updated without rebuilding the Docker image. - Dockerfile: copy content/blog into standalone image as default - docker-compose: mount ./apps/web/content/blog as read-only volume - Update flow: git pull → content updates → no rebuild needed - Fall back to baked-in content if volume not mounted Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Covers 6 update types (blog-only/web/api/config/full/migration), new env vars (Turnstile), verification steps, and auto-pull cron. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lustration Replace logo-light.svg (auto-rendered "d Tax.d♡" text) with a clean isometric illustration: code editor + BTC coin + tax form + calculator. Updated across all 7 locale index.mdx files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Full server setup/recovery in one script: 1. Check prerequisites (.env, docker, git) 2. Create dirs + set permissions 3. Build Docker images 4. SSL cert (skip if exists, auto-apply if not) 5. Start all services 6. Wait for health checks 7. Configure cron (idempotent: removes old, adds new) 8. Display final status Safe to re-run: won't duplicate cron, won't re-apply cert, won't lose data (docker compose down preserves volumes).
auto-update.sh: cron-driven automatic deployment - Detects change type from git diff (blog/api/web/migration) - Blog-only: skip (volume mount auto-updates) - API/Web code: build affected image + restart - Database migration: backup + migrate + restart - Health check after restart, all logged to auto-update.log setup-server.sh: replace simple git pull with auto-update in cron
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
auto-update.sh: - Add lock file to prevent concurrent execution - Add log rotation (keep 5000 lines max) setup-server.sh cron: - Move auto-update to :30 (avoid conflict with 02:00 backup) - Docker cleanup: prune -af --filter until=168h (7 days) - Auto-truncate cron.log when >10MB
Touch .maintenance to pause auto-update during manual ops. Remove the file to resume: rm /data/dtax/.maintenance
Removed (replaced by cloud-deploy-update-guide.md): - deploy-guide.md (dtax-deploy based, outdated) - server-runbook.md (GHCR pull mode, outdated) - ghcr-push-guide.md (replaced by scripts/ghcr-push.md) - self-hosting.md (old architecture with redis, wrong nginx) Kept: - cloud-deploy-update-guide.md (current, source-based deploy) - deployment-checklist.md (security checklist, still relevant) - scripts/ghcr-push.md (script usage doc)
Absolute /introduction/ path bypasses Starlight locale routing. Change to relative slug 'introduction' so each locale resolves to its own introduction page (e.g. /zh-cn/introduction/). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Cloudflare Workers configuration
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from b307475762933b98ed359c036b0e51f26b63b74b to fc06bc1257f339d1d5d8b3a19a8cae5388b55320. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](pnpm/action-setup@b307475...fc06bc1) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: fc06bc1257f339d1d5d8b3a19a8cae5388b55320 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
namjar
added a commit
that referenced
this pull request
Mar 30, 2026
chore(deps): Bump zod from 3.25.76 to 4.3.6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps pnpm/action-setup from b307475762933b98ed359c036b0e51f26b63b74b to fc06bc1257f339d1d5d8b3a19a8cae5388b55320.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)