chore: version packages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
arkon
2026-03-19 10:05:16 +01:00
co-authored by Claude Opus 4.6
parent d436c6375f
commit 0c4aac8029
6 changed files with 40 additions and 23 deletions
+6
View File
@@ -1,5 +1,11 @@
# aicodeman # aicodeman
## 0.4.5
### Patch Changes
- Fix mobile keyboard toolbar positioning on iOS Safari: toolbar (Run/Stop/Run Shell) was hidden behind the accessory bar when virtual keyboard was active due to overlapping CSS positions. Remove the aggressive safety check in `updateLayoutForKeyboard()` that incorrectly dismissed keyboard state when iOS scrolled the visual viewport during typing. Add Safari-bar CSS offset to accessory bar so it properly stacks above the toolbar. Remove the double-counted Safari-bar offset when keyboard is visible since the JS transform already covers the full distance.
## 0.4.4 ## 0.4.4
### Patch Changes ### Patch Changes
+1 -1
View File
@@ -52,7 +52,7 @@ When user says "COM":
4. **Sync CLAUDE.md version**: Update the `**Version**` line below to match the new version from `package.json` 4. **Sync CLAUDE.md version**: Update the `**Version**` line below to match the new version from `package.json`
5. **Commit and deploy**: `git add -A && git commit -m "chore: version packages" && git push && npm run build && systemctl --user restart codeman-web` 5. **Commit and deploy**: `git add -A && git commit -m "chore: version packages" && git push && npm run build && systemctl --user restart codeman-web`
**Version**: 0.4.4 (must match `package.json`) **Version**: 0.4.5 (must match `package.json`)
## Project Overview ## Project Overview
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "aicodeman", "name": "aicodeman",
"version": "0.4.4", "version": "0.4.5",
"description": "The missing control plane for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence", "description": "The missing control plane for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
+17 -21
View File
@@ -272,35 +272,31 @@ const KeyboardHandler = {
const main = document.querySelector('.main'); const main = document.querySelector('.main');
if (this.keyboardVisible) { if (this.keyboardVisible) {
// Calculate keyboard offset // Calculate how far the toolbar (position:fixed, bottom:0) needs to
// translate up so it sits at the bottom of the visual viewport.
// This formula accounts for iOS scrolling the visual viewport (offsetTop)
// when the user types in xterm's hidden textarea.
const layoutHeight = window.innerHeight; const layoutHeight = window.innerHeight;
const visualBottom = window.visualViewport.offsetTop + window.visualViewport.height; const visualBottom = window.visualViewport.offsetTop + window.visualViewport.height;
const keyboardOffset = layoutHeight - visualBottom; const keyboardOffset = Math.max(0, layoutHeight - visualBottom);
// Safety: if keyboard is supposedly visible but offset is 0 or negative, // Move toolbar and accessory bar above keyboard.
// the keyboard is actually gone — force dismiss. This catches cases where // When keyboardOffset is 0 (viewport scrolled to layout bottom),
// visualViewport.resize fires late or with intermediate values on iOS. // the bars are naturally positioned via their CSS bottom values —
if (keyboardOffset <= 0) { // just clear the transforms. Never dismiss keyboard state here;
this.keyboardVisible = false; // that's handleViewportResize's job.
document.body.classList.remove('keyboard-visible');
this.onKeyboardHide();
return;
}
// Move toolbar up above keyboard
if (toolbar) { if (toolbar) {
toolbar.style.transform = `translateY(${-keyboardOffset}px)`; toolbar.style.transform = keyboardOffset > 0 ? `translateY(${-keyboardOffset}px)` : '';
} }
// Move accessory bar up (it sits above toolbar)
if (accessoryBar) { if (accessoryBar) {
accessoryBar.style.transform = `translateY(${-keyboardOffset}px)`; accessoryBar.style.transform = keyboardOffset > 0 ? `translateY(${-keyboardOffset}px)` : '';
} }
// Shrink main content area so terminal doesn't extend behind keyboard // Shrink main content area so terminal doesn't extend behind keyboard.
// Account for keyboard height + toolbar height (40px) + accessory bar (44px) // Use stable keyboard height (not scroll-dependent) for padding.
if (main) { const keyboardHeight = this.initialViewportHeight - (window.visualViewport.height || window.innerHeight);
main.style.paddingBottom = `${keyboardOffset + 94}px`; if (main && keyboardHeight > 0) {
main.style.paddingBottom = `${keyboardHeight + 94}px`;
} }
} else { } else {
this.resetLayout(); this.resetLayout();
+11
View File
@@ -534,6 +534,17 @@ html.mobile-init .file-browser-panel {
bottom: calc(var(--safe-area-bottom) + (100vh - var(--app-height, 100vh))); bottom: calc(var(--safe-area-bottom) + (100vh - var(--app-height, 100vh)));
} }
/* When keyboard is visible the JS translateY already accounts for the full
distance from the visual-viewport bottom to the layout-viewport bottom
(keyboard + Safari bar). Remove the CSS Safari-bar offset to avoid
double-counting, which otherwise creates a visible gap above the keyboard. */
.keyboard-visible.ios-device.safari-browser .toolbar {
bottom: var(--safe-area-bottom);
}
.keyboard-visible.ios-device.safari-browser .keyboard-accessory-bar {
bottom: calc(var(--safe-area-bottom) + 40px);
}
/* Show case selector in center */ /* Show case selector in center */
.toolbar-center { .toolbar-center {
display: flex !important; display: flex !important;
+4
View File
@@ -0,0 +1,4 @@
{
"status": "failed",
"failedTests": []
}