Cheolsu Proxy v0.1.2
์์กด์ฑ ์ ๋ฉด ๋ฒ์ ์ ๊ณผ ๋๊ท๋ชจ ๋ณด์ยท์์ ์ฑ ๋ฒ๊ทธ ์์ , ๋ฌธ์ ์ ํฉ์ฑ ๊ฐ์ ์ ํฌํจํ ์ ์ง๋ณด์ ๋ฆด๋ฆฌ์ฆ์ ๋๋ค.
Highlights
- ์คํฌ๋ฆฝํ ์์ง(deno_core/V8/oxc), MCP(rmcp), Tauri ๋ฑ Rust/JavaScript ์์กด์ฑ์ ์ ๋ฉด ๋ฒ์ ์ ํ์ต๋๋ค.
- ์ธ์ฆ์ SAN ๊ฒ์ฆยทmTLS fail-open ๋ฑ ๋ณด์ ๊ฒฐํจ๊ณผ ํจ๋ยท์์ฒญ ๋ฌด๊ฒฐ์ฑยท์์ถ ํญํ ๋ฐฉ์ด๋ฅผ ํฌํจํ High ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค.
- ์คํฌ๋ฆฝํ ์์ง์ ๋ฌดํ ๋ฃจํยท๋ฉ๋ชจ๋ฆฌ ํญ์ฃผ ์ ๋ฐ๋ชฌ์ ๋ณดํธํ๊ณ , ํ ํ์์์/๊ฐ์ ์ข ๋ฃ race๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.
- ํ๋ฌธ GET-over-CONNECT(ws://) ์ธํฐ์ ํธ ์ ๋ฌดํ ๋ธ๋ก ํ๊ท์ ์ฌ๋ก์ฐ ํด๋ผ์ด์ธํธ DoS๋ฅผ ๋ฐฉ์งํ์ต๋๋ค.
- SSE/WebSocket UTF-8 ์ฒ๋ฆฌ, multipart ํฌ๊ธฐ ๊ณ์ฐ, ์์คํ ํ๋ก์ ๋ณต์, ์ค๋กํ ํ๋ฆฌ์ ์ ์ค ๋ฑ ๋ค์ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค.
- MCP ๋๊ตฌ(48๊ฐ)ยทCLIยท์คํฌ๋ฆฝํ /SSEยท์ค์น ๋ฌธ์๋ฅผ ์ค์ ๊ตฌํ๊ณผ ๋๊ธฐํํ๊ณ GitHub Pages๋ฅผ ๊ฐฑ์ ํ์ต๋๋ค.
Download
Cheolsu.Proxy_0.1.2_aarch64.dmgโ macOS app bundle (Apple Silicon)Cheolsu.Proxy_aarch64.app.tar.gzโ updater archive
Note: This build is unsigned. macOS Gatekeeper will block the app on first launch.
After moving the app to/Applications, open Terminal and run:xattr -cr /Applications/Cheolsu\ Proxy.appThis removes the quarantine attribute so the app can launch normally. You only need to do this once.
Full Commit History (37 commits since v0.1.1)
Click to expand full commit history
8b918942 fix(mcp): ์ฌ์ฉ๋์ง ์๋ tool_router ํ๋ ์ ๊ฑฐ (๋ฆด๋ฆฌ์ค ๋น๋ ์คํจ ์์ )
b9acd042 chore: release v0.1.2
feb7019b style(docs): oxfmt ๋งํฌ๋ค์ด ํ
์ด๋ธ ์ ๊ทํ
0e42aed8 docs(testing): ํ
์คํธ ๊ฐ์ด๋ ๋ณธ๋ฌธ ์์ฑ (์คํ
๋์ฒด)
bd35c98b docs: ๊ณ ์ TLS ๋
ธํธ ์ ๊ฑฐ ๋ฐ ํ
์คํธ ๊ฐ์ด๋ ์์ฑ
a92d8563 docs(install): ์ค์น ๊ฐ์ด๋๋ฅผ ์ค์ ๋น๋/์ํฐํฉํธ์ ๋๊ธฐํ
7fa5dd9a docs(scripting/sse): ์คํฌ๋ฆฝํ
ยทSSE ๋ฌธ์๋ฅผ ์ค์ API์ ๋๊ธฐํ
77650235 docs(cli): CLI ๋ฌธ์๋ฅผ ์ค์ clap ์ ์์ ๋๊ธฐํ
0769a27b docs(mcp): MCP ๋๊ตฌ ๋ฌธ์๋ฅผ ์ค์ ๊ตฌํ(48๊ฐ)๊ณผ ๋๊ธฐํ
9f3cdb0b fix(query-filter): ํํฐ ๊ฐ์ ํฐ๋ฐ์ดํ๋ฅผ escapeํด round-trip ๋ณด์กด
dda861ad fix(websocket): ๋ฉ์์ง์ ํ์์ฉ URL์ ์ค์ด UUID ๋
ธ์ถ ํ๊ท ์์
3f8d33ce fix(system_proxy): ์ด์ ํ๋ก์ ๋ณต์์ ํ์ฑํ ๋น์ ์๋น์ค๋ก ํ์
c0d570cc fix(script_bridge): ์คํฌ๋ฆฝํธ ๋ฐ๋ ๊ต์ฒด ์ stale content-length/encoding ํค๋ ์ ๊ฑฐ
5cdc8f47 fix(scripting): ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ๊ฒฌ ์คํฌ๋ฆฝํธ/๊ท์น ํ๋๋ 4๊ฑด
54da09b2 fix(proxy): ํ๋ฌธ GET-over-CONNECT ClientHello ์ฝ๊ธฐ ๋ฌดํ ๋ธ๋ก ํ๊ท ์์
4fa5f522 fix: get_learned_tls_strategies๊ฐ ํญ์ ๋น ๋ฐฐ์ด ๋ฐํํ๋ ๋ฌธ์ (L16)
1730a6e3 fix: WebSocket conn_id๋ฅผ URI ๋์ ์ฐ๊ฒฐ๋ณ ๊ณ ์ ID๋ก ๋ณ๊ฒฝ (L2)
fa870418 fix: load_script ๋๋ ํฐ๋ฆฌ ๊ฒฝ๊ณ ์ถ๊ฐ (ํ ๋๋ ํฐ๋ฆฌ ํ์ดํธ๋ฆฌ์คํธ, L12)
b62ec790 fix: multipart ๋ฐ์ด๋๋ฆฌ ํํธ size ๋ถ์ ํ โ ๋ฐ์ดํธ ๋จ์ ํ์๋ก ์ฌ์์ฑ (FE-L1)
bd42e6e0 fix: ํ๋ก ํธ์๋ Low ๋ฒ๊ทธ 3๊ฑด (๋ถ์ count/N+1 ์คํ/GraphQL ํญ)
b54fdf9f fix: src-tauri Low ๋ฒ๊ทธ 2๊ฑด (๋ก๊ทธ ๊ฒฝ๋ก ํ์, advanced_repeat ์ง์ฐ ์์)
9ed3e821 fix: load_session extend๊ฐ MAX ์ํ์ ์ฐํํ๋ ๋ฌธ์ (L14)
ac858bf3 fix: ScriptHandle::shutdown์ด ๋ฉ์ถ ์์ง์์ ๋ฌดํ ๋ธ๋กํน๋๋ ๋ฌธ์ (L11)
798d4dc5 fix: proxy_daemon Low ๋ฒ๊ทธ 6๊ฑด (๋ธ๋กํนIO/๋์/WS/gRPC)
73f04801 fix: proxyapi_v2 Low ๋ฒ๊ทธ 3๊ฑด (ClientHello read/eager abort/๋ฉํธ๋ฆญ)
4b851dfa fix: ํ๋ก ํธ์๋ Medium ๋ฒ๊ทธ 8๊ฑด (cURL/์ทจ์๊ฐ๋/๋์/ํํฐ/๋๊ธฐํ/Waterfall)
8659e798 fix: start_proxy_v2 ๋์ ํธ์ถ ์ DaemonConnection ๋์ ๋ฐฉ์ง (M14)
43476bcd fix: proxyapi_v2 Medium ๋ฒ๊ทธ 2๊ฑด (Upstream CONNECT over-read, IPv6 SOCKS5)
b6ac6df7 fix: proxy_daemon Medium ๋ฒ๊ทธ 5๊ฑด (curl/SSE/๋ธ๋ ์ดํฌํฌ์ธํธ/์์คํ
ํ๋ก์/๋ถ์)
4a43cccc fix: ops Medium ๋ฒ๊ทธ 3๊ฑด (SSE UTF-8 ํจ๋, ID ์ถฉ๋, ์ธ์
๊ท์น ๋๊ธฐํ)
cf593ed8 fix: ๋ฐ์ดํฐ ๋ชจ๋ธ Medium ๋ฒ๊ทธ 3๊ฑด (UTF-8 ํจ๋/์์, HAR Set-Cookie)
4d41dad3 fix: ํ๋ก ํธ์๋ High ๋ฒ๊ทธ 2๊ฑด ์์ (์ด๋ฏธ์ง ์์/๊ท์น ํ์ด์ง ํฌ๋์)
f0c36725 fix: throttle ํ๋ฆฌ์
(gprs/3g/lte/wifi)์ด ํ๋ก์ ์ฌ์์ ์ ์ ์ค๋๋ ๋ฌธ์ ์์
67a24381 fix: ์คํฌ๋ฆฝํ
์์ง ์์ ์ฑ (๋ฌดํ ๋ฃจํ/๋ฉ๋ชจ๋ฆฌ ํญ์ฃผ ์ ๋ฐ๋ชฌ ๋ณดํธ)
ee5c939d fix: ๋ฐฑ์๋ High ๋ณด์ ๋ฒ๊ทธ 2๊ฑด ์์ (์ธ์ฆ์ SAN ๋ถ์ผ์น, mTLS fail-open)
ae05aee0 fix: ๋ฐฑ์๋ High ๋ฒ๊ทธ 4๊ฑด ์์ (ํจ๋/์์ฒญ ๋ฌด๊ฒฐ์ฑ/์์ถ ํญํ)
d01b2cdd chore: ์์กด์ฑ ์ ์ฒด ๋ฒ์ ์
(deno_core/v8/oxc, rmcp, tauri ๋ฑ)