미배포Unreleased
현재 미배포 변경사항 없음No unreleased changes at this time
wowTerminal의 버전별 주요 변경사항입니다. 분류: 추가 · 변경 · 수정 · 제거. Notable changes in each wowTerminal release. Categories: Added · Changed · Fixed · Removed.
현재 미배포 변경사항 없음No unreleased changes at this time
prompt() dialog (unsupported in Tauri's WKWebView) was replaced with an in-app input modal. #134max, OpenAI의 minimal 등 제공자별 단계도 사용 가능하며, 백엔드 등록 필드도 자유 입력(제안 포함) 방식으로 변경.AI panel: a 🧠 dropdown overrides the reasoning effort per session (auto = backend setting, or minimal/low/medium/high/max). Values are passed through verbatim, so provider-specific levels (e.g. GLM's max, OpenAI's minimal) work; the backend registration field is now free-form with suggestions. #129claude --dangerou 입력 시 claude --dangerously-skip-permissions을 → 로 수락. SSH 원격에서도 동작(명령 실행 없음).Inline autocomplete now suggests flags and subcommands from a built-in dictionary (git, docker, claude, kubectl, npm, systemctl, ssh, apt, cargo) — e.g. typing claude --dangerou suggests claude --dangerously-skip-permissions to accept with →. Works over SSH too (no command execution). #122NSLocalNetworkUsageDescription을 추가해 macOS가 로컬 네트워크 권한 프롬프트를 표시하고 시스템 설정 → 개인정보 보호 및 보안 → 로컬 네트워크에 앱을 등록 — 기존에는 LAN 연결이 조용히 차단됐음. 기존 설치 사용자: 해당 설정에서 wowTerminal을 한 번 켜면 됩니다.macOS: SSH/SFTP connections to local-network hosts (e.g. 192.168.x.x) no longer fail with "No route to host". The app bundle now declares NSLocalNetworkUsageDescription, so macOS shows the Local Network permission prompt and registers the app under System Settings → Privacy & Security → Local Network instead of silently blocking LAN connections. Existing installs: enable wowTerminal there once. #119passwd, ssh-key passphrase) no longer leak into the command history or inline autocomplete. The terminal now detects password prompts from the output and excludes that input line from history and suggestions. #118com.oopnwow.wowterminal으로 변경됨(기존: com.wowterminal.app) — 프로젝트 자체 도메인 기반의 올바른 reverse-DNS 식별자이며, 데스크탑·iPad(iOS)·Android가 공유. 앱 데이터/설정은 번들 ID가 아닌 wowterminal 경로에 저장되므로 macOS 설정은 그대로 유지됨. Windows는 다음 업데이트 시 기존 항목 옆에 별도 설치될 수 있음(일회성).App bundle identifier is now com.oopnwow.wowterminal (was com.wowterminal.app) — a proper reverse-DNS identifier under the project's own domain, shared by desktop, iPad (iOS) and Android. App data/settings are stored under the wowterminal path (not the bundle ID), so macOS settings carry over; on Windows the next update may install alongside the old entry rather than upgrading in place (one-time). #114backward-kill-word), Cmd + Delete는 줄 전체를 삭제(Ctrl-U 전송). 전 플랫폼 공통.Terminal deletion shortcuts: Option/Alt + Delete deletes the previous word (sends ESC+DEL → readline backward-kill-word), and Cmd + Delete clears the whole line (sends Ctrl-U). Works on all platforms. #112TERM 환경변수 없이 시작됐음. portable-pty가 TERM을 설정하지 않고, Finder/Dock에서 앱을 열면 GUI 프로세스에도 TERM이 없어 zsh가 커서를 왼쪽으로 이동할 수 없어 백스페이스가 공백으로 그려짐. 로컬 PTY 생성 시 이제 TERM=xterm-256color와 COLORTERM=truecolor를 명시적으로 설정. SSH는 pty-req로 이미 올바른 터미널 타입을 전송하므로 영향 없음. 메인테이너는 터미널 경유 실행으로 TERM을 상속해 항상 정상이었음 — Finder 실행 사용자만 영향.Local shell: fixed the long-standing bug where Backspace acted like Space and Korean input piled up jamo — the root cause was the local PTY starting without a TERM variable: portable-pty doesn't set one, and when the app is launched from Finder/Dock the GUI process has no TERM to inherit. With TERM unset, zsh can't move the cursor left and redraws Backspace as spaces. The local PTY now sets TERM=xterm-256color and COLORTERM=truecolor. SSH already sent a proper terminal type and is unaffected. This is why it always worked for the maintainer (terminal-launched, TERM inherited) but broke for users opening from Finder. #109devicePixelRatio에서 커서·글자 레이어가 어긋남. 이제 정수 DPR일 때만 WebGL을 사용하고, 소수 DPR(예: 150%, 125%)은 DOM 렌더러로 폴백(커서가 글자와 정렬됨). macOS·Linux 및 Windows 100%/200% 배율은 영향 없음.Windows: the terminal cursor was drawn above the text at fractional display scaling (e.g. 150%). The xterm WebGL renderer rounds cell height to integer device pixels, so at a fractional devicePixelRatio the cursor and glyph layers misalign. WebGL is now used only at integer DPR; at fractional DPR the app falls back to the DOM renderer (cursor stays aligned with the text). Mac/Linux and Windows at 100%/200% are unaffected. #108claude --dangerously-skip-permissions. →/End로 수락.Inline autosuggestion now includes a built-in seed list of useful commands, so they're suggested even before you've typed them (history still takes priority). First seed: claude --dangerously-skip-permissions. Accept with →/End as usual. #107Tab → {자동완성}에서 → {자동완성}으로 변경됨Inline history autosuggestion is now accepted with → (Right Arrow) / End instead of Tab — Tab was clashing with the shell's own file/dir/command completion (when a suggestion showed, Tab accepted it instead of completing). Now Tab always goes to the shell for completion, and →/End accept the suggestion (only at end of line, where the suggestion exists; arrow movement / Ctrl+→ / Shift+→ are unaffected). This is the fish / zsh-autosuggestions / Warp convention. The on-screen hint now reads → {suggestion} #102term.paste 경유, 브래킷 페이스트 모드 준수); Ctrl+Shift+C는 항상 선택 영역 복사; Ctrl+Shift+V는 붙여넣기. macOS는 ⌘C/⌘V 그대로 유지Windows/Linux copy/paste keyboard shortcuts — previously copy required select → right-click → context menu. Now: Ctrl+C copies when text is selected and otherwise passes through as SIGINT (the Windows Terminal / VS Code convention, mirroring the existing macOS ⌘C); Ctrl+V pastes (via term.paste, honoring bracketed-paste mode); Ctrl+Shift+C always copies the selection; Ctrl+Shift+V pastes. macOS keeps ⌘C/⌘V unchanged #101input/kd/시퀀스 진단 데이터 기반으로 수정, 추측 아님 (#100): 단독 자모(ㅇ, ㅏ)가 입력되지 않음 — 미러 경로의 조합 누출을 막는 onData 내 호환 자모 드롭 가드가 컴포지션 지원 Mac에서 정상 커밋된 단독 자모까지 차단하고 있었음; 조합 중인 음절이 커서에 가려 표시되지 않음(가나다 입력 시 가만 보임) — macOS 전용으로 설정된 .composition-view 오버레이 숨김이 미러가 아닌 네이티브 IME를 사용하는 컴포지션 경로에도 적용되고 있었음; 우측 Cmd를 한/영 키로 리매핑하면 마지막 한글 음절이 중복 입력됨 — 조합 중 입력 언어를 전환하면 해당 음절이 조합 중과 compositionend 시 각각 한 번씩 총 두 번 전송됐음macOS: three Korean input bugs on composition-capable Macs (signed build) — each diagnosed from live input/kd/sequence telemetry on a locally-signed build, not guessed (#100): standalone jamo (ㅇ, ㅏ) wouldn't type — the lone-compatibility-jamo drop in onData (a guard for the mirror path's composition leakage) was also dropping legitimately-committed standalone jamo on a composition machine; the syllable being composed was hidden by the cursor (typing 가나다 showed only 가) — the .composition-view overlay hide scoped to macOS was also suppressing it on the native-IME composition path where the mirror never draws; Right-Cmd remapped as 한/영 duplicated the last Korean syllable — toggling the input language mid-composition committed the syllable once during composition and again on compositionend #100input/kd 진단 데이터 기반 분석, 추측 아님macOS: "Backspace behaving like Space" when deleting Korean — macOS inline predictive text commits the Space key as a non-breaking space (U+00A0) instead of a regular space; zsh's line editor desyncs its cursor column count, so Backspace's erase lands as a blank in the wrong place, leaving characters on screen. Input is now normalized — U+00A0 from the IME is sent to the shell as a regular space — on both the native and mirror paths. Diagnosed from the live input/kd diagnostics, not guessed #100v* 태그로 빌드)는 변경 없음; 로컬 빌드는 호스트 패널 푸터에 · local을 표시하고 GlitchTip 진단에 dist: local 및 git 짧은 해시를 태그함 — #100 진단 중 게이트 실행이 실제 사용자 데이터와 혼재했던 혼란을 방지Build provenance marking — self-built/local binaries (e.g. the input-gate builds) now identify themselves separately from the official CI release, which previously was impossible since both reported the same version string. Official releases (built in CI from a v* tag) are unchanged; a local build shows · local after the version in the host-panel footer and tags its GlitchTip diagnostics with dist: local and the git short rev — preventing the exact confusion that hit during the #100 diagnosis, when gate runs mixed into real-user data under the same release tag #100compositionstart 이전에 미러를 활성화해 잘못된 문자를 전송하고, 활성 상태가 영어 모드까지 이어져 미러 이벤트를 기다리다 백스페이스를 삼킴. 이제 실제 한글을 커밋하는 컴포지션(229-only Mac이나 악센트 팝업/딕테이션은 절대 발생시키지 않는 신호)으로 컴포지션 지원 Mac을 감지하고, 이후 네이티브 IME에 입력을 전적으로 위임. 기기의 라이브 wt.ime.local-diag(nCS:15, n229:19) 기반 진단. 입력 자가 진단에 컴포지션 경로 및 영한 전환 후 삭제 검증 추가macOS: Korean typing corrupted, and Backspace swallowed after switching English→Korean→English, on Macs that handle Korean through standard composition events (newer machines / the installed build) — the custom IME mirror, which exists for older 229-only WKWebViews, fought the native IME: the first keyCode-229 of each syllable briefly engaged the mirror before compositionstart, sending stray characters, and the engaged state lingered into English so a Backspace was held back waiting for a mirror event that never came. The app now detects a composition-capable Mac by a composition that commits actual Hangul (a signal a 229-only Mac never produces, and accent-popup/dictation never trip) and from then on always lets the native IME handle input, never engaging the mirror or touching the composing textarea. Diagnosed from the machine's live wt.ime.local-diag (nCS:15, n229:19), not guessed. The input self-test now also drives the real composition path and verifies deletion works after an EN↔KO switch #100\r\n\x1b[33m… 그대로 출력되는 문제 — 11개 언어 문자열이 이중 이스케이프(double-escaped)로 커밋되어 writeln이 백슬래시를 문자 그대로 출력함. (2) 재연결 후 클릭 시 0;90;14M… 같은 쓰레기 문자가 입력되는 문제 — 종료된 세션의 프로그램이 활성화했던 SGR 마우스 추적 등의 DEC 사설 모드(마우스, 괄호형 붙여넣기, 앱커서키, 대체화면, 커서숨김)가 재스폰 시 초기화되지 않음. (3) 재연결 후 빈 셸에 착지하고 tmux 세션으로 돌아오지 않는 문제 — 호스트 레벨 자동 연결만 재실행하고 창이 연결됐던 구체적인 tmux 세션을 잊음. 이제 창에 알려진 tmux 세션이 있으면 우선 재연결(-d로 구세션 클라이언트 분리)Reconnect (#96) follow-up, from a user screen recording (#99): (1) "[disconnected — press Enter to reconnect]" / "[reconnecting…]" messages printed as literal \r\n\x1b[33m… text — all 11 language strings were committed double-escaped, so writeln printed the backslash-escapes verbatim. (2) Clicking after reconnect typed garbage like 0;90;14M… into the new shell — the dead session's program had enabled SGR mouse tracking, and leaked DEC private modes (mouse tracking, bracketed paste, application cursor keys, alternate screen, hidden cursor) were not reset on re-spawn; they are now reset locally without clearing the buffer. (3) Reconnecting landed in a bare shell instead of the pane's tmux session — only the host-level auto-attach was re-run; the pane's known tmux session now takes precedence and is re-attached with dead-client detach #99df -h 입력 시 정확히 6자가 PTY로 전송됐으나 프롬프트에는 여전히 ddf -hdff f -h가 표시됨. 따라서 결함은 입력 이후 단계(셸 echo/xterm 파싱 또는 렌더러)에서 발생. macOS IME 진단이 이제 WebGL 렌더러 활성 여부(컨텍스트 손실 포함), 전송 시점 커서 라인 + 상위 3줄의 버퍼 텍스트, 마지막 10개 PTY echo 청크(이스케이프 처리, 각 160자)도 수집함. #83 종료 시 제거 예정Internal (temporary diagnostic, #83): the v0.14.7 data from the affected newest-Mac cleared the input path — typing df -h sent exactly 6 chars to the PTY yet the prompt still showed ddf -hdff f -h, so the artifacts are born after input: in the shell echo/xterm parsing or in the renderer. The macOS IME diag now also captures whether the WebGL renderer is active (+ context losses), the buffer text of the cursor line + 3 lines above at send time, and the last 10 PTY echo chunks (escaped, 160 chars each). Removed once #83 is closed #83stopPropagation만 호출하고 preventDefault는 호출하지 않아 WebKit의 기본 동작이 숨겨진 textarea에 클립보드 텍스트를 삽입하고, 이후 keyCode-229 키다운이 IME 미러를 활성화해 빈 기준선과 diff하여 잔여 내용을 다시 PTY로 전송. 이제 미러 활성화 시 textarea 내용을 diff 기준선으로 스냅샷하고, paste 리스너가 다음 틱에 잔여 내용을 제거. 새 자가 진단 시나리오(붙여넣기 → 한국어 입력이 정확히 한 번만 붙여넣기 텍스트를 산출해야 함)로 커버됨macOS: paste being inserted again on the next keystroke — xterm's paste handler calls stopPropagation but not preventDefault, so WebKit's default action also wrote the clipboard text into the hidden textarea; the next keyCode-229 keydown engaged the IME mirror, which diffed against an empty baseline and re-sent the residue. The mirror now snapshots the textarea content as its baseline when it engages, and a paste listener clears the residue on the next tick. Covered by a new self-test scenario (paste → Korean typing must yield the pasted text exactly once) #97localStorage 원샷 플래그로 실행하면 실제 입력 경로(영어 타이핑, 백스페이스, 컴포지션 전환 및 삭제 포함 macOS IME 미러)를 합성 이벤트로 새 로컬 탭에 구동하고, 셸의 출력 파일을 외부에서 어서트함. 이제 릴리스 체크리스트에 포함됨: 모든 릴리스에서 한국어/영어 입력 검증. 플래그 없이는 비활성화됨Internal: built-in input self-test harness — launching with a one-shot localStorage flag drives the real input paths (plain typing, Backspace, the macOS IME mirror with composition transitions and deletion) with synthetic events into a fresh local tab, and the shell's output files are asserted externally. Now part of the release checklist: Korean/English input is verified on every release. Inert without the flag #95\\?\C:\로 표시되는 문제 — 로컬 목록이 Rust canonicalize의 verbatim 접두사 경로를 반환하고(/ 정규화를 건너뜀), UI가 로컬 경로를 POSIX 방식으로 결합해 ..가 /로 축소되고 자식 경로가 \\?\C:\/dir이 됨. verbatim 접두사(\\?\UNC\ → \\ 포함)를 제거하고 로컬 창은 구분자 인식 경로 결합(백슬래시, 드라이브 루트 C:\ 하한) 적용; 원격 SFTP 창은 POSIX 결합 유지. macOS 로컬 경로는 백슬래시 없으므로 변경 없음Windows file browser failing with "os error 123" and showing the local path as \\?\C:\ — the local listing returned Rust canonicalize's verbatim-prefixed path (which skips / normalization) and the UI joined local paths POSIX-style, so .. collapsed to / and child paths became \\?\C:\/dir. The verbatim prefix (incl. \\?\UNC\ → \\) is now stripped and the local pane joins paths separator-aware (backslash joins, C:\ drive-root floor); the remote SFTP pane keeps POSIX joins. macOS local paths have no backslash so behavior there is unchanged #94nativeComposition 스위치가 영구적으로 활성화돼, 229-only WKWebView에서 한글에 필요한 커스텀 IME 미러가 비활성화됨. 스위치가 이제 컴포지션 진행 중에만 활성 상태를 유지하도록 수정(유지보수자 머신에서 확인: 한글은 순수 keyCode-229 + 미러, 컴포지션 이벤트 없음 — 로컬 진단 n229:33, mirror 36/31, nCS:0)macOS: Korean input breaking permanently mid-session (until app restart) — the nativeComposition switch latched forever after a single composition event (e.g. press-and-hold accent popup, dictation), disabling the custom IME mirror that 229-only WKWebViews need for Hangul. The switch is now active only while a composition is actually in progress (confirmed on the maintainer's machine: Korean is pure keyCode-229 + mirror, no composition events — local diag n229:33, mirror 36/31, nCS:0) #83window.confirm을 Tauri 다이얼로그 플러그인을 통해 처리하는데 confirm 명령이 capabilities 파일에 허가되지 않아 조용히 실패(plugin:dialog|confirm not allowed by ACL, GlitchTip에서 포착). dialog:allow-confirm/ask/message 권한 추가; macOS는 영향 없음Windows: every confirm dialog (deleting hosts, SSH keys, groups/tags, remote files, LLM backends) silently failed — WebView2 routes window.confirm through the Tauri dialog plugin, whose confirm command wasn't granted in the capability file (plugin:dialog|confirm not allowed by ACL, captured by GlitchTip). Granted dialog:allow-confirm/ask/message; macOS was unaffected #93df -h → ddf -h…) — 두 번째 시도로 루트 원인과 무관하게 동작: 손상은 항상 macOS 예측 기능이 숨겨진 textarea를 재작성할 때 커스텀 IME 미러가 다중 백스페이스 폭풍을 보내면서 발생함. 이제 미러가 순수 ASCII 내용을 2글자 이상 지우는 재작성을 거부함 — 터미널은 원시 키 입력이 필요하므로 OS 주도 재작성을 무시하고, 실제 타이핑(추가·단일 백스페이스) 및 진짜 CJK 컴포지션 되감기는 그대로 동작Newest-macOS stray characters while typing English (df -h → ddf -h…) — second attempt, made robust against the root cause being unknown: the damage always comes from the custom IME mirror sending multi-backspace rewrite storms when macOS predictive features rewrite the hidden textarea. The mirror now refuses to send rewrites that would erase 2+ characters of pure-ASCII content — a terminal wants raw keystrokes, so OS-driven rewrites are ignored while real typing (appends, single backspaces) and genuine CJK composition rewinds flow unchanged #83stopPropagation으로 소비해 버블 단계의 앱 리스너가 이를 수신하지 못함. Windows/Linux에서 단축키 리스너를 캡처 단계에 등록하고(macOS 동작 유지) 소비한 키는 stopPropagation도 호출. 예: Ctrl+K가 터미널 입력 대신 팔레트를 열게 됨Windows/Linux: app shortcuts (Ctrl+K palette, Ctrl+Tab, Ctrl+number, …) not working while the terminal had focus — xterm consumes Ctrl combos with stopPropagation, so the app's bubble-phase listener never saw them. The shortcut listener now runs in the capture phase on Windows/Linux (macOS unchanged) and stops propagation for keys it consumes, so e.g. Ctrl+K opens the palette instead of typing into the prompt #92tmux new-session -A -s <이름>을 실행해 항상 지정 tmux 세션에 연결됨tmux auto-attach on SSH connect — a per-host "tmux auto-attach" field (session name); when set, connecting runs tmux new-session -A -s <name> so the connection always lands in a persistent tmux session #89set-titles on 포함)이 탭 레이블에 반영; 제목이 없으면 호스트/셸 이름으로 복귀. tmux 세션 연결(자동 연결·피커) 시 원격 설정 없이 탭 레이블이 세션 · 호스트 형식으로 즉시 표시됨Tab title sync — the terminal title (OSC 0/2; includes tmux window titles when set-titles on) is reflected in the tab label, falling back to the host/shell name when cleared; attaching to a tmux session (auto-attach or picker) immediately labels the tab session · host without requiring remote config #89~ 지원); 새 로컬 탭이 홈 대신 지정 폴더에서 시작됨. 세션 복원으로 저장된 cwd가 있으면 우선 적용Default start directory for new terminals — a Terminal setting (with folder picker, ~ supported); new local tabs open there instead of home. A cwd saved by session restore still wins #91cd 미실행), SSH 탭 재접속, tmux 세션에 연결됐던 패널 재연결Session restore — on restart the previous tabs reopen: tab/split layout, local shells starting in their previous working directory (spawned with the tracked cwd — no visible cd), SSH tabs reconnecting, and panes that were attached to a known tmux session re-attaching to it #90sessionId가 없으면 onResize가 즉시 반환). 스폰 완료 후 최종 크기를 다시 동기화하지 않아 ConPTY가 스폰 시점 너비를 유지하며 cmd가 그 너비에서 입력 에코를 줄 바꿈함. 스폰 완료 직후 현재 term.cols/rows로 resizeCmd를 한 번 전송해 수정Input lines wrapping early at stale widths (most visible on Windows cmd.exe while typing Korean — double-width characters hit the stale edge sooner) — resizes during session spawn were dropped (onResize bails when sessionId is not set yet), so the PTY/ConPTY kept the spawn-time width while xterm grew with the layout, and the shell wrapped its input echo there. The current size is now synced once right after spawn completes #88.composition-view overlay (needed to avoid double display with the macOS mirror) applied on all platforms, but with the native IME path (since v0.13.11) the in-progress syllable is rendered only in that overlay, so nothing appeared on screen while composing. The hide is now scoped to macOS only (plat-mac body class); Windows/Linux show the composition preview at the cursor #88writingsuggestions="false" 속성을 설정해 인라인 예측 텍스트를 비활성화; 이제 영어는 일반 입력 경로를 사용하며 미러는 실제 IME 조합에만 동작Root cause confirmed for newest-macOS prompt showing duplicated/ghost characters while typing (e.g. df -h → ddf -hdff f -h, commands still executing correctly) — the GlitchTip trace pinned the cause: macOS inline predictive text ("writing suggestions") routes English keystrokes through IME processing (keyCode 229, no composition events), engaging the custom IME mirror; predictive text then rewrites the hidden textarea, so the mirror's diff sends a backspace+resend storm that interleaves with oh-my-zsh's per-keystroke line redraw, leaving real stray characters in the buffer (which is why the v0.13.6 WebGL change didn't help — net input was correct). Fixed by setting the WebKit writingsuggestions="false" attribute on xterm's input textarea; English now takes the plain input path and the mirror only ever sees real IME composition #83df -h → dddff f -h) — 구형 WKWebView용 커스텀 IME 미러가 최신 WKWebView 네이티브 컴포지션 이벤트와 충돌하던 문제; 네이티브 컴포지션 자동 감지 시 미러를 우회해 xterm이 IME를 직접 처리Input characters duplicated in the local shell on the newest macOS (e.g. df -h → dddff f -h) — the custom IME mirror built for old WKWebView conflicted with the newest WKWebView's native composition events; now auto-detects native composition and bypasses the mirror, letting xterm handle IME natively #83/models 조회 및 새로고침 버튼 제공When Ollama (or any OpenAI-compatible local server) is selected in LLM settings, locally installed models are listed in a dropdown — /models lookup with a manual refresh button #46preventDefault를 빠뜨려 브라우저 기본 포커스 이동이 일어나던 버그 수정Fixed Tab sometimes moving focus to the AI panel — missing preventDefault on inline suggestion acceptance let the browser's default focus traversal run #42user-select: none 적용 및 바깥 클릭 감지를 캡처 단계로 변경Fixed text being selected when dragging the host list, and the right-click menu not closing when clicking inside the terminal — applied user-select: none and moved the outside-click listener to the capture phase #44set-clipboard on)/vim 등이 복사 시 시스템 클립보드 반영. 보안상 쓰기만 허용하고 읽기 요청은 무시OSC 52 clipboard support: tmux (set-clipboard on)/vim writes reach the system clipboard. Write-only for safety — read requests are ignored #36~/.bashrc에 훅 한 줄을 넣으면 cwd 동기화 가능)Root-fixed the leftover prompt at the top on SSH connect — removed runtime injection of the OSC 7 cwd hook. (The receive handler stays, so adding one hook line to the remote ~/.bashrc still syncs cwd.) #37getVersion()과 동기화(하드코딩 제거)Synced the displayed version with getVersion() (removed the hardcoded value)전체 변경 이력은 GitHub CHANGELOG를 따릅니다. The full changelog is maintained in the GitHub CHANGELOG.