Yun Chan
5f12ab4772
fix(release): keep portable/runtime version packages immutable and guard latest aliases against rollback
2026-09-28 02:16:18 +09:00
Yun Chan
88f3dbcd69
fix(update): re-evaluate policy on every update transition and skip NSIS updater on portable installs
2026-09-28 02:16:18 +09:00
Yun Chan
a4acb42573
fix(desktop): align runtime AppUserModelId with electron-builder appId
2026-09-28 02:16:18 +09:00
Yun Chan
5322d981cc
fix(security): trust file: URLs only inside the app renderer directory
2026-09-28 02:16:18 +09:00
Yun Chan
b306034bfc
fix(llm-proxy): reserve quota before the provider call and stop cutting off long streams
2026-09-28 02:16:17 +09:00
Yun Chan
2f94d24c99
fix(voice): stop mic-test ref stealing, unblock action queue, keep tail audio, and move context/LLM routing behind ports and pure policies
2026-09-28 02:16:16 +09:00
Yun Chan
2cd462333f
fix(stt): gate local fallback on installed engine and extract SidecarSupervisor
2026-09-28 02:16:16 +09:00
Yun Chan
4588b65dfa
fix(sidecar): fall back to CPU when the CUDA runtime is unusable
2026-09-28 02:16:15 +09:00
Yun Chan
96b24e279c
fix(text-insert): drop nut-js 300ms key delay and send paste as one chord
2026-09-28 02:16:15 +09:00
Yun Chan
9e5b94ced2
fix(suggestion): place overlay in DIPs, size it to content, and harden suggestion sessions
2026-09-28 02:16:15 +09:00
Yun Chan
75e053d72f
fix(sync): keep desktop-only language and preset command across settings pulls
2026-09-28 02:16:15 +09:00
Yun Chan
ddc78546f0
fix(desktop): harden session, meeting, caption and LLM lifecycles; route LLM calls through the gateway
2026-09-28 02:16:15 +09:00
Yun Chan
3a46437f28
fix(sync,rag): keep restored rows, reconcile after tombstone pruning, reject partial knowledge docs, surface RAG indexing failures
2026-09-28 02:16:14 +09:00
Yun Chan
bbaf1e0a99
fix(core): extract personal-graph terms from any script
2026-09-28 00:54:04 +09:00
Yun Chan
102f3ef934
fix(quota): spend overage credits against the weekly window and count 7 days, not 8
2026-09-28 00:54:03 +09:00
Yun Chan
f4f9653361
fix(conversation): make realtime sessions cancellable and recoverable
2026-09-28 00:54:03 +09:00
Yun Chan
a85b24d385
fix(meeting): persist transcript segment edits, restore live recording view, and route settings deep links by tab id
2026-09-28 00:54:03 +09:00
Yun Chan
a8983c583a
fix(history): require confirmation before clearing all history
2026-09-28 00:54:02 +09:00
Yun Chan
819bc9d789
fix(support): stop faking refund approvals and ticket submissions in the support modal
2026-09-28 00:54:02 +09:00
Yun Chan
e243e5282c
fix(mobile-history): drop history cache writes that outlive the auth scope
2026-09-28 00:54:01 +09:00
Yun Chan
2576f4af7b
fix(mobile-queue): arm retries at the earliest deadline and stop losing or replaying queued audio
2026-09-28 00:54:01 +09:00
Yun Chan
ace946d5c7
fix(mobile-recorder): scope recorder control to its owner and keep Android recordings on stop failure
2026-09-28 00:54:01 +09:00
Yun Chan
72c4ddaefb
fix(supabase): require team membership for team-scoped writes and pin row ownership
2026-09-28 00:54:01 +09:00
Yun Chan
f517eedffc
fix(sync): let the server own updated_at on insert for cursor-pulled tables
2026-09-28 00:54:00 +09:00
Yun Chan
2251fe2da1
fix(realtime-token): spend the session quota only after a token is minted and stop leaking provider errors
2026-09-28 00:54:00 +09:00
Yun Chan
83c2deb561
fix(account-delete): judge step-up auth by amr sign-in time, not token iat
2026-09-28 00:54:00 +09:00
Yun Chan
043ef579a8
fix(push): stop web push from posting to arbitrary endpoints
2026-09-28 00:53:48 +09:00
Yun Chan
1afaea7214
fix(edge): meter and size-cap knowledge embeddings in embed-chunks and search-knowledge
2026-09-28 00:53:48 +09:00
Yun Chan
b35676c75c
fix(meeting-document): hold quota for in-flight generation claims
2026-09-28 00:53:47 +09:00
Yun Chan
f4724ddf53
fix(payple-renew): reconcile renewals whose charge outcome was left unknown
2026-09-28 00:53:47 +09:00
Yun Chan
06e96c58f4
fix(sound): apply the Sound switch at once instead of after a restart
2026-09-28 00:53:47 +09:00
Yun Chan
91d4b4974c
fix(tts): pass Windows TTS text via env and let stop() only cancel its own playback
2026-09-28 00:53:46 +09:00
Yun Chan
9cd81b48c1
refactor(keybinding): extract chord state machine into core and fix AltGr guard
2026-09-28 00:53:46 +09:00
Yun Chan
de1e8a82a4
fix(dictionary): let an edit clear the pronunciation and report duplicate renames
2026-09-28 00:53:46 +09:00
Yun Chan
9d5d043e8b
fix(license): keep signed offline keys across restarts and cloud sign-out
2026-09-28 00:53:45 +09:00
Yun Chan
95aa95e986
fix(memo): sanitize the tag used in memo export file names
2026-09-28 00:53:45 +09:00
Yun Chan
5fef311575
fix(release): never roll the latest updater feed back to an older tag
2026-09-28 00:53:45 +09:00
Yun Chan
524d390bc2
fix(runtime): stage runtime installs strictly, time out only on stalls, and make reinstall actually reinstall
2026-09-28 00:53:44 +09:00
Yun Chan
ba0dbbd813
refactor(instructions): share instruction template rendering via @d3ro/core
2026-09-28 00:53:44 +09:00
Yun Chan
d311e8123f
fix(llm): keep system prompts on premium chat, reject incomplete streams, stop double-charging quota
2026-09-28 00:53:44 +09:00
Yun Chan
d96601a283
fix(file-transcription): provision ffmpeg before converting so clean installs stop failing with ENOENT
2026-09-28 00:53:43 +09:00
Yun Chan
c5b3bdedb6
fix(voice): let a click on the RecordingTip actually cancel the recording
2026-09-28 00:53:43 +09:00
Yun Chan
83cf9133ac
refactor(desktop): session-scoped voice runtime, STT/LLM ports, caption ownership and meeting export fixes
2026-09-28 00:53:43 +09:00
Yun Chan
0adedf5e7b
fix(text-insert): restore every clipboard format after paste and never wipe non-text clipboards
2026-09-28 00:53:42 +09:00
Yun Chan
190b6db284
refactor(suggestion): drive suggestion decisions from one core step and split SuggestionService collaborators
2026-09-28 00:53:42 +09:00
Yun Chan
9aa7302944
fix(sync): bind sync engine to its user DB, scope instructions/templates per account, harden navigation
2026-09-28 00:53:42 +09:00
Yun Chan
1b8fe445f3
fix(suggestion): stop generating mid-typing and let a pause bring a suggestion at once
...
With a 100 ms trigger left in the installed config, generation started in the
gaps between keystrokes; the next key ended the session silently, and that
session still counted against the 5 s minimum interval, so the moment the
user actually paused nothing came (rate-limited). The log showed a
generate-then-vanish cycle every 5-6 s.
The trigger delay now has a 500 ms floor and settings revision 6 resets a
stored value below it to 600 ms. A session ended because the user kept typing
no longer blocks the next request by the minimum interval (per-minute and
daily caps still apply), and that dismissal is logged.
2026-09-27 22:55:26 +09:00
Yun Chan
7e0c20b510
fix(suggestion): keep a shown suggestion while the user picks it, and suggest in terminals
...
A candidate list was cleared about two seconds after it appeared: once typing
paused, the not-typing rule dismissed the visible overlay, so a click or
Ctrl+Alt+Enter found nothing to insert. The rule now only stops new
requests; a visible overlay stays until it is accepted, dismissed or goes
stale.
Terminals were excluded from suggestions because the whole screen buffer
reads as the input and the last line is usually a status bar. The input line
is now extracted (Claude Code/Codex >, starship, PowerShell, cmd and POSIX
prompts, wrapped continuation lines) and used as the prefix; no prompt means
no suggestion. Terminals stay out of phrase learning. Accepting with nothing
shown and successful inserts are now logged.
2026-09-27 22:43:22 +09:00
Yun Chan
0273c6abaa
fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable
...
ci / 정본·보안·린트·타입·테스트 (push) Successful in 52s
ci / 모바일 린트·타입·Jest (push) Successful in 41s
ci / Supabase Edge Functions + Cloudflare Worker (push) Successful in 22s
ci / .NET API 서버 테스트 (push) Successful in 14s
deploy-site / deploy (push) Successful in 41s
ci / 워크스페이스 빌드 검증 (push) Successful in 36s
A five-second phone recording took over a minute: stt-proxy waited up to
60 s for the self-hosted gateway, whose GPU endpoint was off and whose NAS CPU
Whisper needs 30-90 s per clip. With a direct provider configured the gateway
now gets 5 s plus the clip length (30 s cap).
The direct OpenAI fallback never produced a result. The production key held
characters that are not valid in an HTTP header, so every request threw while
being built; provider keys are now stripped of BOM/zero-width characters and a
still-invalid key counts as not configured. whisper-1 verbose_json reports the
language by name, which the result contract rejected; names now map to codes.
Fail-closed responses list each provider's failure (status or error class,
no secrets) so an outage can be diagnosed without log access.
2026-09-27 18:02:14 +09:00
Yun Chan
c90946ce16
chore(release): point the Scoop manifest at the 1.9.0 portable build
ci / 정본·보안·린트·타입·테스트 (push) Successful in 51s
ci / 모바일 린트·타입·Jest (push) Successful in 42s
ci / Supabase Edge Functions + Cloudflare Worker (push) Successful in 21s
ci / .NET API 서버 테스트 (push) Successful in 13s
deploy-site / deploy (push) Successful in 34s
ci / 워크스페이스 빌드 검증 (push) Successful in 36s
2026-09-27 16:46:14 +09:00