CHANGELOG.mdโข4.33 kB
# ๋ณ๊ฒฝ ์ด๋ ฅ (Changelog)
## [1.3.0] - 2025-01-16
### โจ ์๋ก์ด ๊ธฐ๋ฅ
- **Python ์ง์ ์ถ๊ฐ**
- Python ์ฝ๋ ์๋งจํฑ ๋ถ์ (ํจ์, ํด๋์ค, ๋ณ์ ๊ฒ์)
- Cyclomatic ๋ณต์ก๋ ๋ถ์
- Python AST ํ์ via subprocess
- TypeScript/JavaScript + Python ํ์ด๋ธ๋ฆฌ๋ ํ๋ก์ ํธ ์ง์
- **์ค๋งํธ ์ปจํ
์คํธ ์์ถ**
- ๊ธด ๋ํ์์ 50-70% ํ ํฐ ์ ๊ฐ
- ์ฐ์ ์์ ๊ธฐ๋ฐ ์ค์ฝ์ด๋ง (์ฝ๋ > ๋ต๋ณ > ์ง๋ฌธ > ๋ฉํ๋ฐ์ดํฐ)
- ๊ธด๊ธ๋ ์ธ์ ์์ถ ๋ ๋ฒจ (2K-6K ํ ํฐ)
- ์๋ ์ ์ฐ์ ์์ ์น์
์ ๊ฑฐ
- **์ข
ํฉ ํ
์คํธ ์ค์ํธ**
- 71๊ฐ ํ
์คํธ (100% ํต๊ณผ)
- Critical path ๊ฒ์ฆ
- MemoryManager, ContextCompressor, PythonParser, ProjectCache ๋จ์ ํ
์คํธ
- **๊ณตํต ํ์
์ ์**
- `src/types/tool.ts` ์ค์ํ๋ ํ์
์์คํ
- 170์ค ์ค๋ณต ์ธํฐํ์ด์ค ์ ๊ฑฐ
- 34๊ฐ ๋๊ตฌ ์ ์ฒด ํ์
์ผ๊ด์ฑ ๊ฐ์
### โก ์ฑ๋ฅ ๊ฐ์
- **25๋ฐฐ ๋น ๋ฅธ ์ฝ๋ ๋ถ์**: LRU ํ๋ก์ ํธ ์บ์
- 5 ํ๋ก์ ํธ ์บ์, 5๋ถ TTL
- ๋ํ ํ๋ก์ ํธ ๋ถ์: 8์ด โ 0.3์ด
- ์๋ ์บ์ ๋ฌดํจํ ๋ฐ ์ ๊ฑฐ
- **80% ํ ํฐ ์ ๊ฐ**: ์์ถ๋ ๋๊ตฌ ์๋ต ๋ฐ ์ค๋ช
- ๋๊ตฌ ์ค๋ช
: 8KB โ 2KB (70% ๊ฐ์)
- ๋๊ตฌ ์๋ต: 200-500 ํ ํฐ โ 30-100 ํ ํฐ (80% ๊ฐ์)
- ๋ธ๋ผ์ฐ์ ๋๊ตฌ: ์ปดํฉํธ ์์ฝ ํ์
### ๐ ๋ณ๊ฒฝ์ฌํญ
- **SQLite ๋ง์ด๊ทธ๋ ์ด์
**: JSON ํ์ผ ์ ์ฅ์๋ฅผ SQLite๋ก ๊ต์ฒด
- `memories.json` โ `memories.db` ์๋ ๋ง์ด๊ทธ๋ ์ด์
- ๋ฐฑ์
์์ฑ (`memories.json.backup`)
- ์นดํ
๊ณ ๋ฆฌ, ํ์์คํฌํ, ์ฐ์ ์์ ์ธ๋ฑ์ฑ
- ๋์์ฑ ์ ์ด ๋ฐ ํธ๋์ญ์
์ง์ ๊ฐ์
- **MemoryManager ๊ธฐ๋ฅ ๊ฐํ**
- `getByPriority(priority)`: ์ฐ์ ์์๋ณ ํํฐ๋ง
- `updatePriority(key, priority)`: ์ฐ์ ์์ ์
๋ฐ์ดํธ
- `search(query)`: ํค/๊ฐ ์ ๋ฌธ ๊ฒ์
### ๐ ์์ ์ฌํญ
- ProjectCache ๊ฒฝ๋ก ์ ๊ทํ (trailing slash ์ฒ๋ฆฌ)
- ์ปจํ
์คํธ ์์ถ ์ฃ์ง ์ผ์ด์ค (๋น ๋ฌธ์์ด, ์งง์ ํ
์คํธ)
- Python ํ์ ์์ ํ์ผ ์ ๋ฆฌ (์๋ฌ ์)
- ๋ชจ๋ ๋๊ตฌ ์๋ต ํ์ ์ผ๊ด์ฑ
### ๐๏ธ ์ธํ๋ผ
- vitest ํ
์คํ
ํ๋ ์์ํฌ ์ถ๊ฐ
- ํ
์คํธ ์คํฌ๋ฆฝํธ: `test`, `test:watch`, `test:ui`, `test:coverage`
- `tests/unit/` ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์์ฑ
- `vitest.config.ts` ์ค์ ์ถ๊ฐ
### ๐ฆ ์์กด์ฑ
- `vitest@^4.0.9` (dev)
- `@vitest/ui@^4.0.9` (dev)
- `better-sqlite3@^12.4.1`
- `@types/better-sqlite3@^7.6.13`
- `glob@^11.0.3`
- `@types/glob@^8.1.0`
---
## [1.1.0] - 2025-08-13
### โจ ์๋ก์ด ๊ธฐ๋ฅ
- **์๋งจํฑ ์ฝ๋ ๋ถ์ ๋๊ตฌ ์ถ๊ฐ**
- `find_symbol`: ํ๋ก์ ํธ ์ ์ฒด์์ ํจ์, ํด๋์ค, ๋ณ์ ๋ฑ ์ฌ๋ณผ ๊ฒ์
- `find_references`: ์ฌ๋ณผ์ ๋ชจ๋ ์ฐธ์กฐ ์์น ์ฐพ๊ธฐ
- ts-morph ๊ธฐ๋ฐ ์ ํํ AST ๋ถ์์ผ๋ก ๋จ์ ํ
์คํธ ๋งค์นญ๋ณด๋ค ์ ํ
- TypeScript, JavaScript, JSX, TSX ํ์ผ ์ง์
### ๐ ๋ฒ๊ทธ ์์
- **๋ธ๋ผ์ฐ์ ๋๊ตฌ ์์ **
- `browserUtils.ts` ์ถ๊ฐ: PC์ ์ค์น๋ Chrome/Edge/Brave ์๋ ํ์ง
- `monitorConsoleLogs`, `inspectNetworkRequests` ๋๊ตฌ๊ฐ ๋ธ๋ผ์ฐ์ ์คํ ๊ฒฝ๋ก๋ฅผ ์๋์ผ๋ก ์ฐพ๋๋ก ๊ฐ์
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ๋ช
ํํ ์๋ฌ ๋ฉ์์ง ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ๊ณต
- Windows/macOS/Linux ๋ชจ๋ ํ๋ซํผ ์ง์
## [1.0.6] - 2025-07-10
### ๐ ๏ธ ์ฑ๋ฅ ์ต์ ํ
- ts-morph `Project`๋ฅผ ์ฑ๊ธํด์ผ๋ก ์ฌ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌยทCPU ์ฌ์ฉ๋ ๊ฐ์
- `allowJs: true`, `skipLibCheck: true` ์ ์ฉ โ JavaScript ์ฝ๋ ํ์ฑ ์๋ ๊ฐ์
- ๋์ฉ๋ ์ฝ๋ ๋ถ์ ์ ์๋ต ์ง์ฐ ๊ฐ์(์ฒด๊ฐ 20~40%)
---
## [1.0.5] - 2025-07-10
### โจ ์ฃผ์ ๊ธฐ๋ฅ ์ถ๊ฐ
- **AST ๊ธฐ๋ฐ ์ฝ๋ ๋ถ์ ๋์
**
- `analyze_complexity`: Cyclomatic / Cognitive / Halstead ๋ณต์ก๋๋ฅผ AST๋ก ์ ํํ๊ฒ ๊ณ์ฐ
- `check_coupling_cohesion`: ImportยทRequireยทํด๋์คยทํจ์ ๊ตฌ์กฐ๋ฅผ AST๋ก ๋ถ์ํ์ฌ ๊ฒฐํฉ๋ยท์์ง๋ ํ๊ฐ ํฅ์
- `break_down_problem`: ์ฝ๋ ์
๋ ฅ ์ AST๋ก ํจ์ยทํด๋์คยท๋ณ์๋ฅผ ์๋ ๋ถํดํ์ฌ ํ์ ๋ฌธ์ ์์ฑ
- **์๋ก์ด ์์กด์ฑ**: `ts-morph`(v26) ์ถ๊ฐ
### ๐ ๋ฌธ์ ์
๋ฐ์ดํธ
- README: AST ๊ธฐ๋ฐ ๋ถ์ ๊ธฐ๋ฅ ์๊ฐ, ๋๊ตฌ ์ 31๊ฐ๋ก ์
๋ฐ์ดํธ
- smithery.json: ๋๊ตฌ ์ ๋ฌธ๊ตฌ(29โ31) ๋ฐ ๋ฒ์ 1.0.5 ๋ฐ์
### ๐ ๏ธ ๊ธฐํ ๋ณ๊ฒฝ
- `package.json` ๋ฒ์ 1.0.5
- ํ
์คํธ ์คํฌ๋ฆฝํธ ์์ฑยท์ญ์