v2.3.5: Drive Files Move Without Breaking Links, Kanban Scales Past 100 Cards, and Python Stops Forgetting Its Packages
Two releases in one day: v2.3.4 this morning was the bug-fix batch, v2.3.5 tonight is the feature batch. The star of this one is the Google Drive skill, which finally gets real file management. Around it: the Kanban board learns to handle hundreds of cards without breaking a sweat, installs its own skill in one click, and Python packages stop vanishing every time you clear a session.
Google Drive: move, rename, copy, export. Natively.
Here is what happened when an agent was asked to rename a file in a 460-file Drive, before this release. The skill had no rename command, so the agent improvised the only path available: download the file, re-upload it under the new name, delete the original. Mission accomplished, except the "renamed" file is a brand-new file. New ID, which means every shared link to it now points at nothing, and the comments and version history are gone. Same story for moving a file between folders, and for copying. We watched this happen live during testing.
Native Google files were even worse off. Docs, Sheets, Slides, Drawings, and Gemini-generated meeting notes have no binary content to download, so the download command simply could not touch them. An entire class of files was unreachable.
Four new commands fix all of it, and they all operate server-side on the Google API, so file content never transits through the agent:
- move: a true native move. Same file ID, links intact, history intact. Works on files and folders.
- rename: same guarantee, same ID before and after.
- copy: a server-side copy, zero download and re-upload, even for large files. (Folders cannot be copied; that is a Google API limitation, and the skill says so clearly instead of failing cryptically.)
- export: converts a native Google file to a standard format. A Doc exports to pdf, docx, txt or html; a Sheet to pdf, xlsx or csv; Slides to pdf or pptx; a Drawing to pdf, png, svg or jpeg. Those Gemini meeting notes sitting in your Drive are finally retrievable.
The guard rails matter as much as the features. Export refuses non-native files and points you to download instead. Invalid formats are rejected with the list of supported ones. And the validation test was exactly the regression that started all this: rename a real file, confirm the ID did not change.
Existing employees pick up the new commands by resyncing the google-drive skill.
Kanban handles big boards now
Since the Kanban board shipped in v2.3.0, some boards got serious. A real example: 128 cards in todo, 212 in done. The board endpoint returned every card of every column in a single response, which meant slow loads and a heavy page, and the problem only compounds as boards grow.
Columns now load 32 cards at a time, with infinite scroll and a "Load more" button showing exactly where you are (x of total). The pagination under the hood is keyset-based rather than offset-based, which is the detail that makes it correct: card positions change constantly as cards get dragged around, and offset pagination would deliver duplicates or skip cards whenever the board moved under it. Keyset pagination walks the real board order and guarantees no duplicates and no holes; we verified that against a live 600-card board, where 7 successive pages reproduced the full board order exactly.
The details are handled too: tab counters show true totals rather than loaded counts, live websocket refreshes never shrink the view below what you already loaded, and dragging a card to the bottom of a partially loaded column lands it where you dropped it instead of teleporting past the unloaded tail.
The Kanban tab installs its own skill
Opening the Kanban tab on an employee that does not have the kanban skill used to show you a perfectly normal board that the agent could not see or touch. Nothing told you why your employee ignored every card you created.
The tab now checks on open. If the skill is missing, you get a clear banner ("Your agent can't use this board yet") with a one-click install button. If the skill is installed, a discreet update button in the header resyncs it to the latest template, which is handy right after a platform update ships new skill commands, like the attachment and comment commands from v2.3.3 or the pagination-aware behavior in this release.
Python packages survive session clears
Clearing a session destroys the employee's container, and that has always been safe for npm packages, which live in the persistent agent folder. Python packages were a different story: pip installed them into the container's system directories, so every session clear wiped them, and agents dutifully reinstalled the same packages over and over, burning time and bandwidth.
The agent image now ships pip properly and routes every pip install into a persistent folder inside the mounted agent directory. Install once, clear the session, respawn: the import still works, zero reinstall. The full cycle was validated live, destroy and respawn included.
One quirk deserved documentation: pip pointed at a target directory does not check what is already installed there. It blindly re-downloads everything you ask for, even if the package is sitting right where it would land. So the onboarding guidance for agents now carries an absolute rule: test the import first, install only if it fails. Existing employees inherit that rule automatically.
Picking it up
Resync the google-drive skill to get the new Drive commands, and the kanban skill (or use the new update button) for the latest board behavior. Employee containers pick up the Python persistence on their next clear or respawn. Hard refresh (Ctrl+Shift+R) for the frontend.
Want to test the most advanced AI employees? Try it here: https://Geta.Team