v3.2.0: full QA fixes and in-app virtual environment

This commit is contained in:
admin
2026-05-21 14:10:15 +04:00
Unverified
parent 2e5d2f819a
commit 66354c182b
10 changed files with 290 additions and 95 deletions

View File

@@ -69,24 +69,24 @@
<div id="chat-screen" class="screen">
<div class="chat-header">
<div class="header-left">
<button id="menu-btn" class="icon-btn">&#9776;</button>
<button id="menu-btn" class="icon-btn" aria-label="Open sidebar menu">&#9776;</button>
<div class="header-title">
<h2 id="conversation-title">New Chat</h2>
<span id="current-mode-label" class="mode-label">Chat</span>
</div>
</div>
<div class="header-right">
<button id="file-tree-btn" class="icon-btn" title="Project Files" style="display:none">&#128193;</button>
<button id="theme-toggle-header" class="theme-toggle-btn" title="Toggle theme">&#9790;</button>
<button id="new-chat-btn" class="icon-btn" title="New chat">+</button>
<button id="settings-btn" class="icon-btn" title="Settings">&#9881;</button>
<button id="file-tree-btn" class="icon-btn" title="Project Files" aria-label="Open project files" style="display:none">&#128193;</button>
<button id="theme-toggle-header" class="theme-toggle-btn" title="Toggle theme" aria-label="Toggle theme">&#9790;</button>
<button id="new-chat-btn" class="icon-btn" title="New chat" aria-label="Start new chat">+</button>
<button id="settings-btn" class="icon-btn" title="Settings" aria-label="Open settings">&#9881;</button>
</div>
</div>
<div id="sidebar" class="sidebar">
<div class="sidebar-header">
<h3>Conversations</h3>
<button id="sidebar-close" class="icon-btn">&times;</button>
<button id="sidebar-close" class="icon-btn" aria-label="Close sidebar">&times;</button>
</div>
<div id="conversation-list" class="conversation-list"></div>
<div class="sidebar-footer">
@@ -98,7 +98,7 @@
<div id="file-tree-panel" class="file-tree-panel">
<div class="file-tree-header">
<h3>Project Files</h3>
<button id="file-tree-close" class="icon-btn">&times;</button>
<button id="file-tree-close" class="icon-btn" aria-label="Close file tree">&times;</button>
</div>
<div id="file-tree-body" class="file-tree-body">
<div class="ftree-empty">No files yet.<br>AI-generated files appear here.</div>
@@ -118,7 +118,7 @@
<div class="file-viewer-actions">
<button id="file-viewer-edit" class="fv-btn">Edit</button>
<button id="file-viewer-save" class="fv-btn fv-btn-save" style="display:none">Save</button>
<button id="file-viewer-close" class="icon-btn">&times;</button>
<button id="file-viewer-close" class="icon-btn" aria-label="Close file viewer">&times;</button>
</div>
</div>
<div id="file-viewer-body" class="file-viewer-body">
@@ -153,10 +153,10 @@
</div>
<div class="input-row">
<textarea id="message-input" placeholder="Type your message..." rows="1"></textarea>
<button id="send-btn" class="send-btn" disabled>
<button id="send-btn" class="send-btn" aria-label="Send message" disabled>
<svg viewBox="0 0 24 24" width="24" height="24"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" fill="currentColor"/></svg>
</button>
<button id="stop-btn" class="stop-btn" style="display:none">
<button id="stop-btn" class="stop-btn" aria-label="Stop generation" style="display:none">
<svg viewBox="0 0 24 24" width="24" height="24"><rect x="6" y="6" width="12" height="12" fill="currentColor" rx="2"/></svg>
</button>
</div>
@@ -166,11 +166,11 @@
<div id="terminal-screen" class="screen">
<div class="term-screen-container">
<div class="term-screen-header">
<button id="term-back-btn" class="icon-btn">&larr;</button>
<button id="term-back-btn" class="icon-btn" aria-label="Back to chat">&larr;</button>
<h2>Terminal</h2>
<div class="term-screen-header-right">
<span id="term-cwd-display" class="term-cwd-display">~</span>
<button id="term-setup-tools-btn" class="icon-btn" title="Setup Dev Tools">&#128736;</button>
<button id="term-setup-tools-btn" class="icon-btn" title="Setup Dev Tools" aria-label="Setup development tools">&#128736;</button>
</div>
</div>
<div id="term-output" class="term-output"></div>
@@ -186,8 +186,8 @@
<div class="term-input-row">
<span class="term-prompt">$</span>
<input type="text" id="term-input" class="term-input" placeholder="Enter command..." autocomplete="off" spellcheck="false">
<button id="term-run-btn" class="term-run-btn">&#9654;</button>
<button id="term-stop-btn" class="term-stop-btn" style="display:none">&#9632;</button>
<button id="term-run-btn" class="term-run-btn" aria-label="Run terminal command">&#9654;</button>
<button id="term-stop-btn" class="term-stop-btn" aria-label="Stop terminal command" style="display:none">&#9632;</button>
</div>
</div>
</div>
@@ -234,7 +234,7 @@
<div id="settings-screen" class="screen">
<div class="settings-container">
<div class="settings-header">
<button id="settings-back" class="icon-btn">&larr;</button>
<button id="settings-back" class="icon-btn" aria-label="Back to chat">&larr;</button>
<h2>Settings</h2>
</div>
<div class="settings-body">
@@ -338,13 +338,25 @@
</div>
<div class="settings-section">
<h3>About</h3>
<p class="about-text">Z.AI Chat v3.1.0</p>
<p class="about-text">Z.AI Chat v3.2.0</p>
<p class="about-text">Built with Z.AI SDK &amp; GLM-5.1</p>
<p class="about-text">Compatible with Android 15/16</p>
</div>
<div class="settings-section">
<h3>Changelog</h3>
<ul class="changelog-list">
<li>
<span class="changelog-version">v3.2.0</span>
<span class="changelog-date">2026-05-20</span>
<ul>
<li><strong>Full In-App Virtual Env</strong> — new internal virtual environment setup with no external Termux app dependency</li>
<li><strong>Module Installer</strong> — new AI actions: <code>[VENV_SETUP]</code> and <code>[VENV_PIP_INSTALL package]</code></li>
<li><strong>QA Critical Fix</strong> — fixed invalid JS file check that broke PRoot install fallback</li>
<li><strong>Stability</strong> — thread-safe process map in ShellPlugin and safer wake lock handling</li>
<li><strong>Resource Safety</strong> — fixed high-risk stream/file descriptor leaks in bootstrap extraction and downloads</li>
<li><strong>Accessibility</strong> — improved icon button labels for better screen reader support</li>
</ul>
</li>
<li>
<span class="changelog-version">v3.1.0</span>
<span class="changelog-date">2026-05-20</span>