Spaces:
Running
Running
Upload 2 files
Browse files- CHANGELOG.md +22 -0
- index.html +21 -10
CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
| 1 |
# Virtual Kimi Changelog
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
## [1.0.4] - 2025-08-09 - "Emotion & Context Logic Upgrade"
|
| 4 |
|
| 5 |
### Added
|
|
|
|
| 1 |
# Virtual Kimi Changelog
|
| 2 |
|
| 3 |
+
## [1.0.5] - 2025-08-12
|
| 4 |
+
|
| 5 |
+
### Security & UX
|
| 6 |
+
|
| 7 |
+
- Removed all browser/extension password save and autofill prompts for API key and all text fields (no type="password", no name, all autofill-blocking attributes, CSS masking only).
|
| 8 |
+
- Global autofill prevention for all text/textarea fields, including dynamically added ones.
|
| 9 |
+
- Provider selection: Base URL is readonly for OpenRouter, OpenAI, Groq, Together, DeepSeek; editable only for Custom and Ollama.
|
| 10 |
+
- Model ID is auto-synced and readonly for OpenRouter; editable for others. Selection is persistent and always reflected in the UI.
|
| 11 |
+
- Robust preference persistence and UI sync for provider, base URL, and model.
|
| 12 |
+
|
| 13 |
+
### Provider & LLM Model Handling
|
| 14 |
+
|
| 15 |
+
- Base URL is now readonly for OpenRouter, OpenAI, Groq, Together, DeepSeek (canonical, not user-editable). Editable only for Custom OpenAI-compatible and Ollama.
|
| 16 |
+
- Model ID is auto-synced and readonly for OpenRouter; editable for others. Selection is persistent and always reflected in the UI.
|
| 17 |
+
- Robust preference persistence and UI sync for provider, base URL, and model.
|
| 18 |
+
- Fixed Model ID sync when changing OpenRouter model (immediate update, persistence, readonly).
|
| 19 |
+
|
| 20 |
+
### Misc
|
| 21 |
+
|
| 22 |
+
- No text field in the app can be autofilled or saved by browser or extension.
|
| 23 |
+
- Improved UI robustness when switching provider or model.
|
| 24 |
+
|
| 25 |
## [1.0.4] - 2025-08-09 - "Emotion & Context Logic Upgrade"
|
| 26 |
|
| 27 |
### Added
|
index.html
CHANGED
|
@@ -111,7 +111,8 @@
|
|
| 111 |
</div>
|
| 112 |
<div class="chat-input-container">
|
| 113 |
<input type="text" id="chat-input" data-i18n-placeholder="write_something"
|
| 114 |
-
placeholder="Write me something, my love..."
|
|
|
|
| 115 |
<button id="send-button">
|
| 116 |
<i class="fas fa-paper-plane"></i>
|
| 117 |
</button>
|
|
@@ -374,7 +375,10 @@
|
|
| 374 |
<label class="config-label" for="llm-base-url">Base URL</label>
|
| 375 |
<div class="config-control">
|
| 376 |
<input type="text" class="kimi-input" id="llm-base-url"
|
| 377 |
-
placeholder="https://api.openai.com/v1/chat/completions" autocomplete="
|
|
|
|
|
|
|
|
|
|
| 378 |
</div>
|
| 379 |
</div>
|
| 380 |
|
|
@@ -382,7 +386,10 @@
|
|
| 382 |
<label class="config-label" for="llm-model-id">Model ID</label>
|
| 383 |
<div class="config-control">
|
| 384 |
<input type="text" class="kimi-input" id="llm-model-id"
|
| 385 |
-
placeholder="gpt-4o-mini | llama-3.1-8b-instruct | ..." autocomplete="
|
|
|
|
|
|
|
|
|
|
| 386 |
</div>
|
| 387 |
</div>
|
| 388 |
|
|
@@ -399,11 +406,12 @@
|
|
| 399 |
title="Green = API key saved for current provider. Grey = no key saved."></span>
|
| 400 |
</div>
|
| 401 |
<div class="config-control">
|
| 402 |
-
<input type="
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
data-
|
|
|
|
| 407 |
<button class="kimi-button" id="toggle-api-key" type="button" aria-pressed="false"
|
| 408 |
aria-label="Show API key">
|
| 409 |
<i class="fas fa-eye"></i>
|
|
@@ -617,7 +625,9 @@
|
|
| 617 |
<option value="important">Important Events</option>
|
| 618 |
</select>
|
| 619 |
<input type="text" class="kimi-input" id="memory-content"
|
| 620 |
-
placeholder="e.g., I love classical music..." style="margin-bottom: 8px;"
|
|
|
|
|
|
|
| 621 |
<button class="kimi-button" id="add-memory">
|
| 622 |
<i class="fas fa-plus"></i> <span data-i18n="add">Add</span>
|
| 623 |
</button>
|
|
@@ -716,7 +726,8 @@
|
|
| 716 |
<div class="memory-filters">
|
| 717 |
<div class="memory-search-container">
|
| 718 |
<input type="text" class="kimi-input" id="memory-search"
|
| 719 |
-
placeholder="Search memories..."
|
|
|
|
| 720 |
<i class="fas fa-search memory-search-icon"></i>
|
| 721 |
</div>
|
| 722 |
<select class="kimi-select" id="memory-filter-category">
|
|
|
|
| 111 |
</div>
|
| 112 |
<div class="chat-input-container">
|
| 113 |
<input type="text" id="chat-input" data-i18n-placeholder="write_something"
|
| 114 |
+
placeholder="Write me something, my love..." autocomplete="off" autocorrect="off"
|
| 115 |
+
autocapitalize="none" spellcheck="false" data-form-type="other" />
|
| 116 |
<button id="send-button">
|
| 117 |
<i class="fas fa-paper-plane"></i>
|
| 118 |
</button>
|
|
|
|
| 375 |
<label class="config-label" for="llm-base-url">Base URL</label>
|
| 376 |
<div class="config-control">
|
| 377 |
<input type="text" class="kimi-input" id="llm-base-url"
|
| 378 |
+
placeholder="https://api.openai.com/v1/chat/completions" autocomplete="new-password"
|
| 379 |
+
aria-autocomplete="none" autocapitalize="none" autocorrect="off" spellcheck="false"
|
| 380 |
+
inputmode="url" data-lpignore="true" data-1p-ignore="true" data-bwignore="true"
|
| 381 |
+
data-form-type="other" />
|
| 382 |
</div>
|
| 383 |
</div>
|
| 384 |
|
|
|
|
| 386 |
<label class="config-label" for="llm-model-id">Model ID</label>
|
| 387 |
<div class="config-control">
|
| 388 |
<input type="text" class="kimi-input" id="llm-model-id"
|
| 389 |
+
placeholder="gpt-4o-mini | llama-3.1-8b-instruct | ..." autocomplete="new-password"
|
| 390 |
+
aria-autocomplete="none" autocapitalize="none" autocorrect="off" spellcheck="false"
|
| 391 |
+
inputmode="text" data-lpignore="true" data-1p-ignore="true" data-bwignore="true"
|
| 392 |
+
data-form-type="other" />
|
| 393 |
</div>
|
| 394 |
</div>
|
| 395 |
|
|
|
|
| 406 |
title="Green = API key saved for current provider. Grey = no key saved."></span>
|
| 407 |
</div>
|
| 408 |
<div class="config-control">
|
| 409 |
+
<input type="text" class="kimi-input masked" id="openrouter-api-key"
|
| 410 |
+
placeholder="sk-or-v1-..." autocomplete="new-password" autocapitalize="none"
|
| 411 |
+
autocorrect="off" spellcheck="false" inputmode="text" aria-autocomplete="none"
|
| 412 |
+
data-lpignore="true" data-1p-ignore="true" data-bwignore="true"
|
| 413 |
+
data-form-type="other" readonly
|
| 414 |
+
onfocus="this.removeAttribute('readonly'); this.setAttribute('autocomplete','new-password'); this.removeAttribute('name'); this.setAttribute('data-lpignore','true'); this.setAttribute('data-1p-ignore','true'); this.setAttribute('data-bwignore','true'); this.setAttribute('data-form-type','other');" />
|
| 415 |
<button class="kimi-button" id="toggle-api-key" type="button" aria-pressed="false"
|
| 416 |
aria-label="Show API key">
|
| 417 |
<i class="fas fa-eye"></i>
|
|
|
|
| 625 |
<option value="important">Important Events</option>
|
| 626 |
</select>
|
| 627 |
<input type="text" class="kimi-input" id="memory-content"
|
| 628 |
+
placeholder="e.g., I love classical music..." style="margin-bottom: 8px;"
|
| 629 |
+
autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false"
|
| 630 |
+
data-form-type="other" />
|
| 631 |
<button class="kimi-button" id="add-memory">
|
| 632 |
<i class="fas fa-plus"></i> <span data-i18n="add">Add</span>
|
| 633 |
</button>
|
|
|
|
| 726 |
<div class="memory-filters">
|
| 727 |
<div class="memory-search-container">
|
| 728 |
<input type="text" class="kimi-input" id="memory-search"
|
| 729 |
+
placeholder="Search memories..." autocomplete="off" autocorrect="off"
|
| 730 |
+
autocapitalize="none" spellcheck="false" data-form-type="other" />
|
| 731 |
<i class="fas fa-search memory-search-icon"></i>
|
| 732 |
</div>
|
| 733 |
<select class="kimi-select" id="memory-filter-category">
|