# Changelog

## 0.3.2 (2026-06-14)

### Overview

v0.3.2 adds full i18n (internationalization) support — CLI messages and xlsx tracking plan headers in zh / en / ja / ko.

### Features

**i18n — multilingual support**:
- CLI output messages auto-detect language from system locale or `AE_LANG` env var
- Tracking plan xlsx sheet names, column headers, and type values adapt to `draft.meta.lang` or `--lang` flag
- xlsx reader supports all 4 language header variants simultaneously
- SDK type display names localized

**New module: `src/i18n/`**:
- `locale.ts` — independent CLI vs XLSX language detection
- `translate.ts` — `t('key', {params})` translation function with JSON resource files
- `resources/cli/{zh,en,ja,ko}.json` — ~100 CLI message strings × 4 languages

**CLI additions**:
- `ae-tracking plan upload --lang <zh|en|ja|ko>` — override xlsx output language
- `ae-tracking lang set|status|reset` — manage CLI display language, persisted to `~/.ae-tracking/config.json`
- `AE_LANG` environment variable — force CLI display language

### Dependencies

- Node.js ≥ 20 (runtime)
- @types/node: ^22.0.0 (dev)

## 0.3.1 (2026-05-31)

### Overview

v0.3.1 adds business dimension tracking plan generation, improves xlsx validation, and fixes multiple code generation and multi-platform bugs.

### Features

**generate-tracking-plan skill**:
- Business dimension collection — revenue model, core loop, functional entries, currency system
- Automatic event injection based on business dimension
- Simplified Phase 2 Refine flow

**xlsx validation (new)**:
- Object group child property type consistency check
- `event_prop_name_invalid` auto-fix — converts camelCase to snake_case

**Bug Fixes**:
- Fixed snake_case conversion for camelCase names 
- Fixed multi-platform client meta recording
- Fixed iOS autotrack enum names
- Fixed code generation property placeholders
- Fixed Python SDK track() parameter order 

### Dependencies

- Node.js ≥ 20 (runtime)
- @types/node: ^22.0.0 (dev, type definitions only)
- typescript: ^5.5.0

## 0.2.1 (2026-05-20)

### Overview

v0.2.1 adds multi-document/image PRD input support, Codex compatibility, and dependency updates.

### Features

**generate-tracking-plan skill**:
- PRD input now supports multiple paths (comma or newline separated)
- Image files (png/jpg/jpeg/webp) are processed via multimodal interpretation to extract UI elements and interaction flows
- Folder input: recursively scan subdirectories for md/pdf/docx/png/jpg/jpeg/webp files

**init CLI — Codex compatibility**:
- Detect Codex installation and create skill symlinks in Codex skills directory
- Link `AGENTS.md` → `CLAUDE.md` in project root when Codex is present
- `ae-tracking init --uninstall` removes both Claude Code and Codex symlinks

### Dependencies

- `@types/node`: ^20.12.0 → ^22.0.0
- `typescript`: ^5.5.0

## 0.2.0 (2026-05-17)

### Overview

v0.2.0 adds a new `data-integration-helper` skill, improves code generation flexibility with Excel-only workflows, and refines SDK integration.

### Features

**generate-tracking-code skill**:
- Support generating tracking code from Excel alone (without a full tracking plan)
- Tracking plan Excel now includes `collection platform` column
- Code generation parses the `collection platform` column to determine client/server/both event types
- Optimized SDK package import process

**data-integration-helper skill** (new):
- Q&A support for ThinkingData SDK integration and usage questions
- Covers LogBus2 data import tool usage
- Trigger keywords: how to integrate / SDK / tracking / error / usage / API / LogBus

### Dependencies

- Node.js ≥ 20
- exceljs, undici, commander

## 0.1.0 (2026-05-11)

### Overview

AE (AgenticEngine) tracking-plan agent. Claude Code skills for full lifecycle tracking management — from plan generation to code deployment.

### Features

**generate-tracking-plan skill**: Create AE tracking plans from templates, PRD, codebase, or conversation.

- Source types: template / prd / codebase / chat / website
- Client SDKs: Android (Java/Kotlin), iOS (Obj-C/Swift), OpenHarmony, JavaScript, Mini-program, Unity, Cocos
- Server SDKs: Java, Python, Go, Node.js, PHP, C#
- Modes: client_only / server_only / both
- Event platform: client / server / both (written to xlsx `collection platform` column)

**generate-tracking-code skill**: Generate SDK code from plan.

- Output: snippet (file) or insert (into project)
- Platform filter: client code includes events with platform=client/both; server code includes events with platform=server/both
- Server: LoggerConsumer + LogBus2 architecture

**xlsx import/export**:

- `ae-tracking code import-xlsx`: Parse xlsx to draft.json, infer sdk_integration_mode from `collection platform` column
- `ae-tracking plan draft`: Generate xlsx with `collection platform` column (client/server/client,server)

### CLI Commands

| Command | Description |
|---|---|
| `auth login/status/clear` | AE authentication (Chrome/Safari token extraction) |
| `plan draft/upload/fetch/delete/validate` | Plan management |
| `code import-xlsx/dryrun` | Code generation helpers |
| `wiki sync/query` | AE documentation sync |
| `init` | Initialize skill symlinks |

### Dependencies

- Node.js ≥ 20
- exceljs, undici, commander