Release Notes
What changed in each AMBA release. The app updates itself; you can also download the latest version.
0.5.12 — 2026-10-11
Security (Milestone 96)
- Research and Plan modes can no longer change your files. In these read-only modes the agent could still edit workbooks, decks and Word documents in place or run an Office script, because the guard only knew the older file-writing tools. Every tool now declares whether it reads or writes, and the read-only modes refuse anything that writes, runs commands or calls a connected MCP tool — before asking you for permission. Previewing a deck or Word edit without saving it still works; Plan mode can still save its plan.
Privacy (Milestone 96)
- Scanned files and images are read on your computer, and pictures never go to the AI provider. We checked every path: text in scanned PDFs and images is recognised on the device (Apple Vision on macOS), and only that text can reach the model, where identifier masking applies to it. An unused code path that could have sent page images to a cloud model has been removed, and a test now fails if one is added without a per-project consent gate. The privacy policy (English, Vietnamese, Japanese, Korean) now says that files reach the AI provider as text only, and that on Windows and Linux a scanned page without a text layer is reported as unreadable.
Fixed (Milestone 96)
- macOS no longer asks for keychain access over and over. AMBA read the keychain every time it needed a key, and each key was a separate keychain entry, so one chat could show "AMBA wants to use your confidential information" several times. AMBA now keeps all its keys in a single keychain entry, reads it at most once while it runs, and no longer reads any key at launch; keys saved by earlier versions move into that entry the first time they are used (the old entries are removed only after the move is confirmed). Choose Always Allow to stop the prompt for good. Windows and Linux keep working as before.
Office: decks that fit their slides (Milestone 96)
- New decks no longer run off the slide. When AMBA writes a deck in a dense company template, text that does not fit a slide is shrunk the way PowerPoint's own "shrink text on overflow" does (never below 70 % or 10 pt). It is shrunk only if the template allows it. Otherwise it continues on the next slide with the same layout, titled "(1/2)", "(2/2)". Before, bullets could spill past the bottom edge on most slides of such a template.
- AMBA checks the layout of every deck and Word document it delivers. It looks for text overflowing its box or the slide, text hidden under another shape or picture, text smaller than 10 pt, and pictures, tables or long unbroken values wider than the Word page. The check runs on your computer and nothing is sent anywhere. Problems are recorded as warnings with the run's deliverables, and a playbook can make them block delivery until fixed. The agent sees the same estimate when it reads a deck or document, so it can fix a slide before handing it over. Only problems the run itself added are reported, never what was already in your file or template.
Office: PowerPoint decks and templates edited in place (Milestone 90)
- AMBA can now edit your own PowerPoint decks and fill your company template instead of rebuilding them. Give it a deck (.pptx) or a template (.potx) and it changes only what you asked: replace text while keeping each word's formatting (even when PowerPoint split it into pieces), add slides from the template's own layouts, duplicate, delete or reorder slides, fill and extend tables, update chart numbers together with the chart's built-in Excel data, turn on chart data labels, add pictures and speaker notes. Masters, layouts, theme and every slide you did not mention stay exactly as they were; a template saved as .pptx becomes a normal presentation. Placeholders left empty on new slides are removed, so no "Click to add text" is left behind.
- Every deck edit is checked before it is saved. If anything outside the requested change would differ, a chart's numbers would not match its data, or a deleted slide would leave pieces behind, nothing is written and the agent is told why. Overwriting an existing deck keeps the previous version for rollback, and the agent can preview an edit without writing it.
- New decks are built on a real template — yours if you set one. In project settings (General) you can choose your company's PowerPoint template (.potx or a .pptx used as one); it is kept in the project's
input/templates/folder (a file chosen elsewhere is copied there) and nothing leaves your computer. Every new deck AMBA creates then uses that template's layouts, theme, fonts and footers; without one, AMBA uses its own neutral 16:9 template with proper slide masters and layouts instead of the old hand-made slides. Outlines can now have nested bullets, tables, pictures, code blocks, speaker notes and section slides next to titles, bullets and KPI cards, and Vietnamese, Japanese and Korean text uses suitable fonts. Starting a deck from a customer's sample deck removes its sample slides (or keeps the ones you name) and leaves the original file untouched.
Office: Word documents and templates edited in place (Milestone 90)
- AMBA can now edit your own Word documents and fill your company's Word templates instead of rebuilding them. Give it a contract, report or form (.docx) or a template (.dotx) and it changes only what you asked: fill fields and replace text while keeping each word's formatting (even when Word split it into pieces or it sits next to a link), set the text of bookmarks and content controls, insert paragraphs and lists in the document's own styles (it refuses styles the document does not have), replace one section or the whole body of a template, fill tables and add rows formatted like their neighbours, delete rows, and set headers and footers with page numbers. Styles, numbering, sections, comments and every other paragraph stay exactly as they were; a new table of contents is marked to update when Word opens the file. Vietnamese, Japanese and Korean text are handled like any other.
- Edits can be tracked changes for review. With tracked changes on, every edit appears in Word as a revision by "AMBA" (deleted text struck through, new text underlined, new and deleted rows and paragraphs, style changes), so your team can accept or reject each one; accepting all gives exactly the requested document. The check before saving also verifies that, and nothing outside the requested change may differ — otherwise nothing is written and the agent is told why. Overwriting an existing document keeps the previous version for rollback.
- New Word documents are built on a real template — yours if you set one. In project settings (General) you can now also choose your company's Word template (.dotx or a .docx used as one), kept in the project's
input/templates/folder like the deck template. Every new Word file AMBA writes then uses that template's styles, lists, fonts, page setup, headers and footers, without copying its sample text; without one, AMBA uses its own neutral A4 template (proper headings, lists, quotes, code, captions, tables and a page-number footer) instead of the old hand-made file. Documents can now have nested and numbered lists, code blocks, pictures, links, strikethrough and a table of contents that updates when Word opens the file. When filling a template, the yellow highlighting that marks its fields can be removed from the filled-in text.
Office: decks and Word files are checked before the run finishes; better previews (Milestone 90)
- Decks and Word documents with template leftovers are sent back to the agent. A finished deck or Word file is read back before the run completes: leftover template text ("Click to add title", "[Company Name]", "[Fill in …]", "Lorem ipsum"), sample slides kept from the template the deck was built from, empty placeholders on a slide or Word fields still showing their placeholder, styles the document does not have, and broken or left-behind parts make the agent fix the file in place; if it does not, the run fails and names the problem. Problems your own file already had before the run are not blamed on it. A playbook can add its own prompt texts, ignore some, or turn individual checks into warnings.
- Decks can no longer contradict the workbook. The workbook number check now also reads PowerPoint decks — slide text, KPI cards, tables, speaker notes and the numbers behind native charts — and the tables of Word documents. A deck whose chart says 95,238,095 clicks when the plan has 95,238 is sent back for correction like a Markdown proposal.
- Slide and Word previews look like the file. The slide preview now fills the preview pane in the slide's real shape (16:9, 4:3, 16:10 …), shows the slide list only when the pane is wide enough, and places text boxes, KPI cards, pictures and tables where the layout puts them (instead of stacking them at default positions), with the layout's and master's background, accent shapes, logos and font sizes. The Word preview no longer shows a grey band above the page, and at 100 % the page fits the pane width; page size, margins, headers and footers come from the document.
Office playbooks: pitch decks, Word briefs and contract fills in your templates (Milestone 90)
- The media pitch is now a PowerPoint deck in your agency's template. The Media Planning & Agency Pitch template builds
Media_Pitch_Deck.pptxon the company deck template from project settings (or a client template you name ininput/), with native PowerPoint charts and tables whose numbers come from the media plan workbook; the deck is checked against the workbook and for template leftovers. The Markdown proposal is now optional, written only when you ask for it. - The executive brief is a Word document in your company Word template. The Executive Chief of Staff template writes
Executive_Master_Briefing.docxin your template's own styles, opening with the key figures taken from the financial model, and checks the brief and the strategy deck against the workbook. The Senior Financial Analyst playbook can now write Word briefs too, and the Executive Strategy Consultant can read workbooks so deck charts use their numbers. - Fill NDAs, SOWs and service contracts from your own template. The Document Analysis & Contract Review template (and the Lead Business Author playbook) fills only the fields of a contract template — names, addresses, dates, amounts — from your message and the files in
input/, asks you for anything it cannot find instead of guessing, never changes a clause, and writes every filled field as a tracked change by "AMBA" so you can accept or reject it in Word. A contract that still has a blank such as[Company Name],[Date],[●]or[Tên công ty]is sent back before the run finishes, and the answer ends with a table of each filled field, its value and where it came from. - New manual pages (English, Vietnamese, Japanese, Korean): the pitch deck in your template, the executive brief in your Word template, and contract fill with tracked-changes review in Word.
0.5.11 — 2026-10-10
Deliverable accuracy (Milestone 95)
- Every answer now lists the files it actually wrote. Below the answer, a "Files written" list shows each file the run created or updated (output files first) with its size, an "auto" badge for PDFs made automatically from Markdown, and a note when a file is not mentioned in the answer; click a file to open it. Files the answer mentions but this run did not write are listed too, next to the existing "Not produced" note. The list comes from what is on disk, not from the agent's wording, and stays after reopening the conversation.
- Key figures above the files. The Inventory Reconciliation and Financial Analyst playbooks now ask the agent for the headline numbers of the result (for example total loss, shrinkage %, items over the threshold); they appear as "Key figures" above the file list. A figure that points at a file is only accepted if that file was written in the run.
- Reconciliation pairs rows deterministically and can no longer report invented matches. The reconciliation tool now pairs each row with at most one row on the other side — by exact ID, normalized ID (case, separators, leading zeros), an ID found in the other side's reference text, or amount within tolerance and date within a window — and keeps the full result (matched pairs with the rule used, discrepancies, every unmatched row on both sides, unreadable values) instead of a 20-row sample. Amounts are read the way they are written (
1.234.000 ₫,1,234,000,(1,234),VND 12,500); a value that cannot be read is reported, never counted as 0. The Invoice Reconciliation template and the Financial Analyst playbook export these tables into the report, and a report whose "Matched" rows do not exist in the source files, do not carry the source amounts, or do not add up to the engine's count now fails with the exact rows named. Spreadsheet loading no longer turns a decimal comma such as1,5into 15. - Proposals and briefings must use the workbook's numbers. When a run writes both a workbook and a Markdown/Word narrative, every significant number in the narrative (money, percentages, counts such as clicks or impressions, Vietnamese and English formats like
95.238 lượt click,1,2 tỷ,95.2M) is checked against the workbook's calculated values. A number that is off by a factor of 1,000 or more (for example clicks quoted as "95,238,095" when the plan has 95,238) or that contradicts a reported key figure sends the agent back to fix the document, and the run fails if it does not; other numbers not found in the workbook are listed as warnings only. Years, dates, phone numbers, versions and page numbers are ignored. The Media Planning playbook now reads its workbook back before writing the proposal, totals each metric separately, and a total that adds different metrics (impressions + clicks) is rejected. - PDFs with emoji stay small and render the same on every computer. A short report with emoji could become an 11 MB PDF because the emoji pulled in the system colour-emoji font. PDFs now use only the fonts bundled with AMBA (Noto Sans regular and bold, plus Fira Mono for code) for Vietnamese and Latin text, and system fonts only for Japanese, Korean, Chinese, Arabic, Thai and Devanagari; colour-emoji fonts are never embedded. Common status emoji become text (✅ → √, ❌ → ×, ⚠️ → (!), 📈 → ↗, 🟢 → ●, 🇻🇳 → VN) and other emoji are left out. Lines in paragraphs, code blocks and table cells no longer overlap or drift apart, bold text is always bold Noto Sans, and Vietnamese characters in code keep their accents.
pdf.generatereports the file size and a warning when a short document produces an unexpectedly large PDF. - F&B template reports the ratio your brief defines. When the brief defines a labour cost ratio (for example company-wide wages ÷ revenue for the period), the F&B Operations template now computes exactly that ratio, puts it in the workbook and reports it as the headline key figure, with per-store ratios as a breakdown; a run that reports only per-store ratios is asked again. The template no longer applies built-in benchmark ranges (such as "25–35%") that could contradict your own targets, and the labour workbook and operations briefing are now required deliverables. A request that names
output/files is no longer treated as a draft just because it says "draft the memo".
Robustness (Milestone 95)
- Projects whose folder was deleted or moved are marked instead of shown as normal. The project list used to keep every project AMBA ever registered, even after its folder was gone. A project whose folder no longer exists now shows "Folder missing" on its card (and when you open it) with two choices: Locate folder… to point AMBA at the folder you moved (it must contain
input/,output/orworkings/), or Remove from list, which asks first and only removes the project from AMBA — no files are deleted. - AMBA tells you when it closed unexpectedly. If the app is closed by a crash that leaves no error record (for example inside the system web view on Linux), the next launch says "AMBA closed unexpectedly last time" and, with your crash-report setting on Ask, offers to send a minimal report through the existing consent dialog: app version, operating system and time only. With Always send it is sent automatically; with Never nothing is sent. Running AMBA twice at the same time does not trigger it.
- Pasting an API key cleans it. Spaces, line breaks and invisible characters in a pasted key are removed in the key field; a key with unusual characters (smart quotes, look-alike letters) shows a warning to copy it again.
- Linux: typing with Vietnamese or CJK input methods no longer drops characters. Project, agent and file name fields (and the descriptions and rename prompts) no longer lose characters while ibus or fcitx is composing, and Enter that confirms an input-method candidate no longer submits the form. Dropdowns on Linux are drawn by AMBA so the chosen value stays readable, and the model selector in the new-project dialog always shows a real model when the saved default no longer exists.
UI (Milestone 93)
- The whole app speaks your language, with local number and date formats. About 450 labels, buttons, tooltips, placeholders and messages that were still in English (command palette, History, Usage, Memory, Models, Skills, Settings → Models provider cards and messages, Diagnostics self-test, update prompt, spreadsheet pager, slide previews, file menu, permission prompt, data sources) are now translated in English, Vietnamese, Japanese and Korean, and Vietnamese labels use sentence case. Dates and times, counts, costs, file sizes and durations follow your language (for example "6,70 US$" and "1,5 KB" in Vietnamese); costs show two decimals instead of four. Release notes in the update prompt are shown as formatted text. Finished tool steps no longer read "Searching…"/"Đang…", routine runs show "Sent" in your language, a routine proposal shows "(not set)" instead of "?", the Telegram bot name no longer shows "@@", and the data sources overview lists the channels you actually connected.
- Agent Studio, Tools & MCP and the project studio are translated too. The agent library and editor, the MCP server form, server list, tool registry and tool permissions, the studio status bar ("Ready", files in/out), the file filter, tab and tree tooltips, the drop-files hint and the live run status (waiting for permission or your answer, rate-limit retries, repeated-action recovery) now follow your language. The new-project dialog shows template names, badges and the starting description in your language. Tool policies show as Allow / Confirm / Deny in your language, and agent cards no longer show the instruction length twice.
- Safer permission prompts. When an agent asks to use a tool that needs your approval, the prompt is now a proper dialog: Esc means Deny, keyboard focus stays inside it, and it appears above any window you have open (for example Settings) and returns you there afterwards. Requests that would delete, move or rename files, overwrite an existing file outside
workings/andoutput/, or write outside the project folder are marked with a warning and start on Deny; the prompt shows the tool, the file paths and the policy's reason, with a button to copy the details. Several requests at once are shown one after another in order, and prompts from a run that has ended or was cancelled disappear. - Command palette (⌘K / Ctrl+K) behaves like the other dialogs. Keyboard focus stays inside it while it is open and returns to where you were when it closes; Esc or a click outside closes it; the highlighted result is clearly marked and stays in view while you move with the arrow keys, and screen readers announce the highlighted result. It no longer opens on top of another open dialog (close that one first), so it cannot hide or interfere with unsaved work there.
0.5.10 — 2026-10-10 — Hotfix: credentials and honest results
Upgrade notes
- Please re-enter API keys and connector credentials you saved after updating to 0.5.9. 0.5.9 reported them as saved but did not keep them across restarts. Keys saved in 0.5.8 or earlier are moved into your system keychain automatically on first launch.
- Linux: saving keys now requires a running system keychain (GNOME Keyring, KWallet ≥ 5.97 or KeePassXC). Without one, AMBA shows a clear error instead of pretending to save. Settings → System Diagnostics shows the keychain status.
- Includes the UI integrity work from Milestone 93 (consistent dialogs, restored hover states and tints, 12px minimum text, offline icons).
Security / Fixed (Milestone 94)
- API keys and credentials are now actually stored in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service). In 0.5.9, keys saved after updating were lost on restart — please re-enter them. Keys saved before 0.5.9 are migrated automatically.
- Saving a key now fails with a clear message instead of showing "saved" when the keychain did not keep it. On Linux without a running keyring (GNOME Keyring or KWallet), saving shows "No system keychain is available" — AMBA never falls back to storing keys unencrypted.
- Pasted keys are trimmed; keys containing line breaks, invisible or non-ASCII characters are rejected with a hint to paste again.
- Settings → Diagnostics shows which keychain is in use and whether it is available.
- Runs no longer report files that were not produced. If the agent says it created files that are not on disk and cannot fix it (including when the model service fails during the fix-up attempt), the run now ends as failed and the chat shows "Not produced: …" with the missing files, also after reopening the conversation. Requests that only mention a draft (e.g. "review the draft budget in input/") no longer switch into draft mode, and draft runs say that their files were saved in
workings/drafts/. - Clearer error when a folder is given instead of a file. Loading data, reading files or inspecting workbooks with a folder (or an empty path) now fails right away with a message listing the files in
input/to choose from, instead of "Unsupported file format". - PDFs are refreshed when their Markdown changes. A rewritten Markdown deliverable in
output/now gets a new PDF instead of keeping the outdated one.
Docs, site and packaging (Milestone 94)
- The website and manual now describe how keys are really stored. Every page (4 languages) says keys live only in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service: GNOME Keyring, KWallet 5.97+ or KeePassXC), that there is no plaintext or database fallback, that Linux without a running keyring cannot save keys (and what to install), and that keys saved after updating to 0.5.9 must be entered again. The old claim of an "encrypted SQLite fallback" is gone.
- More accurate claims. "Zero Math Hallucinations" became "Computed, Not Guessed": calculations run in deterministic tools and you should still review the numbers. The playbook pages no longer state a wrong number of built-in playbooks (there are seven).
- New Release Notes page on the website (nav and footer, all languages), generated from this changelog at every site build.
/playbooksnow redirects to the playbook library, and the old/download/<os>links (which pointed to 0.4.5 files that no longer exist) go to the download section. - Linux packages: the
.debnow depends onlibdbus-1-3and recommendsgnome-keyring | kwalletmanager(the.rpmrequiresdbus-libsand recommendsgnome-keyring), drops a duplicate WebKitGTK entry, and AMBA appears under Office/Productivity in application menus. The install guide usessudo apt install ./AMBA_*_amd64.deband no longer listslibssl3. - Download page shows only current files. The release manifest no longer keeps installers from older versions (0.4.x installers and a 0.5.4
.rpmwere still listed); the new.rpmis mapped correctly.
UI (Milestone 93)
- Readable, theme-consistent text and colours everywhere. No text is smaller than 12px any more (badges, counters, footers and helper text were 9–11px in places). Status colours (success, warning, error, info) now come from the app theme, so they read well in both light and dark mode instead of fixed colours that were too faint on white or too bright on dark; filled badges and buttons with white text have enough contrast. Code blocks, diagrams and document viewers that ignored the light theme now follow it. Leftover styles from an older UI kit were removed, so buttons, badges and form fields look like the rest of the app.
- Hover states, selected states and soft tints are back. Many buttons, list rows, badges, cards and dividers were designed with semi-transparent theme colours that never took effect, so hover feedback was missing, selected items were not highlighted, and some dividers showed as bright lines in the dark theme. They now render as designed in both light and dark themes. The file filter box in the project explorer is no longer white in the dark theme.
- Consistent dialogs and in-app confirmations. Project Configuration, Delete project, New project, the welcome sandbox, Help & Guide, Clean up session and the trial-limit dialog now behave like every other dialog: Esc closes them (or goes Back), keyboard focus stays inside, and only one dialog is shown at a time — Delete project has a Back button to Project Configuration. Every "Are you sure?" question, error message and the new-file name prompt is now an in-app dialog in your language and theme instead of a plain system pop-up; deleting asks with a red button and starts on Cancel. Backup and restore in Settings use the normal save/open file pickers instead of asking you to type a path. The Settings row in the sidebar and the collapsed-sidebar expand button work with the keyboard and screen readers; the crash-report dialog shows a readable time and starts on Send; the routine run history keeps its filters on one row; the data-flow table fits inside Project Configuration.
- Quick setup is reachable with the sidebar collapsed. The collapsed sidebar (narrow windows, or after collapsing it) now has a Setup Wizard icon next to Help and Feedback, so the setup wizard no longer requires expanding the sidebar first.
0.5.9 — 2026-10-09 — Milestones 76–92
First release since 0.5.6 (0.5.7 was tagged but never distributed).
Upgrade notes
- Keychain prompt on first launch (macOS): API keys and connector credentials previously stored as plaintext in the local database are moved into the OS keychain and removed from the database; macOS may ask once for keychain access. Correction (0.5.10): this did not work in 0.5.9 — keys saved after updating to 0.5.9 were lost on restart and older keys stayed in the database. Fixed in 0.5.10; see its notes.
- Backups no longer contain credentials: restoring a backup on another machine requires re-entering keys.
- Routines: existing routines are migrated automatically and keep their permissions; "weekdays" schedules no longer fire on weekends; new or edited routines need a successful dry run before activation.
- Overwrites: agents now ask before overwriting existing files outside
workings/andoutput/; unattended routines are denied such overwrites unless the path is allowed in the routine policy. - HTML previews render statically (scripts disabled); open externally for interactive pages.
- Crash reports are sent only with your consent (Settings → Security).
- Installer is ~10 MB larger (bundled offline Office sandbox and icons).
UI (Milestone 93)
- Fixed: icons are visible again in the installed app, and they work offline. Icons were downloaded from a third-party icon server each time the app started; the app's security policy blocks that, so the installed app showed no icons. All icons now ship inside the app and nothing is fetched from a third-party server to draw the interface.
Chat (Milestone 88)
- File mentions in chat now only ever point inside the project folder. When you write
@fileor@folder/, the app (not the chat window) finds the matching project files, and a mention that resolves outside the project folder or to a missing file is ignored. Project instructions, automatic mode selection (TypeSafe AI Jev) and the large-document conversion check also moved into the app runtime; how chat looks and behaves is otherwise unchanged. One visible difference: after a reload, a message sent after converting a document also shows the "converted to Markdown" note. - Stop now works while the agent is waiting for you. Stopping a run while it is asking for permission or asking you a question now ends the run right away. Before, the run stayed open until the prompt was answered, or kept working on the remaining steps of that turn.
- Agents remember earlier conversations again. Memories saved after a run are now found in later runs. Before, a project that uses a catalog agent saved its memories under that agent but searched under the default assistant, so it never found them. New chats started inside a project are now also linked to that project from their first message, so project search, project-scoped memory and the project file refresh after a run work in the first conversation too.
- Repeated questions get a fresh answer. A run no longer replays an AI reply that was saved from an earlier run with identical wording (this could happen with low-creativity model profiles such as "Coding & Architecture").
- More reliable deliverable retries. When the app asks the agent to redo a missing deliverable, the files it reads or writes in that retry now show in the timeline and in the changed-files list. A second retry also no longer fails at the AI provider because of an unanswered tool step.
- Chat follows running agents live instead of checking every few seconds. Sending a prompt returns immediately and the answer, tool steps, errors and Stop all update from the agent's own progress messages. Reopening a chat or switching back to an agent while it is still working picks the run up where it is, and a run that finished while you were away is shown as finished instead of "working". The final answer now keeps its saved message id right away, so "Save to project knowledge" works on it without reloading the chat.
- Agents now only use the tools you gave them. Every agent can still read the files in your project (open, search and list files, read PDFs and spreadsheets), ask you a question and read the clock. Writing files, creating Office documents, accounting, web search and system tools now need the matching capability pack or an explicit tool on the agent. Before, almost every agent got all of these whatever its configuration. Example: an agent built only with "Executive Presentations" reads your project files and builds decks, but cannot write other files until you add "Document Authoring". Project settings still apply on top (internet, MCP, shell). Connected MCP tools stay available to every agent in projects that allow MCP. Older agents with no tools or packs configured keep access to every tool. Changing an agent's packs in Agent Studio no longer removes tools it had outside those packs.
Routines (Milestone 91)
- Routines are now stored in the app database and run one at a time. Existing routines (and the old hidden daily project schedule) are moved over automatically on first launch and keep their schedule, Telegram/Google Drive inbound and outbound settings. "Weekdays" routines now really skip Saturday and Sunday. If a routine is triggered while it is already running, one extra run waits and starts right after; further triggers join that waiting run instead of running in parallel. Pressing Run Now no longer cancels that day's scheduled run. A scheduled run that is still missing required files is recorded as skipped. After three failed scheduled runs in a row a routine stops (error state) until you resume it.
- Routines can now start when files or messages arrive, and catch up after the app was closed. A routine can watch a project folder (for example
input/, with a filter such as*.xlsx): once new or changed files stop arriving for 30 seconds (adjustable), it runs once for the whole batch and works on exactly those files; a minimum number of files can be required. Files the routine writes itself never start it again, and files dropped while the app was closed are picked up on the next launch. A routine can also start when a matching Telegram message or file arrives in a chosen chat (filter by sender, text, attachment or file name), or when a new file appears in a Google Drive folder: the files are saved toinput/first, then the run starts. If the app was closed when a scheduled routine should have run, it runs once when you reopen the app within 24 hours; older missed runs are listed as skipped ("missed while app closed"). Schedules can use a time zone (UTC, an offset such as+07:00, or zones such asAsia/Ho_Chi_Minh); the default is the computer's time zone. The run block shows what started the run (schedule, file names, message). Zalo cannot start routines yet (the app explains this when saving). - Routines now stay inside the limits you set when nobody is watching. Each routine has a policy of what it may do on its own: which folders it may read and write, whether it may replace existing files (or only specific ones, such as
output/media_plan.xlsx), whether it may use the web or specific MCP tools, and where it may send results. The app enforces it on every run and lists anything it refused in the run's result; anything that would normally ask for your confirmation is refused. Before an existing Office file is replaced, a revision is kept so it can be rolled back. A new routine must pass a dry run before it can be switched on: the dry run works on your real current files but writes only intoworkings/.dry-run/, sends nothing, and shows what it would have sent (destination, size, a preview). Editing a running routine keeps the current version running until you run the new version dry and confirm it. Existing routines keep working as before (they may read the whole project, replace files in their output folders and use the web and MCP tools when the project allows them) and need no dry run. Routine deliveries, Telegram/Google Drive checks for new messages (grouped per hour) and routine model calls now also appear in "Data leaving this device", linked to the routine run; describing a routine in your own words is masked like any chat when the project masks identifiers. - Describe a routine in your own words and get a proposal to check, test and switch on. Ask the agent in chat for something that should happen on its own ("every Monday at 8…", "whenever the accountant drops a bank statement into input/bank…", "khi có file mới…", "毎朝…") and it shows a routine proposal card instead of doing the work right away: the name, what it does, when it runs, where it sends results and what it may do while you are away, all in plain language. Anything the app cannot know for sure is asked, never guessed — for example which of several matching folders, which Telegram chat (picked from the chats your bot knows), which file it may update, or to connect Telegram first. Answer and click "Answer & refine"; then "Run dry run" tests it on your real files without sending anything, and "Activate" becomes available once that dry run of exactly this version succeeds. "Edit in editor" opens the routine editor prefilled. The old "schedule proposal" card in chat is replaced by this card.
- New routine panel, editor and run history — routines now live only with their agent. The routine panel beside each agent's chat lists that agent's routines with their state (draft, active, paused, error, edit waiting for confirmation), when they run next or how the last run went, and buttons to Run now, Pause/Resume, Dry run and edit; with no routine yet it offers to describe one in chat or create it. The editor shows what the routine does, a trigger builder (schedule with time zone, files arriving in a project folder, a Telegram or Google Drive message, or only Run now — up to three), what it may do while you are away with a plain-language summary that updates as you edit, up to three places to send results, and its versions; mistakes are shown next to the field they concern. "Describe in plain language" in the editor fills the form from your own words (the same proposal as in chat). Save draft → Dry run (result shown inline: files written in the sandbox, what would be sent, anything refused) → Activate; editing an active routine keeps the running version until you confirm the edit after its dry run, or discard it. Run history shows every run of the agent's routines with filters (routine, status including skipped and cancelled, dry runs), what started each run, and a link to the run in the conversation. Run now is not available for drafts (use Dry run). The old schedule section of the agent settings and the old routine editor with its "AI assistant" are removed; all of this updates live without refreshing.
- Send a routine's result only when it matters. Each destination of a routine has a "Send only when…" field: give it a flag name (for example
over_threshold) and say in the routine's instruction when it applies ("…set over_threshold when an item loses more than 5 %"). The routine then sends to that destination only when the run raised the flag; other destinations and error alerts are sent as before. The dry run shows "would skip: flag … not set to true" or that the flag was raised, and run history lists such deliveries as skipped (condition not met). - Start a routine from your agent's playbook. Agents installed from a playbook that ships routine templates (such as the Inventory Reconciliation & Shrinkage Controller) offer them as "Start from template" in the routine proposal card and in the routine editor, and use them when you describe a similar routine in chat. A template becomes a normal proposal: folders and thresholds come from the playbook, anything it cannot know (such as your Telegram chat) is asked, and it still needs a dry run before you switch it on. The inventory template now sends its summary only when something is over the threshold, and the opening-stock template adds rows for new items instead of only listing them.
Privacy (Milestone 92)
- See every time project data left your computer. Project Configuration → Permissions & Security now has a "Data leaving this device" panel listing each outbound request — AI model calls (including the provider's region for Bedrock and Vertex), web searches and page fetches, remote MCP servers, deliveries to Telegram or Google Drive, feedback, crash reports and update checks — with destination, size, status and what was masked before sending. Only this metadata is recorded, never the content. "Export evidence" writes a CSV and a short summary into the project's
output/compliance/folder for audits. Entries are kept on your device for 365 days. - Mask client identifiers before they reach the AI model. In Project Configuration → Permissions & Security you can turn on masking for a project: e-mails, phone numbers, bank accounts, card/IBAN numbers, API keys, plus national ID, tax and business numbers for the markets you pick (Vietnam, Japan, Korea, Singapore, Thailand) and any terms you list, such as client names, are replaced with placeholders like ⟦CLIENT_1⟧ before a request is sent. The answer you see and the files the agent writes contain the real values again, restored on your computer. "Strict" uses every market and also masks any number with 9 or more digits. The "Data leaving this device" panel shows how many items of each kind were masked per model call (never the values). Off by default; masking can reduce answer quality for tasks that need the exact values, and local models (Ollama) are never masked because nothing leaves the device.
- Fixed: the "Data leaving this device" panel and data source setup can be opened again. Both lived in a window that no button opened any more. The data-flow panel is now in Project Configuration → Permissions & Security, next to identifier masking. Connecting Google Drive folders, local folders and Telegram chats to Source Documents (with recent sync activity) opens from the Source Documents pane menu → "Data Sources & Sync".
- Fixed: "Manage Inbound Sources" opens properly from Data Sources & Sync. The inbound source setup (Google Drive folder, local folder, Telegram chat) used to open underneath the Data Sources & Sync window and could not be used. It now replaces that window, with a Back button (or Esc) to return to it. Both windows were also tidied up: consistent spacing, headers and buttons, readable text in light and dark themes, only the middle part scrolls, and localized sync status labels. The update prompt now also stays usable when it appears while another window is open.
Excel (Milestone 89)
- Excel files created by agents can now include charts, conditional formatting, Excel tables and drop-down lists. When an agent builds a new workbook it can add native charts (column, bar, line, area, pie, doughnut, scatter, stacked, and combined column + line charts with a second value axis, including charts that read data from another sheet), conditional formatting (highlight rules, formula rules, colour scales, data bars, icon sets), Excel tables with a style, a totals row and calculated columns (
[@Qty]*[@[Unit Price]]), drop-down lists and number limits for input cells, sparklines, frozen panes per sheet, column widths, merged and two-row headers. Number formats can follow the market: VND, JPY, KRW, SGD, THB or USD currency and the local date order (e.g. dd/mm/yyyy in Vietnam, yyyy/mm/dd in Japan); ISO dates such as2026-01-31become real Excel dates in date columns. Invalid chart, table or validation settings are now reported to the agent with the exact problem instead of producing a broken file. - Agents can now edit your own Excel workbooks in place without breaking anything else. Asked to update figures, add a month column, insert a transaction, rename a sheet or add a summary sheet with a chart, an agent now changes exactly those cells and objects in your existing file: formats, charts, pictures, notes, Excel tables, pivot tables, macros and every sheet it does not touch stay exactly as they were. Inserting or deleting rows and columns, renaming or deleting sheets moves every formula, name, chart range, table, pivot source, merged range and conditional format that refers to them, like Excel does; changes that would break formulas (
#REF!) are refused unless you ask for them. Before saving, the app checks the result opens and that nothing outside the requested change differs — if anything else changed, nothing is written. Replacing a file in your project asks for confirmation as before, and the previous version is kept so the change can be rolled back. Agents can also start a new workbook from your template (the template is copied and filled, not rebuilt), and the agent can first look at a workbook's structure (sheets, tables, names, charts, formulas). Large files work: correcting values at the end of a 50,000-row sheet takes about a second. - Fixed: Excel generation no longer hangs on cross-sheet formulas. Creating a workbook with a formula such as
=SUM(Ledger!D2:D3)used to freeze the agent run. Formulas that point to another sheet (Ledger!D2,'P&L'!B3,Ledger!$D$2:$D$9, whole columns likeLedger!D:D) are now calculated correctly, so the saved file shows their values right away. Opening customer spreadsheets with very large ranges or merged areas is also protected: such formulas are left for Excel to calculate instead of blocking the app. - New agent template: Inventory Reconciliation & Shrinkage Controller (draft). For teams that keep stock in Excel: it builds tomorrow's opening stock from today's count in a copy of your stock file, reconciles the count in place (variance value and shrinkage % columns, a totals row, red highlights below your thresholds — default −5 %), adds a sheet comparing the loss with the day's revenue from your accounting report, and a weekly sheet with the trend per item. Your fonts, colours, filters and notes stay as they are; notes typed next to the table are moved, not overwritten. It finds columns by their headers, so branches with different layouts work, and it asks for figures that your report only shows as screenshots instead of guessing. The template includes two routine drafts to review before use: reconcile when a new count file arrives (with a short Telegram summary) and build the opening stock every morning.
- Fixed: totals on a summary sheet no longer show 0 before Excel recalculates. After an in-place edit, a total such as
SUM()over formulas that read another sheet could be saved with a wrong value (0 or a partial sum) until the workbook was opened in Excel; it now waits for those values. - Agents can add new rows to a list that has a totals row, and the totals grow with it. When a new item shows up (for example an item counted today that is not in yesterday's stock file), the agent adds its row right above the TOTAL row with the same formats and formulas as the row above; every sum, filter, highlight rule, drop-down, name and chart that covered the list now also covers the new row. It finds the totals row by its formulas, so it works whatever the row is called.
- Sheet names with a stray space are found. A sheet named
NL ĂN(with a trailing space) is now found when the agent writesNL ĂN, as long as only one sheet matches; formulas the agent writes point to the exact sheet name. If two sheets match, the agent is told both names instead of picking one. - Fixed: numbers with many decimals are written exactly. Values such as
111.50000000000003(typical for weighed quantities) could be stored one digit off in the last place, so totals differed from the source file in the 15th decimal.
Office sandbox (Milestone 89)
- Agents can now build decks from your own template and handle complex Word documents with Python, offline. A new tool,
office_script, lets an agent write a short Python script (openpyxl, python-docx, python-pptx, XlsxWriter) that runs inside a sandbox in the AMBA window: no internet, no access to your disk, no access to the app — it only receives the files the agent names and returns new file contents. AMBA checks every result before saving: the file must open and be valid, and when an existing file is edited, nothing outside the parts the agent declared may change (for existing Excel workbooks, any lost chart, shape or formatting rejects the edit and the agent is told to use the in-place spreadsheet editor instead). All results are saved together or not at all, and every overwrite can be rolled back. Overwriting your own files still asks for confirmation, and routines follow their file rules. The sandbox starts on first use (about 2 seconds) and needs the AMBA window to be open; Settings → Diagnostics has a self-test. Nothing leaves your device. The app download grows by about 10 MB.
Security (Milestone 85)
- API keys and connector/account credentials are now stored only in the OS keychain. Previously a plaintext copy was also written to the local database. On first launch, existing plaintext copies are moved into the keychain and deleted; database backups no longer contain any credentials. If the system keychain refuses to save a key, AMBA now shows an error instead of silently saving it in plaintext.
- Hardened the app window against malicious content. A strict Content Security Policy is now enforced, and all AI replies, code blocks, diagrams and slide text are sanitized before display, so text from an AI model or an opened file can no longer run scripts inside AMBA. Diagrams use Mermaid's strict mode. HTML file previews are now shown as static pages (scripts inside the previewed file do not run; open the file externally for interactive pages), and remote images are not loaded inside chat content.
- Agents can no longer read or write files outside the project folder through a second path or a shortcut link. Every file path a tool receives (not just the first one) is now checked against the project folder, after resolving shortcuts/symlinks, so e.g. converting a project file into a location outside the project is blocked. File tools called without a path are refused. Writing new files anywhere in the project and updating files in
workings/andoutput/work as before; overwriting an existing file elsewhere (for example ininput/) now asks for your confirmation, and in scheduled routines such an overwrite is refused because nobody is there to confirm. - Abuse protection for AMBA's online services. The free trial service now also limits usage per network (in addition to per device), caps request and reply sizes, and only uses approved AI models; feedback submissions are rate-limited per network; update checks reject malformed requests. Networks are identified only by a one-way hash — IP addresses are never stored. If the trial limit for your network is reached, AMBA asks you to add your own API key, as it already does when your device's free runs are used up.
- Secrets no longer end up in the local run history, and feedback/crash reports hide more personal data. API keys, tokens, passwords and private keys that appear in tool inputs or results are now masked before a run's steps are saved, and very large tool inputs/results are shortened when saved (the live view while a run is working is unchanged; after a reload such rows show
[REDACTED_SECRET]or a "truncated" note). File paths and your document content stay visible in the history. Feedback and automatic crash reports now also hide email addresses, phone numbers (international and Vietnamese formats) and Vietnamese citizen ID (CCCD) numbers, in addition to user folder paths and API keys. - Privacy policy rewritten to match what the app actually sends (English, Vietnamese, Japanese, Korean). The old "zero telemetry / no servers" wording is gone; the policy now lists every network flow — AI requests with your own key, the free trial relayed to Google Gemini, feedback, automatic crash reports, update checks and the template catalog — with what is sent, where it goes and how long it is kept, plus how to request deletion. The website's FAQ, footer, security diagram and terms were corrected where they contradicted this (including the outdated Linux "encrypted SQLite fallback" for API keys).
Privacy (Milestone 85)
- Crash reports are now sent only with your consent. After an unexpected close, AMBA shows exactly what the report contains (error, code location, stack trace, app version, OS) and asks: Send, Don't send or Always send. A new Crash reports setting in Settings → Vault & Security lets you choose Ask (default) / Always send / Never. The local crash file is deleted once you send or decline it.
- Your feedback contact address is no longer copied into the report text. It is sent as a separate field, stored only in AMBA's feedback database, and never appears in the public GitHub issue or team chat alerts.
- Real feedback reference IDs. After sending feedback you now see the reference ID issued by AMBA's server (e.g.
AMBA-FB-3F2A9C1B) instead of a random number that was never recorded. If the server cannot be reached, the dialog says the feedback was only saved on your device instead of showing an ID. - Automatic data retention on AMBA's servers. Feedback and crash reports are deleted 180 days after the issue is resolved or closed (and at most 365 days after submission); free-trial device records are deleted after 90 days without use. The privacy policy (4 languages) was updated to match.
Release pipeline (Milestone 86)
- Releases can no longer look successful without actually being distributed. Pushing a version tag now runs the full release automatically. Each release job uploads to the download server, checks that every file can be downloaded, registers the version with the update service, and only then publishes the update manifest. A final check confirms that the update service offers the new version and that each offered download works. Missing credentials, an unreachable file or a failed registration now fail the release instead of being skipped silently, which is how v0.5.7 ended up tagged but never distributed. Registration also no longer re-registers older installers from the merged manifest. That had made the Intel-Mac updater offer v0.4.0 instead of the newest Intel build.
- The app version is now defined in one place. The version shown in Help and in the feedback form now always matches the installed build, and the Linux installation guide no longer names a specific (possibly outdated) installer file. Release preparation is one command (
pnpm run release:bump X.Y.Z), and the quality gate fails if any version copy disagrees. - Website: no more pages for things the app doesn't ship. The Business Playbooks section now lists the six agent playbooks that ship in the built-in catalog (several of them were missing from the menu). It also lists six walkthroughs, each built on a project template the app really has, with a note that their figures and run times are examples. A duplicate reconciliation page was removed, and the Vietnamese reconciliation guide no longer points to the removed Pipelines tab (it now describes Routines). Button names in the Connected Accounts guide now match the app in all four languages. The site also publishes a sitemap, and the build fails if any link points to a missing page.
Agent Chat Timeline Rework & Routine Self-Work Streaming (Milestone 84)
- Routines now appear as the agent working on its own — no more fake "user message" for a scheduled routine. Pressing Run now shows the routine block immediately and streams its progress live (checking sources → working → delivering), instead of a spinner on a button followed by everything appearing at once.
- Redesigned agent turns, coding-agent style: a collapsible "Working · 00:42 → Worked for 1m 12s · 5 tool calls" group with per-tool rows (status, duration, start time, expandable details), thoughts folded to one line, and the answer streaming live below.
- Clear timing: every turn shows its start time (hover for the full timestamp), recent turns show "2m ago", and days are separated in the timeline. Scroll/elapsed timers now follow the real run start.
- Fixed cross-talk: a run in one agent can no longer leak into another agent's window; routines run in (and report to) the agent that owns them.
- Older routine history is displayed in the new format automatically (no data migration).
- Routine block shows status (Running → Completed / Failed), execution mode, trigger (manual or scheduled), and a collapsed "Task instruction" — deterministic routines show live steps too.
- Polish & accessibility: readable 12px minimum text in the chat, subtle date-separator rules that now render in both themes, a neutral "Stopped" state for cancelled runs (no endless spinners), full keyboard navigation with visible focus rings (message copy/edit actions also appear on keyboard focus), screen-reader-friendly timestamps, and "Reduce motion" support.
- Remaining English strings in the chat (edit-prompt hint, token tooltip, "Saved locally") are now translated in Vietnamese, Japanese and Korean.
Bug Fixes (Milestone 83 follow-up)
- Agent list is visible again above the file tree in Project Studio (finished the "bot"→"agent" rename that had hidden it).
- Switching agents restores each agent's chat scroll position reliably instead of jumping.
- Routines run in their own conversation (never in whichever conversation was opened last), and finishing a routine no longer pulls you away from the agent you are viewing.
- Deleting an agent also deletes its routines, so orphaned routines no longer keep running.
Routine Identity Unification + "bot"→"agent" Rename (Milestone 82)
- Routines now belong to each agent conversation (not a shared template), so switching between agent tabs instantly shows that agent's own routines with its own open/close state, and two agents built from the same template no longer share routines. Fixes the "sidebar stays put / don't know whose routines" behavior.
- Fixed a mount-time race and project-switch inconsistency in the agent chat state.
- Removed leftover dead "executive roster" modal code.
- Terminology: "bot" → "agent" throughout the app (UI text, identifiers, API, and settings). Persisted agent configurations are migrated automatically on launch (no data loss). Telegram's own "bot" terms (e.g. BotFather, bot token) are unchanged since they refer to Telegram bots.
Per-Agent Routine State Isolation (Milestone 81)
- Switching agents now cleanly swaps the routine sidebar to that agent's own routines — the sidebar remounts per agent, so no state leaks between agents, and the header shows which agent you're configuring.
- Switching projects resets the chat + routine state cleanly (no stale agent carried over from the previous project).
- The routine sidebar is now a config-only surface — the execution history list was removed from it; run history lives in the agent's chat timeline, with the "View logs" button opening the detailed run monitor on demand.
Agent Routine Rework (Milestone 78)
- Run Now reliably pulls Telegram files, or tells you why not. A routine with inbound collection enabled now requires an account + channel (validated on save), so it can no longer silently pull nothing. The Telegram fetch persists a per-account offset so a prior sync no longer empties the backlog.
- Execution logs are reachable. A new "View logs" button in the Routine sidebar (per routine and for all) opens the run history. Deterministic (default-mode) runs now record step events (inbound fetch, file counts, errors), so every run is observable — not just agent-mode runs.
- New Telegram routines default to inbound ON with the account pre-selected, so "Add new → pick channel → Run Now" works out of the box.
- Legacy cleanup. Removed the redundant per-agent "Schedule" settings tab (routines are configured from the sidebar — the single source of truth), deleted the orphaned Pipelines tab, retired the dead background poller loop, and stopped the migration that kept resurrecting a deleted accounting task.
Multi-Cloud Provider Adapters + OpenAI Responses API (Milestones 76 & 77)
Added
- Bring-Your-Own-Key for enterprise clouds (Milestone 76): configure AWS Bedrock, Azure OpenAI, and GCP Vertex AI directly from the Cloud Provider Hub, reaching their full model catalogs (not just OpenAI-compatible gateways).
- AWS Bedrock (full catalog): native Converse API adapter reaching Claude, Llama, Titan, Mistral and more, with live model discovery via
ListFoundationModels. Two auth modes, chosen with a toggle in the Bedrock form:- Bedrock API key (recommended) — paste a single Amazon Bedrock API key (Bearer); the simplest setup for end users.
- IAM Access Key + Secret — SigV4 signed per request (session token supported for temporary credentials); signing happens per request, eliminating the "Signature expired" errors seen with cached credentials.
- Inference-profile-aware discovery — model discovery lists invocable cross-Region inference profiles (e.g. Claude Sonnet 4.5) alongside on-demand foundation models, and hides bare IDs that return "on-demand throughput isn't supported".
- Reactive inference-param recovery — when a model rejects an
inferenceConfigfield (e.g. OpenAI models on Bedrock that don't accepttemperature), AMBA removes the offending field named in the error and retries automatically. Model-agnostic, so new restrictions are handled without code changes.
- Azure OpenAI: deployment-routed chat completions with
api-keyauth and configurableapi-version. Shares OpenAI's reactive 400-recovery, so Azure deployments of restricted models (e.g. gpt-6-astra) self-heal — whenreasoning_effort: 'none'is rejected, AMBA switches to a supported value the error lists (low/medium/high/xhigh) instead of failing. - Reasoning models + function tools on OpenAI/Azure via the Responses API (Milestone 77): reasoning models (gpt-6-astra, terra, o-series) are automatically routed to the
/v1/responsesAPI, where function tools are supported — so agent sessions on OpenAI and Azure now work with these models. Non-reasoning models and OpenAI-compatible gateways keep using/v1/chat/completionsunchanged. (If a reasoning model is ever reached over a chat/completions-only gateway, AMBA still returns a clear error suggesting an AWS Bedrock profile.) - GCP Vertex AI: Gemini
generateContentwith service-account OAuth2 (short-lived tokens minted and cached per session). - Per-provider credential forms: dedicated secure input fields per cloud (AWS keys + region, Azure endpoint + version, Vertex service-account JSON + project/location), stored in the OS keychain. Existing API keys continue to work unchanged.
- 1-click presets: AWS Bedrock, Azure OpenAI, and GCP Vertex added alongside the existing DeepSeek/OpenRouter/Groq/Together presets.
- AWS Bedrock (full catalog): native Converse API adapter reaching Claude, Llama, Titan, Mistral and more, with live model discovery via
0.5.7 — 2026-09-30
> Tagged only — never distributed (updater, R2 and download portal stayed on 0.5.6); superseded by the next release.
Added
- High-Fidelity In-Tree Excel Formula Engine & Auto-Evaluation (Milestone 55):
- Rust In-Tree Formula Evaluator: Pure Rust recursive descent formula engine (
evaluator.rs) supporting arithmetic operations, parenthesized expressions, and standard business functions (SUM,AVERAGE/AVG,COUNT,MAX,MIN,ROUND,ABS,IF). - Zero-Zero Invariant Guarantee: Evaluates formulas at generation time and writes computed results via
worksheet.set_formula_result(), ensuring Excel displays authentic values immediately without showing<v>0</v>. - Auto-Recalculation on Read: Automatically evaluates formulas when reading
.xlsxspreadsheets where cached values are0or empty, keeping spreadsheet previews accurate and responsive. - Resilient Cell Parsing: Supports formula strings missing leading
=, object cells ({"formula": "...", "value": ...}), and auto-evaluates formulas embedded inside Markdown tables and CSV files.
- Rust In-Tree Formula Evaluator: Pure Rust recursive descent formula engine (
- Conversational Flow, Turn-Scoped Deliverables & Surgical Core Tools (Milestone 54):
- Turn-Scoped Deliverables: Cleanly isolates draft deliverable cards per conversational turn in
ProjectChat.vue, eliminating ghost file cards from previous turns. - Surgical Tool
replace_file_content: Native Rust tool for exact string replacement with line-range constraints (start_line,end_line), occurrence counting, andallow_multipleguards. - Structural Tool
directory_tree: Fast ASCII hierarchy generator for file tree exploration with depth limiting and noise filtering (.git,node_modules,target, etc.). - OpenAI gpt-5.6-terra Auto-Recovery: Intercepts reasoning model 400 errors and automatically adjusts
reasoning_effort: "none"for/v1/chat/completionsfunction-calling compatibility.
- Turn-Scoped Deliverables: Cleanly isolates draft deliverable cards per conversational turn in
- Google Gemini 429 Self-Healing & Context Token Blast Cap (Milestone 53):
- Exponential Backoff with Header Parsing: Automatically extracts
Retry-Afterdelay directives from Gemini 429 rate limit responses with a safe 35-second ceiling. - Anti-Context Blast Cap: Protects users against sudden API cost spikes by bounding context injection to budget limits.
- Exponential Backoff with Header Parsing: Automatically extracts
- Real-Time Token Telemetry & ReAct Loop Metrics (Milestone 52):
- Step-Level Token Badges: Real-time display of input/output token usage in thought steps, activity trays, and assistant message action bars (
⚡ 1.5k tok (↓1.2k ↑350)).
- Step-Level Token Badges: Real-time display of input/output token usage in thought steps, activity trays, and assistant message action bars (
- Offline Document Conversion Engine & Anti-Token-Blast Guard (Milestone 51):
- Local Document Conversion (
document_convert): Zero-token offline conversion of Office formats (.docx,.xlsx,.pptx) to clean Markdown representations. - Anti-Token-Blast Guard: Automatically intercepts massive documents in
filesystem_readand offers 1-click conversion to protect the model's context budget.
- Local Document Conversion (
- Local Workspace Indexer & Hybrid Retrieval Engine (Milestone 50):
- SQLite FTS5 Full-Text Indexer: Embedded full-text search with incremental chunking and
unicode61diacritics removal. - Hybrid Search Tool (
workspace_search): Combines BM25 lexical precision with semantic vector search via Reciprocal Rank Fusion (RRF). - Surgical Line Slicing: Added
start_line,end_line, andshow_line_numberstofilesystem_readto reduce token consumption by > 90%.
- SQLite FTS5 Full-Text Indexer: Embedded full-text search with incremental chunking and
- Large Document Streaming Parser & Token-Budgeted Grounding (Milestone 49):
- Resilient Streaming DOCX Parser: Non-blocking chunked XML streaming with pure-text fallback recovery for corrupted documents.
- Anti-Binary Guard Invariant: Strictly prevents Office document formats from falling through to raw binary byte checks.
- Query-Grounded Filtering & TOC Outlines: Extracts structured Table of Contents maps and semantic paragraph excerpts with context windows.
0.5.6 — 2026-09-25
Added
- Unified Modal Design System & Pro-Desktop Dialog Experience (Milestone 48):
- Streamlined 3-Tab Project Settings: Reduced project configuration from 5 tabs down to 3 (
general,security,danger), eliminating horizontal tab scrolling and dialog jumping. - Non-Technical Permissions & Security Matrix: Intuitive Allow/Deny segmented controls for Filesystem Sandbox, Web Search, Terminal Commands (blocked by default), and MCP Plugins.
- Authoritative Modal Standards: Standardized dialog geometry (
max-w-[720px],rounded-2xl, standard Tailwind padding) acrossAccountSetupModal,FeedbackModal,ProjectCreateModal,ProjectDeleteModal,ResetSessionModal, andProjectOperationsModal.
- Streamlined 3-Tab Project Settings: Reduced project configuration from 5 tabs down to 3 (
- Two-Layer Executive Agent Architecture & Agent Studio (Milestone 44):
- Agent Studio Marketplace: Dynamic catalog synced directly from Cloudflare R2 (
https://r2.ambadesk.com/alpha/catalog/agents.json) with duplicate-safe installation and 1-click cloud sync. - 6 Canonical Specialist Personas: Pre-trained personas compiled from Single Source of Truth playbooks (
catalog/playbooks/): Financial Analyst, Business Writer, Strategy Consultant, Market Researcher, Data Analyst, and Chief of Staff. - AI Co-Creation Wizard: Interactive
🪄 Co-create with AIflow for structuring custom specialist agents from natural dialogue. - Multi-Agent Project Roster: Visual sidebar agent grid, 0ms instant tab switching with preserved chat history, open file preview, and scroll position.
- Agent Studio Marketplace: Dynamic catalog synced directly from Cloudflare R2 (
- TypeSafe AI (Jev — System 1 Decision Engine) (Milestone 43):
- Sub-second intent classification and automatic cognitive mode routing (
Research,Plan,Agent) with real-time latency badges (Jev · 68ms). - Integrated into Step 3 of Model Settings alongside OpenRouter.
- Sub-second intent classification and automatic cognitive mode routing (
- Cross-Lingual Reasoning Boundary (ADR-020):
- Internal chain-of-thought and calculation reasoning inside
<thought>blocks strictly conducted in Technical English to eliminate arithmetic and parameter hallucinations. - Deliverables and UI communications compiled natively in active project locale (
en,vi,ja,ko).
- Internal chain-of-thought and calculation reasoning inside
- Documentation & Homesite Parity:
- Replaced ASCII architecture diagrams with responsive, theme-aware
<ExecutivePersonasFlow />component. - Full multilingual parity across all concept docs, getting-started guides, and playbooks.
- Replaced ASCII architecture diagrams with responsive, theme-aware
0.5.5 — 2026-09-18
Added
- Frictionless Onboarding, Zero-Typing Sandboxes & Managed Trial Gateway (Milestone 37):
- Zero-Typing Interactive C-Suite Demo Sandboxes: Added interactive sandbox picker modal (
WelcomeSandboxModal.vue) pre-seeding realistic business projects for Chief of Staff, Accounting & Finance, and Operations with zero API keys required. - Cloudflare Edge Trial Gateway: Deployed edge trial gateway with anonymous client token enforcement, rate limiting, and device quota protection.
- Desktop Runtime
AmbaCloudProvider: Implemented managed trial provider fallback with transparent BYOK handoff dialog when quota expires. - Deep File Mention & Categorized Playbook Suites: Enhanced chat dock with quick
@filementions and domain-categorized prompt libraries.
- Zero-Typing Interactive C-Suite Demo Sandboxes: Added interactive sandbox picker modal (
- Office Presentation Fidelity & Virtual Artboard Projection (Milestone 30/37):
- 16:9 Vector Slide Artboard Engine: Introduced fixed virtual artboard presentation viewer (
PresentationViewer.vue) with CSS percentage coordinates, auto-scaling typography, and vector shape rendering. - Rich PPTX Formatting: Added full support for rich text runs (bold, italic, colors), bullet dots, multi-level indentations, and theme background reference resolution (
bgRef).
- 16:9 Vector Slide Artboard Engine: Introduced fixed virtual artboard presentation viewer (
- Two-Stage Plan Execution & Chronological Blueprints (Milestones 35 & 36):
- Chronological Plan Blueprints: Structured agent plans into
plans/YYYYMMDD_<slug>.mdwith organized deliverable outputs underdeliverables/. - Lean Triad Cognitive Modes: Streamlined execution into three high-signal modes:
explore,plan, andexecute. - Pro Markdown Editor: Integrated direct raw source editing with line numbers, word-wrap toggles, and instant disk synchronization.
- Chronological Plan Blueprints: Structured agent plans into
- Multilingual UI & Documentation Consistency:
- Standardized English as primary language across homesite manuals with zero Vietnamese residual text.
- Replaced Mermaid diagram with Unicode box-drawing raw text block on documentation site.
- Canonical language selector ordering (
en,ja,ko,vi) without hardcoded bias. - Added full localization for desktop sidebar navigation ("Show more" / "Show less" and collapse toggles).
Distribution
- Version Alignment: Aligned release version strings to
0.5.5across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
0.5.4 — 2026-09-17
Added
- Version-Partitioned Object Storage & Cloudflare R2 Distribution Architecture:
- Implemented version-partitioned binary storage under
alpha/vX.Y.Z/across all release workflows (release-windows.yml,release-macos-arm.yml,release-macos-intel.yml,release-linux.yml, andrelease-all.yml). - Added dedicated snapshot manifest generation (
alpha/vX.Y.Z/latest.json) preserving historical release states. - Maintained top-level
alpha/latest.jsonpointer manifest withno-cacheheader for zero-lag live OTA updater detection and homesite download resolution.
- Implemented version-partitioned binary storage under
- Windows Release Pipeline Hardening:
- Eliminated silent
continue-on-errormasking on Windows runner deployment. - Added automated CLI environment provisioning for
ghandawstools on Windows self-hosted and cloud runners. - Fixed cross-platform directory separator traversal in bundle collection.
- Eliminated silent
Distribution
- Version Alignment: Aligned release version strings to
0.5.4across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
0.5.3 — 2026-09-17
Added
- Flexible Runner Environment for macOS Intel CI/CD:
- Added runner environment selection (
self-hostedvsgithub-hostedmacos-13) to.github/workflows/release-macos-intel.ymland unified multi-platform release.github/workflows/release-all.yml. - Enables zero-quota local execution on dedicated Mac Pro runners while preserving cloud fallback elasticity on GitHub Actions.
- Added runner environment selection (
Distribution
- Version Alignment: Aligned release version strings to
0.5.3across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
0.5.2 — 2026-09-17
Added
- Dual-Destination Edge Distribution & D1 Catalog Sync (ADR-043, Milestone 32):
- Deployed
release_artifactsedge metadata catalog on Cloudflare D1 with secure management token verification (X-Release-Secret). - Added CLI synchronization tool (
scripts/register-release-artifacts.mjs,pnpm run release:sync-d1) supporting atomic dual-sync from Cloudflare R2 to D1. - Extended Cloudflare Worker with authenticated ingestion
POST /v1/releases/artifactsand public distribution endpoints (/v1/releases/latest,/v1/releases/download/:platform). - Codified R2 bucket storage hygiene and automated D1 registration across all GitHub Actions release workflows (
release-*.yml).
- Deployed
Distribution
- Version Alignment: Aligned release version strings to
0.5.2across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
0.5.1 — 2026-09-17
Fixed
- Hybrid Scanned PDF OCR Adapter Hardening: Enhanced explicit memory buffer typing and bounds safety in scanned PDF text extraction adapter (
src-tauri/src/context/adapters/pdf.rs).
Distribution
- Version Alignment: Aligned release version strings to
0.5.1across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
0.5.0 — 2026-09-16
Added
- Modern Pro-Desktop UI Core & Tailwind CSS Migration: Complete transformation of the UI system to Tailwind CSS with semantic tokens, full dark/light theme support, and shadcn-vue primitives (
AppShell,ProjectStudio,Tabs,Dialog,DropdownMenu). - Studio Resizable Panes & Workspace Ergonomics: Integrated draggable splitters (
ResizablePanelGroup) across File Tree, Chat, and Deliverable Viewers with persistence and zero flicker. - Headless Document Core & Doc-Ops Mutation Engine (ADR-041): Rust canonical document mutations with atomic checkpoint snapshots (
.revisions/), instant rollbacks, and visual diff reviews (DiffReviewBar). - Interactive Spreadsheet Viewport & Co-Editing: Viewport windowing IPC streaming for massive spreadsheets with inline editing intent emission, formula bar (
fx), multi-sheet tabs, and cell diff highlighting. - High-Fidelity Document Viewers Suite: Native rendered and raw source toggle projections for Markdown, Word (
.docx), PowerPoint (.pptx), HTML, and Vector PDF documents with clean unified Pro-Desktop header bars. - Office Fidelity, Editable Source & Native Context Menu: Direct file inspection, desktop OS app launching, clipboard copying, and native context menu suppression in Tauri desktop runtime.
- Hybrid Scanned Document Ingestion & Multimodal Vision Engine (ADR-042): Scanned PDF OCR extraction via Apple Vision / Rust heuristics with automatic fallback and grounded reasoning guardrails.
- Delivery Channels & Local Folder Connector: Bi-directional file dispatching with Local Folder Inbound connector, Telegram outbound file routing, and resilient MIME resolution.
- Fully Responsive Feedback & Support Modal: Roomy responsive grid, sentiment rating strip with multiline truncation safeguards, and compact touch-friendly mobile layouts.
- Complete Four-Locale Localization: Harmonized translation coverage across English, Vietnamese, Japanese, and Korean across all panels, settings, and documentation.
- Closed-Loop Resolution: Formally resolves and closes GitHub issues #8 and #9 delivered in the v0.5.0 milestone (closes #8, closes #9).
Quality
- 465 Vitest unit tests passing across 73 suites (100%).
- 309 Rust unit and integration tests passing (100%).
- 0 TypeScript compiler errors (
vue-tsc --noEmit). - Clean VitePress documentation build (
pnpm site:build).
0.4.23 — 2026-09-13
Added
- Google Drive Native Docs Export Engine (TASK-111): Google Sheets (
application/vnd.google-apps.spreadsheet) are automatically exported to.xlsx(OOXML) format via the Drive export API; Google Docs (application/vnd.google-apps.document) are automatically exported to.pdf. Eliminates HTTP 403 Forbidden errors that previously blocked native Workspace file downloads. - Checksum Deduplication for Exported Files (TASK-111): Exported files lack Drive MD5/size metadata; deduplication now compares local file modification time against remote
modifiedTimeto prevent redundant re-downloads. - Auto-ingest Exported Spreadsheets (TASK-111): Exported
.xlsxfiles are automatically loaded into the project's.analytics.dbviaload_spreadsheet_into_tablefor immediate analysis. - Storage Reactivity & Instant File Tree Updates (TASK-111):
sync_pipeline_bindingandsync_account_pipelinesnow re-index theproject_filesSQLite table viaresync_files_in_storageand emitproject:files-updatedimmediately after sync — files appear in the SOURCE DOCUMENTS pane without requiring an app reload. - On-Demand Google Drive Sync Badges (TASK-112):
CloudImportModalnow displays an⚡ On-Demand Sync & 08:00 Schedulebadge and informational description explaining the governed on-demand fetch model across all 4 locales (en/vi/ja/ko). - Transparent Sync Progress & Feedback (TASK-112): The "Save & Sync Folder Rule" button now shows a
mdi:loadingspinner with thecloud_saving_and_syncinglabel while syncing. On success, a toast displays the exact number of files fetched and bytes transferred. On failure, a clear warning toast shows the actionable error message — replacing the previous silentcatch {}. - Quick Sync All-Sources Button (TASK-112): SOURCE DOCUMENTS pane header now shows a dedicated quick-sync button with
dossier_quick_sync_tooltip("Sync all data sources (Google Drive & Telegram)") that triggers synchronous fan-out across all active Google Drive and Telegram pipeline bindings. - Hermetic Export Test (TASK-111):
test_google_drive_export_spreadsheet_to_xlsxadded toservices::connectors::testswith an in-process mock HTTP export server validating the full Sheets →.xlsxexport and deduplication flow.
Quality
- 359 Rust unit + integration tests passing (100%).
- 300 Vitest tests passing across 46 suites (100%).
- 0 TypeScript errors (
vue-tsc --noEmit). - Clean VitePress documentation build (
pnpm site:build).
0.4.17 — 2026-09-10
Added
- Milestone 14: Telegram Multi-Group Operations & Rule-Based Workspace Organizer (ADR-033)
- Telegram Bot Long Polling Engine: Zero-port local sync directly inside Tauri Rust runtime (TASK-79)
- Multi-Group Rule Router: Deterministic mapping of Telegram departmental chats to project zones (e.g. Accounting to
data/accounting, Operations toworkings/operations) with automated SQLite table loading and vector memory chunking (TASK-79) - Interactive Chat Discovery: One-click "Scan Active Chats" probe resolving numerical Telegram Chat IDs into group names (TASK-79, TASK-80)
- Multi-Group Configuration UI: Group-to-Folder mapping table, presets, auto-ingestion toggles in ConnectorSetupModal and ProjectConnectorsTab (TASK-80)
- Two-Tier Connector Architecture: Promoted Telegram & Google Drive to Core Global Connectors; demoted Zalo OA to Regional Extensions (Vietnam) (TASK-81)
- Hermetic Telegram Mock Integration Suite: End-to-end multi-group sync, deduplication, and sandbox traversal test harness (TASK-82)
0.4.16 — 2026-09-10
- External Connectors & Sandboxed Sync Pipeline (TASK-73, TASK-74, ADR-032, closes #6):
- Introduced local-first external connector runtime architecture supporting Google Drive and Zalo Official Account (OA).
- Stored sensitive OAuth tokens, client secrets, and refresh tokens strictly in OS Keychain (
connector:<id>), ensuring zero token leakage in SQLite or plaintext configuration. - Implemented Google Drive Connector with automatic token refresh, folder-scoped querying, stream downloading into
<project_root>/connectors/google_drive/, path traversal defense guards, and MD5/SHA-256 checksum deduplication skipping unchanged files with 0 bytes transferred. - Implemented Zalo OA Connector with OpenAPI OAuth refresh, transactional message attachment querying, download streaming into
<project_root>/connectors/zalo/, and size/hash deduplication. - Recorded detailed audit trails for all sync operations in
connector_sync_logstable (status, files fetched, bytes transferred, duration, per-file actions).
- Rule-Based Auto-Ingestion Router & Persistent Knowledge UI State (TASK-75, ADR-032):
- Implemented automated rule-based file ingestion router dispatching synced files from
connectors/into designated project zones:- Spreadsheets (
.xlsx,.xls,.csv,.tsv) $\rightarrow$data/<filename>and automatically parsed and loaded into analytical SQLite tables inworkings/.analytics.db. - Documents (
.pdf,.docx,.md,.txt) $\rightarrow$context/<filename>and chunked intosemantic_memoriesfor grounded semantic retrieval. - Images (
.png,.jpg,.jpeg) $\rightarrow$workings/receipts/<filename>.
- Spreadsheets (
- Audited and persisted all ingested sources into SQLite
project_ingested_sourcestable. - Fixed Knowledge UI Button Reset Bug: persisted
source_idintoproject_ingested_sourcesacross project switches inProjectChat.vue, permanently restoring green "Ingested" (Đã lưu) state. - Added real-time Tauri IPC notification event
project:file_ingested.
- Implemented automated rule-based file ingestion router dispatching synced files from
- Scheduled Daily Executive Dispatch Engine (TASK-76, ADR-032):
- Built lightweight in-tree scheduler running inside single-process
tauri::async_runtime::spawnwith zero cron daemons or node sidecars. - Implemented 5-step automated executive dispatch sequence: (1) sync all active connectors, (2) auto-ingest pending files into project zones, (3) execute agent reasoning in
AgentMode::Exec, (4) promote draft deliverables fromworkings/drafts/tooutput/with companion vector.pdfauto-compilation, (5) trigger desktop notification eventproject:scheduled_run_completed. - Implemented run-once-per-day idempotency tracking via
project_schedule_last_run:<project_id>with 24-hourHH:MMtime matching. - Added Tauri IPC commands:
get_project_schedule,set_project_schedule, andtrigger_scheduled_run_now.
- Built lightweight in-tree scheduler running inside single-process
- Connector Management & Sync Status UI (TASK-77, ADR-032):
- Built
ConnectorSetupModal.vuewith tabbed selector for Google Drive and Zalo OA, credential reveal/hide toggles, diagnostic "Test Connection" button, and OS Keychain persistence. - Built
ProjectConnectorsTab.vuefeaturing connector cards (status pills, folder/OA ID, filters, last synced time, "Sync Now" with spinning state, "Configure", "Delete"), Daily Schedule Card (enable toggle, time picker 24h, playbook selector dropdown, custom dispatch prompt, "Save Schedule" and "Run Now" triggers), and Recent Sync Activity table. - Integrated
ProjectConnectorsTab.vuedirectly intoProjectStudio.vueworkspace tab bar. - Added complete localization strings across English, Vietnamese, Japanese, and Korean.
- Built
- E2E Connector QA Suite & Integration Verification (TASK-78, Milestone 13 Complete):
- Created comprehensive hermetic integration test suite
src-tauri/tests/connector_tests.rs:test_google_drive_e2e_sync_and_deduplication: Verified mock Google Drive sync, landing inconnectors/google_drive/, audit logging, and secondary syncskipped_unchangedassertion with 0 bytes transferred.test_zalo_oa_attachment_ingest: Verified mock Zalo OA transaction attachment fetch, local receipt storage, and hash deduplication.test_rule_based_auto_ingestion_routing: Verified automatic routing of.xlsxintodata/and table loading in.analytics.db,.pdfintocontext/with semantic chunks, and.pngintoworkings/receipts/.test_scheduled_dispatch_execution_flow: Verified daily time validation, run-once-per-day idempotency, mock execution inAgentMode::Exec, and deliverable promotion tooutput/with companion.pdf.
- Verified 100% test pass rate across 313 Rust tests (296 lib + 17 integration tests), 254 Vitest tests (36 suites), 0 TypeScript errors, and clean VitePress build.
- Created comprehensive hermetic integration test suite
- Version Alignment:
- Synchronized version
0.4.16across the authoritative 16-file release checklist.
- Synchronized version
0.4.15 — 2026-09-10
- Bidirectional Office Fidelity & Visual Mirroring (TASK-70, ADR-031):
- Upgraded
excel_writerwith professional C-Suite design presets: Corporate Navy header fills (#1F4E79), bold white typography, subtle borders, freeze panes (row 1 pinned), auto-fitted column widths clamped between 12 and 45 characters, and visible gridlines. - Enhanced number formatting engine with native support for accounting currency (
$#,##0,$#,##0.00) and percentages (0.0%,0.00%). - Upgraded
pptx_writerwith 16:9 widescreen layout (12192000 x 6858000EMUs) and executive KPI callout cards featuring light slate container accents (#F8FAFC), subtle borders (#CBD5E1), 36pt bold figure typography, and color-coded delta indicators (Emerald Green#16A34Afor positive gains and Crimson Red#DC2626for negative deltas).
- Upgraded
- In-App Formula Bar (
fx) & Cell Inspector UI (TASK-68, ADR-031):- Added pinned In-App Formula Bar (
fx) inSpreadsheetViewer.vuewith active cell coordinate box (A1,C10), stylized italic boldfxbadge, and formula/value inspection input. - Added active cell selection state highlighting clicked cells with high-visibility primary outline.
- Added "Show Formulas" view mode toggle and global shortcut (
Ctrl + ~/Cmd + ~), revealing raw formula strings and subtle tinted styling across all formula cells. - Localized formula inspection controls across English, Vietnamese, Japanese, and Korean.
- Added pinned In-App Formula Bar (
- Formula Graph Engine & Grounded Agent Reasoning (TASK-67, TASK-69, ADR-031):
- Enhanced OpenXML streaming parser (
xlsx_zip.rs) to extract<f>...</f>formula tags into structuredSpreadsheetCellmodels without discarding formula logic. - Implemented formula-aware Markdown table rendering (
render_sheet_markdown) enriching cells with[fx: <formula>]annotations and generating automatic### 📐 Formula Dependency Graphsections. - Codified Section 16 ("Spreadsheet Formula Integrity & Dependency Graph Reasoning") into agent planning instructions across all cognitive modes (
Auto,Exec,Ask,Study).
- Enhanced OpenXML streaming parser (
- Golden Benchmark Suite & Office Turing Test QA (TASK-71, Milestone 12 Complete):
- Created comprehensive hermetic integration test suite
src-tauri/tests/office_roundtrip_tests.rs:test_excel_roundtrip_formula_ast_preservation_and_styling: Verifies mathematical and formula AST invariance across 3-sheet corporate financial models, ensuring 100% of formulas are preserved with leading=, values match, and freeze panes, column widths, and styles remain intact.test_powerpoint_roundtrip_widescreen_and_kpi_cards: Verifies OpenXML slide containers, 16:9 widescreen layout dimensions, KPI card shapes, and semantic extraction viaPptxAdapter.
- Verified 100% pass across 285 Rust tests, 223 Vitest tests, 0 TypeScript errors, and clean VitePress build.
- Created comprehensive hermetic integration test suite
- Version Alignment:
- Synchronized version
0.4.15across the authoritative 16-file release checklist.
- Synchronized version
0.4.14 — 2026-09-10
- Dynamic Edge Updater Protocol & Architecture (TASK-62, TASK-63, ADR-030):
- Deployed dynamic Tauri v2 auto-updater edge route
GET /v1/update/:target/:current_versionon Cloudflare Workers backed by D1 (release_artifacts), returning HTTP 200 with JSON payload when updates exist or clean HTTP 204 No Content when up-to-date. - Implemented atomic CI artifact registration endpoint
POST /v1/releases/artifactwith cryptographic Bearer auth, upserting multi-platform binaries without file locks or race conditions. - Preserved backward-compatible monolithic manifest
GET /v1/releases/latest.jsondynamically aggregated across active platform builds. - Hardened desktop client updater (
commands/updater.rs) to gracefully intercept missing platform fallback errors and 204 responses, eliminating false-positive error modals.
- Deployed dynamic Tauri v2 auto-updater edge route
- Two-Stage Deliverable Lifecycle & Draft Finalization (TASK-64, closes #5 Part 1):
- Enforced two-stage deliverable progression: exploratory and preliminary drafts ("nháp", "tính thử", "draft", "sơ bộ") are routed exclusively to
workings/drafts/<filename>. - Added strict path guard preventing unauthorized preliminary writes directly into client-facing
output/. - Added Executive Draft Review Card in
ProjectChat.vuewith branded document icons, live preview, and one-click "Chốt & Xuất Bản Chính Thức" action promoting approved drafts intooutput/with companion vector.pdfcompilation. - Added draft artifact tracking in
RunCheckpointpreserving draft state across multi-step execution interruptions.
- Enforced two-stage deliverable progression: exploratory and preliminary drafts ("nháp", "tính thử", "draft", "sơ bộ") are routed exclusively to
- C-Suite Analytical Depth Engine for Excel & PowerPoint (TASK-65, closes #5 Part 2):
- Codified Anti-Skeleton Protocol in agent planning instructions and system prompts: mandated interconnected 3-sheet architecture for financial workbooks (
Assumptions & Drivers,Financial Model P&Lwith 15-20+ granular rows, andCash Flow & Sensitivity). - Mandated 5-slide C-suite narrative architecture for presentations (
1: Strategic Thesis,2: Problem & Context,3: Unit Economics & KPI Cards,4: Operational Matrix,5: Governance & Milestones). - Added runtime density heuristics in
ExcelWriteToolandPptxWriteToolwarning against skeletal single-sheet tables or under-developed slide decks.
- Codified Anti-Skeleton Protocol in agent planning instructions and system prompts: mandated interconnected 3-sheet architecture for financial workbooks (
- CI Modernization & Version Alignment:
- Modernized all 5 platform release workflows with automated edge artifact registration.
- Synchronized version
0.4.14across the authoritative 16-file release manifest.
0.4.13 — 2026-09-09
- The Virtual Cabinet 3-Stream Orchestrator & Run Checkpoint Engine (TASK-60, TASK-61):
- Implemented run state checkpointing and automatic resumption engine, allowing interrupted multi-step agent executions to resume deterministically without data loss (closes #2).
- Engineered "The Virtual Cabinet" 3-stream orchestrator managing lifecycle transitions across Source Documents, Assistant's Workbench, and Final Deliverables (closes TASK-60).
- Hardened guardrail tool invocations with auto-spool fallback and secure asynchronous telemetry dispatch (closes #1, closes #4).
- Added end-to-end integration test suite verifying checkpoint resume, panic recovery, and virtual cabinet stream integrity (closes TASK-61).
- Version Alignment:
- Aligned release version strings to
0.4.13across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.12 — 2026-09-09
- Release Governance Standard Operating Procedure & 16-File Protocol:
- Codified the authoritative Release Governance SOP mandating atomic synchronization across all 16 configuration, manual, and runtime files for every release cycle.
- Embedded the Mandatory Release Protocol and 16-File Checklist into the root developer contract (
AGENTS.md) and documentation index (docs/INDEX.md).
- Version Alignment:
- Aligned release version strings to
0.4.12across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.11 — 2026-09-09
- Native Crash Resilience & Panic Tombstone Recovery (ADR-028, Milestone 9):
- Implemented zero-allocation synchronous panic hook in Rust (
security/panic.rs) writing structured, privacy-scrubbed crash tombstones (last_crash.json) during fatal process aborts. - Added startup crash recovery service (
services/crash_recovery.rs) to detect prior abnormal exits, dispatch redacted telemetry to the edge buffer, and purge tombstones from disk. - Sanitized panic backtraces and messages using linear regex masking to guarantee zero credential or user path leakage in crash logs.
- Added comprehensive integration test suite (
tests/crash_recovery_tests.rs) covering panic hook capture, mock server telemetry dispatch, corrupted tombstone purge, and crash payload fidelity.
- Implemented zero-allocation synchronous panic hook in Rust (
- Version Alignment:
- Aligned release version strings to
0.4.11across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.10 — 2026-09-09
- Windows CI/CD Hygiene & Self-Hosted Artifact Isolation:
- Added aggressive cleanup of previous bundle artifacts (
win-artifactsandsrc-tauri/target/.../bundle) in.github/workflows/release-windows.ymlto prevent artifact contamination across self-hosted runner cycles.
- Added aggressive cleanup of previous bundle artifacts (
- Updater Sanitization & Infinite Loop Prevention:
- Enhanced
scripts/update-latest-json-r2-local.mjsto verify platform versions against rootjson.version. - Automatically purges platform entries from updater manifest when platform version does not match root version, preventing infinite update download loops.
- Enhanced
- Version Alignment:
- Aligned release version strings to
0.4.10across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.9 — 2026-09-09
- Automated Feedback & Closed-Loop Issue Triage (ADR-027, Milestone 8):
- Added 1-click incident reporting button in
ProjectChat.vuewith automated context capture (active playbook, failed tool, error classification, redacted log excerpts). - Implemented client-side privacy redactor in Rust (
services/telemetry_redaction.rs) that scrubs IPv4/IPv6, email addresses, JWTs, bearer tokens, and local file system paths (/Users/...,C:\...) before transmission. - Implemented offline SQLite spooling queue (
user_feedbacktable) to guarantee zero report loss during network dropouts. - Deployed Cloudflare Edge Buffer Worker and D1 Database (
amba-feedback-db) athttps://api.ambadesk.com/v1/feedback. - Added SHA-256 defect fingerprinting and multi-client deduplication with zero Git thrashing.
- Added maintainer autonomous triage endpoint
GET /v1/triageand CLI triage tool (scripts/triage-telemetry.mjs) to generate daily decision dossiers for maintainers. - Published Maintainer Telemetry API reference (
docs/API/FEEDBACK_TELEMETRY_API.md) and Issue Triage SOP (docs/DEVOPS/ISSUE_TRIAGE_AND_INCIDENT_SOP.md).
- Added 1-click incident reporting button in
- Repository Governance & Cleanliness:
- Removed legacy sprint documentation (
docs/SPRINTS/) in favor of.agent/PLAN/milestone governance. - Synchronized Master Timeline Index and Kanban strict protocol across all agent guidelines.
- Removed legacy sprint documentation (
0.4.8 — 2026-09-09
- Site Core Concepts refresh & native Mermaid diagrams:
- VitePress now renders Mermaid fences as interactive diagrams (light/dark theme, zoom, copy source) instead of Shiki code blocks.
- Cognitive Modes documentation covers the 5-mode lifecycle (Auto, Ask, Study, Plan, Exec), the in-tree artifact factory, and 1+1 deliverable packs across English, Vietnamese, Japanese, and Korean.
- Security architecture diagrams are localized in all four languages, including Linux Secret Service and encrypted SQLite keychain fallback.
- Mermaid diagrams keep native readable type, expand clipped
foreignObjectlabels, and use compact vertical flowcharts so the last node is fully visible.
- Homepage app-icon parity:
- Navbar, favicon, hero, and footer now use the desktop 3D “A” icon (
src-tauri/icons/icon.png) instead of the legacy gold-star SVG.
- Navbar, favicon, hero, and footer now use the desktop 3D “A” icon (
- Executive Dossier commercial rebrand (ADR-026):
- Homepage, playbook showcase, and user-manual concept pages now present the 3-chamber Executive Dossier (Source Documents, Assistant's Workbench, Final Deliverables) across English, Vietnamese, Japanese, and Korean.
0.4.7 — 2026-09-08
- Business Deliverable Pack & Rigorous Verification Gate (ADR-025):
- Enforced mandatory 1+1 Deliverable Pack (Structured Model + Strategic Narrative) across autonomous playbooks.
- Implemented OpenXML sheet count verification gate in runtime runner to ensure generated workbooks meet declared structural depth.
- Added automatic companion vector PDF generation (
auto_compile_pdf_sibling) alongside Markdown briefings inoutput/. - Hardened deliverable extraction to filter out hypothetical recommendations or example file references.
- Brand Asset Refresh:
- Refreshed high-resolution application icons (
.icns,.ico,.png, and mobile icon suites).
- Refreshed high-resolution application icons (
- Version Alignment:
- Aligned release version strings to
0.4.7across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.6 — 2026-09-07
- Homepage & Site Component Overhaul:
- Refactored
HomeFooter.vuewith streamlined layout and improved visual hierarchy. - Enhanced
PlaybookShowcase.vuewith richer content and improved interactivity. - Added
ReleaseDownloads.vuecomponent for structured release asset presentation. - Expanded
custom.csswith additional responsive styles and visual polish. - Updated hero content in all locale index pages (
en,vi,ja,ko).
- Refactored
- Version Alignment:
- Aligned release version strings to
0.4.6across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.5 — 2026-09-07
- In-Tree Artifact Factory Industrialization & Roundtrip Harness (ADR-024):
- Added bi-directional roundtrip test suite (
tests/factory_roundtrip_tests.rs) verifying content invariance for native DOCX, PPTX, and Excel workbooks. - Implemented parameter tolerance across all factory tools: gracefully parses stringified JSON, 1D flat arrays, key-value rows, and loose LLM payload formats.
- Enhanced phantom-write guardrail: automatically intercepts script generation and guides the agent to invoke native artifact writers directly.
- Added bi-directional roundtrip test suite (
- In-App Factory Self-Test & Diagnostic Telemetry:
- Upgraded native diagnostic command
run_diagnostic_selftestindiagnostics.rsto execute live end-to-end generation and integrity verification for.xlsx,.docx, and.pptxfiles. - Added frontend diagnostics API (
runFactorySelftest) and verified with unit tests.
- Upgraded native diagnostic command
- Runtime Sandboxing & Relative Path Normalization:
- Automatically resolves relative paths against
scope.root_directoryfor deliverable generation across all execution modes.
- Automatically resolves relative paths against
- Version Alignment:
- Aligned release version strings to
0.4.5across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.4 — 2026-09-07
- Commercial Footer Architecture & Feedback Bridge (
ambadesk.com):- Overhauled
HomeFooter.vuewith Architecture & Feedback column linking directly to Project Harness (3-zone sandbox), Cognitive Modes, Live Release Manifest, and direct mail feedback bridge. - Purged all remaining third-party repository links from Privacy Policy (
privacy.md) and Terms of Service (terms.md), standardizing contact onambadesk.comand[email protected]. - Documented Cloudflare Pages deployment configuration in
site/DEPLOYMENT.md.
- Overhauled
- Version Alignment:
- Aligned release version strings to
0.4.4across core runtime, UI clients, manuals, and Cloudflare R2 distribution manifests.
- Aligned release version strings to
0.4.3 — 2026-09-07
- In-Tree Artifact Factory & Autonomous Autopilot Suite (ADR-021, ADR-023):
- Native DOCX compiler (
docx_writer.rs) for corporate documents, contracts, and administrative briefs with zero Python or LibreOffice dependencies. - Native PPTX compiler (
pptx_writer.rs) for executive slide decks with zero external runtime dependencies. - Dual-World filesystem bridge (
workings/working directory vs.output/user-facing deliverables) with auto-compilation and deliverable honesty guardrail.
- Native DOCX compiler (
- Hermetic SQLite-Vec Hybrid Engine & Dense Vector Retrieval (ADR-022):
- Embedded native
sqlite-vecextension (V009__sqlite_vec_memory.sql) enabling C-speed SIMD vector cosine distance and KNN search directly inside SQLite. - Hybrid RRF (Reciprocal Rank Fusion) combining keyword search with dense vector embeddings in
hybrid_engine.rs.
- Embedded native
- Interactive Code Block & Mermaid Diagram Viewers:
- Added
CodeBlockViewer.vueandCodeDocumentViewer.vuewith syntax highlighting, line numbers gutter, and 1-click copy. - Added client-side
MermaidDiagram.vuewith SVG vector rendering, error boundary, and raw source switcher.
- Added
- Homepage & Documentation Parity (
ambadesk.com):- Upgraded commercial landing page hero, feature showcase, and localized footer (
HomeFooter.vue). - Added Privacy Policy (
privacy.md) and Terms of Service (terms.md) across all 4 locales (en,vi,ja,ko). - Fixed CI/CD release updater pipeline across macOS, Windows, and Linux.
- Upgraded commercial landing page hero, feature showcase, and localized footer (
0.4.2 — 2026-09-06
- Built-In Fixture Diagnostic Self-Test (TASK-23):
- Added native Rust diagnostic command
run_diagnostic_selftestinsrc-tauri/src/commands/diagnostics.rsrunning a hermetic end-to-end reconciliation fixture locally (SQLite table ingestion, $50 discrepancy detection,.xlsxspreadsheet writing, vector.pdfcompilation, and sandbox path traversal guardrail). - Verifies host OS compatibility with zero external LLM API keys and 0 cloud token spend.
- Added interactive System Health Self-Test card in Settings (
SettingsPanel.vue) with 4-point live status checkmarks, execution duration (ms), and OS telemetry across all 4 locales (en,vi,ja,ko).
- Added native Rust diagnostic command
- Tool Display Localization & Translation Badges:
- Implemented internationalized display names, descriptions, and argument summaries for built-in tools across English, Vietnamese, Japanese, and Korean.
- Added
LocaleTranslateBadge.vueto indicate localized system tools cleanly in the UI.
- Linux Installation Documentation & Secret Service Parity (TASK-24):
- Added dedicated Linux installation guides (
.deb, standalone.AppImage) tosite/manual/getting-started/installation.mdacross all 4 locales (en,vi,ja,ko). - Documented Linux system requirements (
libwebkit2gtk-4.1-0,libssl3) and FreeDesktop D-Bus Secret Service integration with automatic fallback to local encrypted SQLite storage for minimal window managers (i3, sway, bspwm). - Aligned release version strings across client UI (
FeedbackModal.vue), locales, andsite/package.jsonto0.4.2.
- Added dedicated Linux installation guides (
0.4.1 — 2026-09-05
- Dedicated Multi-Platform CI/CD Pipeline & Architecture Independence:
- Separated release workflows into 4 independent pipelines: macOS Intel (
release-macos-intel.yml), macOS Apple Silicon (release-macos-arm.yml), Windows (release-windows.yml), Linux (release-linux.yml), and a unified All-in-1 orchestrator (release-all.yml). - Solved cross-compilation resource starvation on memory-constrained Intel runners by decoupling Apple Silicon builds to native ARM cloud environments.
- Eliminated interactive Keychain authorization and cache prompts on self-hosted macOS runners with automated headless keychain lifecycle and restored default keychain.
- Core framework production hardening and performance optimizations.
- Separated release workflows into 4 independent pipelines: macOS Intel (
0.3.9 — 2026-09-04
- Smart Multi-Platform Manifest Merge & Accurate Portal Download Links:
- Upgraded
scripts/update-latest-json-r2-local.mjsto fetch and merge existing remote platforms from Cloudflare R2, ensuring independent self-hosted builds never overwrite or wipe out other OS platform binaries. - Fixed portal download matrix (
ReleaseDownloads.vue) to resolve exact live versions per platform, preventing 404 errors for platforms pending independent build.
- Upgraded
0.3.8 — 2026-09-04
- Dedicated Multi-OS Self-Hosted Pipelines (macOS, Linux, Windows):
- Added dedicated macOS Self-Hosted release workflow (
release-macos-self-hosted.yml) running on[self-hosted, macOS, X64]with Intel x64 and cross-compiled Apple Silicon aarch64 support, Apple code signing, and notarization. - Added dedicated Linux / Ubuntu Self-Hosted release workflow (
release-linux-self-hosted.yml) running on[self-hosted, Linux, X64]with.deband.AppImagedistribution. - Decoupled self-hosted flows independently: all 3 OS platforms can now build on private self-hosted infrastructure with 0 GitHub Actions quota minutes consumed and automated Cloudflare R2 artifact synchronization.
- Added dedicated macOS Self-Hosted release workflow (
0.3.7 — 2026-09-04
- Full 4-Language Localization Parity (EN, VI, JA, KO):
- Added full Japanese (
ja— 日本語) and Korean (ko— 한국어) localized dictionaries, matching the commercial portal and user manual documentation (ambadesk.com). - Modularized locale dictionaries into
src/locales/{en,vi,ja,ko}.tsand exportedSUPPORTED_LANGUAGES. - Upgraded
AppShell.vuequick language segmented switcher (EN, VI, JA, KO) andSettingsPanel.vueappearance language cards. - Expanded unit test coverage in
useI18n.spec.tsto verify all 4 languages, dynamic parameter substitutions, and reactive locale switching.
- Added full Japanese (
- History vs Usage Navigation Decoupling & Execution Runs Pagination:
- Separated token analytics and cost tracking into a dedicated Usage (
/usage) view (UsagePanel.vue), while dedicating History (/history) to execution traces and event inspections (HistoryPanel.vue). - Added full pagination (10/25/50 items per page), status and project filtering, and query search for execution history.
- Separated token analytics and cost tracking into a dedicated Usage (
- Capital & Debt Financing Executive Suite:
- Added
capital-debt-financingproject template and runtime system directives for capital structure modeling, debt repayment schedules, and investor pitch deck preparation.
- Added
- Modal Reactivity & Global UI Spacing Standardization:
- Restored teleportation and tab switching reactivity across project configuration modals.
- Standardized fractional padding classes in
main.scss(p-3.5,gap-2.5, etc.) across all screens.
0.3.6 — 2026-09-03
- Portal Download Grid & Unified Action Button Styling:
- Re-designed download table with full grid borders and centralized action buttons.
- Standardized transparent ghost download buttons with hover effects and localized platform-specific labels.
0.3.5 — 2026-09-03
- Portal Download Section UI & Table Formatting Polish:
- Re-architected download matrix table with fixed layout, clean status badges, platform icons, and distinct primary/secondary download button styling.
- Enhanced responsive mobile view and typography across all 4 localized portals.
0.3.4 — 2026-09-03
- Full Multi-OS Download Matrix & Edge Proxy Resolution:
- Upgraded
ReleaseDownloads.vuematrix to directly support all 6 OS binary formats (macOS Apple Silicon, macOS Intel, Windows EXE, Windows MSI, Linux AppImage, Linux DEB). - Added Cloudflare Pages edge proxy
/api/latest.jsonto eliminate CORS issues and optimize client-side release manifest caching.
- Upgraded
0.3.3 — 2026-09-03
- CI Runner Disk Space & Cache Optimization:
- Added pre-build disk freeing step on Ubuntu runners (
ci.yml&release.yml) to prevent runner storage exhaustion. - Standardized on
swatinem/rust-cache@v2across all workflows.
- Added pre-build disk freeing step on Ubuntu runners (
0.3.2 — 2026-09-03
- Commercial Portal & Dynamic Cloudflare R2 Downloads Integration:
- Integrated dynamic
ReleaseDownloads.vuecomponent querying livehttps://r2.ambadesk.com/alpha/latest.jsonfor automatic real-time download resolution. - Complete 4-language VitePress site (
site/) with zero external GitHub references, enterprise business-first positioning, and 9 comprehensive user manual guides. - Added pilot distribution and deployment documentation (
docs/STRATEGY/anddocs/DEVOPS/).
- Integrated dynamic
0.3.1 — 2026-09-03
- Commercial Homepage & Manual Overhaul (Business-First, Zero-GitHub, Full i18n):
- Zero-GitHub Clean Surface: Purged all GitHub repository links, social icons, and release pointers across the entire commercial portal, replacing them with official direct desktop application downloads on
ambadesk.com. - Enterprise Business Target Alignment: Completely re-architected landing page value propositions and FAQ for non-technical enterprise users (CEOs, CFOs, Controllers, Media Agency Leads), focusing on 100% local privacy, zero-hallucination deterministic math, and ready-to-use business playbooks.
- 4-Language Multi-Lingual Architecture: Full VitePress internationalization for English, Vietnamese (
/vi/), Japanese (/ja/), and Korean (/ko/), translating the landing page and all 9 user manual guides and executive playbooks.
- Zero-GitHub Clean Surface: Purged all GitHub repository links, social icons, and release pointers across the entire commercial portal, replacing them with official direct desktop application downloads on
- Template Naming & Plan Review UX Refinements:
- Refined domain template labels and Vietnamese localization strings.
- Formatted Rust codebase according to standard
rustfmtguidelines. - Enhanced document viewer and plan referral card styling.
0.3.0 — 2026-09-03
- Milestone 2 — B2B Enterprise & Deterministic Accounting MCP Architecture:
- Deterministic SQLite Analytical Engine: Built native accounting calculation tools (
accounting_load_file,accounting_sql_query,accounting_reconcile_sheets) enabling 100% deterministic arithmetic aggregation, zero-mental-arithmetic guardrails, and automated invoice/bank reconciliation. - Persistent MCP Server Lifecycle Management: Configured SQLite storage (
V008__mcp_servers.sql), auto-reconnection on application launch, and complete ToolsPanel management controls. - Unified "Job & Brain" Paradigm Across Full Lifecycle: Replaced legacy "Assigned Agent" dropdowns with domain project templates (
executive-command-center,invoice-reconciliation,pnl-analysis,payroll-audit,media-planning-pitch) and hot-swappable cognitive brain models. - Cursor-Style Physical Plan Generation (
workings/plans/): Auto-exports structured plans toplan_{slug}_{hash}.md, displays compactPlanReferralCardin chat, and provides dedicated ⚡ Build / Execute Plan action in the file viewer. - Streamlined Cognitive Modes & Zero Thought-Dumping Clutter: Mode-gated auto-export strictly to
Planmode, eliminating scratchpad clutter inAskandStudymodes. - Calculation Audit Trail: Real-time verified badges, SQL code copying, and returned row counts in the Activity Tray.
- Deterministic SQLite Analytical Engine: Built native accounting calculation tools (
0.2.18 — 2026-09-03
- Context Prefetching & Heuristic Knowledge Distillation Hardening:
- Enhanced context prefetch error handling and adapter robustness in Rust runtime.
- Refined heuristic distillation tag generation and whitespace cleanup across multi-language prompts.
- Fixed unused warning imports in updater and memory IPC commands.
0.2.17 — 2026-08-31
- Automated Cloudflare R2 Deployment Pipeline (
deploy-r2):- Added automated
deploy-r2job in release workflows to sync release bundles,.sigsignatures, and rewrittenlatest.jsondirectly to Cloudflare R2 (https://r2.ambadesk.com/alpha/). - Optimized cache-control policies (
no-cacheforlatest.json, 1-year immutable cache for binaries). - Added
scripts/update-latest-json-r2-local.mjsfor local asset URL rewriting.
- Added automated
0.2.16 — 2026-08-31
- Automated Cloudflare R2 Download URL Rewriting in latest.json:
- Implemented
scripts/rewrite-latest-json-r2.mjsto automatically rewrite asset download URLs inlatest.jsonfrom GitHub releases tohttps://r2.ambadesk.com/alpha/<filename>. - Integrated into both
release-windows-self-hosted.ymlandrelease.ymlworkflows.
- Implemented
0.2.15 — 2026-08-31
- In-App Auto-Update Verification Release:
- Incremented version for end-to-end testing of OTA in-app updater download, signature check, and SQLite WAL-safe restart workflow.
0.2.14 — 2026-08-31
- Dedicated R2 Alpha Updater Endpoint Integration:
- Updated in-app auto-updater endpoint to
https://r2.ambadesk.com/alpha/latest.jsonfor high-availability CDN-accelerated OTA updates.
- Updated in-app auto-updater endpoint to
0.2.13 — 2026-08-30
- In-App Auto-Update Packaging Artifacts & Minisign Key Hardening:
- Configured
bundle.createUpdaterArtifacts: trueintauri.conf.jsonto generate compressed OTA update bundles (.tar.gzand.sigsignatures). - Hardened private key password handling (
TAURI_SIGNING_PRIVATE_KEY_PASSWORD) in release workflows. - Added
.gitignorerule for public/private key pairs (*.key.pub).
- Configured
0.2.12 — 2026-08-30
- Manual Deploy Workflow Dispatch Control:
- Temporarily commented out automatic tag push triggers across release workflows.
- Releases are dispatched manually on-demand from GitHub Actions UI to prevent unwanted quota consumption.
0.2.11 — 2026-08-30
- Windows Self-Hosted Toolchain & Git Bash Hardening:
- Automatically locates and adds Git Bash (
bash.exe) intoGITHUB_PATHon on-premise Windows runners. - Standardized on
actions-rust-lang/setup-rust-toolchain@v1with explicitstable-x86_64-pc-windows-msvctarget enforcement for Windows self-hosted builds.
- Automatically locates and adds Git Bash (
0.2.10 — 2026-08-30
- Dedicated Standalone Self-Hosted Windows Release Workflow:
- Separated self-hosted Windows packaging into a standalone workflow (
.github/workflows/release-windows-self-hosted.yml) that bypasses GitHub-hosted runner quota limitations completely. - Runs directly on on-premise Windows runners (
['self-hosted', 'Windows', 'X64']) with 0 GitHub Actions quota minutes consumed.
- Separated self-hosted Windows packaging into a standalone workflow (
0.2.9 — 2026-08-30
- Self-Hosted Windows Runner Pipeline Integration:
- Added support for dedicated self-hosted Windows runners (
['self-hosted', 'Windows', 'X64']) alongside standard GitHub-hostedwindows-latestrunners. - Interactive platform selection allows dispatching dedicated builds directly to local/on-premise Windows runners while maintaining GitHub Actions standard runners as default for automated releases.
- Added support for dedicated self-hosted Windows runners (
0.2.8 — 2026-08-30
In-App Auto-Update & Over-The-Air (OTA) Release Architecture (ADR-019):
- Self-Updating Without Reinstallation: Desktop app can now check, download, and install updates in-place without requiring the user to re-download
.dmg,.exe, or installer packages manually. - Cryptographic Minisign Verification: Every update payload is cryptographically validated using Ed25519 signatures before execution, safeguarding against unauthorized or tampered binaries.
- Safe Database Restart: Implemented atomic SQLite WAL checkpoint flushing (
PRAGMA wal_checkpoint(TRUNCATE);) before app relaunch to ensure 0 database corruption. User projects (~/AMBA/Projects), local databases, and keychain credentials are 100% preserved across updates. - Interactive Update Modal (
UpdateModal.vue): Displays version change badges, release notes preview, and real-time streaming download progress bar with byte counts and percentage. - Settings Integration: Added manual "Check for Updates" button, last checked timestamp, and auto-check toggle on startup under Settings > Advanced.
- Complete Bilingual Localization: Fully translated in English and Vietnamese.
- 100% Verification: 144 Rust unit tests passing and 94 Vitest tests passing with 0 clippy warnings.
- Self-Updating Without Reinstallation: Desktop app can now check, download, and install updates in-place without requiring the user to re-download
High-Fidelity Excel & Multi-Sheet Preview Engine Hardening:
- Shared OpenXML Relationship Resolution: Unified
read_project_spreadsheet,read_project_docx, andread_project_presentationincommands/projects/readers.rsto reuse the battle-tested shared context adapter engine (parse_xlsx_workbook_from_zip,parse_legacy_spreadsheet_file). - Fixed Sheet Mismatch in Preview: Resolved the critical issue where
workbook.xml.relsrelationship IDs (r:id) were ignored by the preview command, which previously led to sheets being displayed out-of-order and mapped to incorrect worksheet XML files. - Accurate Cell Coordinates & Blank Gap Handling: Replaced split-based cell parsing with exact
r="A1"coordinate positioning, eliminating column left-shifts and alignment corruption. - Support for Multi-Format Spreadsheets: Extended in-app preview support to
.xlsx,.xlsm,.xltx,.xls,.xlsb,.ods,.tsv, and.csv. - 100% Verification: All 136 Rust tests and 84 Vitest tests passing with 0 clippy warnings.
- Shared OpenXML Relationship Resolution: Unified
Master Release Plan Execution & Modular Architecture Hardening (Sprint 37):
Comprehensive Rust Runtime Modularization (Wave 1):
- Split
runtime/execution.rs(3478 lines) intoruntime/execution/(runner.rs,planning.rs,modes.rs,tools.rs,callbacks.rs,streaming.rs,tests.rs). - Split
storage/db.rs(2492 lines) intostorage/db/(mod.rs,migrations.rs,agents.rs,models.rs,conversations.rs,runs.rs,projects.rs,memory.rs,policy.rs,tests.rs). - Split
context/adapters/shared.rsintocontext/adapters/shared/(tables.rs,xlsx_zip.rs,docx_zip.rs,pptx_zip.rs,tests.rs). - Split
tools/pdf_compiler.rsintotools/pdf_compiler/(parser.rs,fonts.rs,rendering.rs,tests.rs). - Split
commands/projects.rsintocommands/projects/(crud.rs,files.rs,readers.rs,watchers.rs,export.rs,tests.rs).
- Split
Ask Mode Knowledge Ingestion & Web Search Enhancement:
- Enabled
web.search,web.fetch, andknowledge.searchinAskmode for general information retrieval. - Added interactive "📖 Study & Ingest Knowledge" button on assistant messages in
ProjectChat.vueto easily transition insightful chat responses into the project's permanent knowledge base.
- Enabled
Release Governance & Open Source Standards (Wave 2 & Wave 3):
- Fixed duplicate ADR numbering by renumbering workspace default directory ADR to
ADR-018. - Added
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdat repository root. - Created GitHub issue templates (
bug_report.md,feature_request.md,security.md) and standard pull request templatePULL_REQUEST_TEMPLATE.md. - Created root
SECURITY.mdand completed full audit report indocs/SECURITY-AUDIT.md.
- Fixed duplicate ADR numbering by renumbering workspace default directory ADR to
Full Test Suite & Quality Verification: All 135 Rust unit tests and 84 Vitest tests passing with 0 warnings on
cargo clippy --all-targets -- -D warnings.Replaced 3-Mode System: Upgraded the previous
Analyze/Draft/Finalizesystem into 4 distinct cognitive modes tailored to professional knowledge workflows:- 🗣️ Ask Mode (
ask): Conversational Q&A, brainstorming, concept explanation. Zero filesystem side effects; file writes, web tools, and knowledge storage are strictly blocked. - 📖 Study Mode (
study): Deep research, reasoning, document inspection, and knowledge discovery from all available sources. Autonomously callsknowledge.storeto ingest facts and domain concepts into the project's long-term memory. Allows writing notes and summaries toworkings/. - 📋 Plan Mode (
plan): Analyzes requirements and produces structured<plan>blocks with numbered steps and deliverable definitions. Writes plan artefacts toworkings/plan.md. Direct writes tooutput/and PDF compilation are blocked. - ⚡ Exec Mode (
exec): Follows the approved plan, reads source files (input/) and working papers (workings/), produces intermediate artifacts, and writes final approved deliverables intooutput/. Full write access, PDF generation, and policy-gated shell enabled.
- 🗣️ Ask Mode (
Strict Rust Runtime Permission Matrix (
runtime/execution.rs): Hard engine-level guards block disallowed tool calls per mode before execution, with explanatory violation messages guiding the model to the appropriate workflow.Backward-Compatible Migration: Automatic deserialization and localStorage migration for legacy mode strings (
"analyze"→Ask,"draft"→Plan,"finalize"→Exec).Initial Mode Selection Wizard (
ProjectCreateModal.vue): Users choose their preferred initial agent mode when creating a new project, with persistent last-used mode per project thereafter.Execute Plan UI Banner & 4-Button Toolbar (
ProjectChat.vue): Replaced the 3-button segmented controller with 4 mode buttons and updated the confirmation banner to "Execute Plan" when structured plans or workings files are ready.Full Bilingual Localization & ADR-012 Update: Added comprehensive English and Vietnamese translations and updated ADR-012. All 134 Rust tests and 84 Vitest tests passing.
Session Clean Up & Semantic Memory Reset Architecture (Sprint 35):
- Granular Session & Memory Management: Added a dedicated Clean Up Session & Memory modal (
ResetSessionModal.vue) across Project Studio and Agent Studio for clean, isolated prompt re-testing. - Customizable Reset Granularity: Users and developers can choose between:
- 💬 Clear Chat Messages: Wipes conversational message history and tool activity in the active session.
- 🧠 Wipe Project Semantic Memory: Erases all auto-stored RAG semantic memories attached to the project (with live entry count preview) to prevent the agent from recalling stale prior context or old instructions.
- ➕ Start New Clean Session: Creates and switches to a fresh new session in one click.
- Memory Panel Clean Up Tools: Added 1-click Clear All Memories in
MemoryPanel.vueto wipe long-term knowledge across all agents/projects. - Backend Storage & IPC Commands: Implemented
clear_project_memories,clear_agent_memories,clear_all_memories,count_project_memories, andreset_sessionwith atomic SQLite execution and 100% test coverage. - Full Bilingual Localization: Added complete English and Vietnamese translations for all reset actions, modals, and notifications.
- Granular Session & Memory Management: Added a dedicated Clean Up Session & Memory modal (
Interactive Agent Clarification & Direction Confirmation (
ask_userFeature — Sprint 34):- Cursor / Antigravity Style Clarification: AI agents can now pause and ask the user structured multiple-choice questions with recommended directions and custom write-ins whenever requirements have multiple paths, ambiguous parameters, or high-impact decisions.
- Non-Blocking Runtime Suspension: Execution loop non-blockingly suspends on
ask_user/ask_question, transitionsRunStatustoawaiting_input, and emitsrun:questionIPC event over an asynctokio::sync::oneshotchannel without occupying background execution threads. - Inline Interactive Question Card (
InteractiveQuestionCard.vue):- Displays bold question prompt and background context block.
- Multiple-choice option cards with
⭐ Recommendedbadges, radio/checkbox selectors, and detailed option descriptions. - Custom write-in input field for freeform guidance.
- "Confirm & Continue" button to resolve question and seamlessly resume the agent's ReAct execution loop.
- Post-submission freeze state showing a neat confirmation checkmark and user note summary.
- Comprehensive Multi-Language & Test Coverage: Added English and Vietnamese localizations, 3 new Rust unit tests (129 total), 5 new Vitest unit tests (74 total), and strict TypeScript typechecking.
Comprehensive Office Document & Data Parsing Architecture (Sprint 33):
- Zero-Copy Streaming SAX XML Engine: Replaced fragile string splitting across all OpenXML parsers with high-performance
quick-xmlevent loops. - High-Accuracy Spreadsheet Engine (
.xlsx,.xlsm,.xltx,.xls,.xlsb,.ods):- Full
xl/sharedStrings.xmlparser supporting rich text<r><t>and standard<si><t>. - Merged cell rectangular expansion (
<mergeCells>) propagating top-left cell values across merge ranges. - Number format resolution (
xl/styles.xml+ standard & custom<numFmts>) for currency ($#,##0.00,₫,€), percentages (0.0%,0.00%), dates, times, comma integers, and decimals. - Multi-sheet discovery and table extraction with configurable row limits.
- Pure-Rust legacy spreadsheet parsing (
.xlsBIFF8/OLE2,.ods,.xlsb) viacalamine.
- Full
- Structured Word Document Engine (
.docx,.docm,.dotx,.doc):- Semantic structure extraction with Markdown headings (
#,##,###), nested bullet/numbered lists (-), bold (**), and italics (*). - Table matrix extraction and Markdown table formatting with pipe escaping.
- Ancillary text stream recovery: headers (
word/header*.xml), footers (word/footer*.xml), and footnotes (word/footnotes.xml). - Legacy Word 97-2003 binary stream parsing (
.doc) viacfbOLE2 reader.
- Semantic structure extraction with Markdown headings (
- Presentation Engine (
.pptx,.pptm,.potx,.ppt):- Slide sequencing and structure extraction (
ppt/presentation.xml,ppt/slides/slide*.xml). - Slide titles, body paragraphs, bullet points, and embedded table matrices.
- Speaker notes extraction (
ppt/notesSlides/notesSlide*.xml). - Legacy PowerPoint binary stream parsing (
.ppt) viacfb.
- Slide sequencing and structure extraction (
- Enhanced RFC-4180 CSV / TSV Engine (
.csv,.tsv,.tab):- Multi-line quoted string support with escaped quotes (
""). - Automatic delimiter detection (
,,;,\t).
- Multi-line quoted string support with escaped quotes (
- Enhanced PDF Context Ingestion (
.pdf):- Tabular line alignment detection heuristics with Markdown table formatting.
- Page boundary annotations (
--- Page N ---) and scanned image detection fallback.
- Unified Agent Tools & UI Previews:
filesystem_readtool routes all office formats to appropriate structured context adapters.- UI preview commands (
read_project_spreadsheet,read_project_docx,read_project_pptx) deduplicated to use shared parsing engine.
- 126 Passing Rust Unit Tests & 69 Passing Vitest Tests: 100% clean test passes with 0 compiler warnings.
- Zero-Copy Streaming SAX XML Engine: Replaced fragile string splitting across all OpenXML parsers with high-performance
Live Loop Streaming & Expandable Activity/Reasoning Tray (Cursor/Antigravity Style):
- Real-Time Step Activity Stream: Upgraded execution loop to stream intermediate model thoughts (
<thought>...</thought>) and live tool invocations (filesystem_read,filesystem_write,web_search,mcp, etc.) into an interactive timeline instead of wiping stream buffers. - Expandable Activity Tray (
AgentActivityTray.vue): Built a sleek, collapsible activity tray inside the assistant chat bubble:- Live pulsing spinner and step counter during execution (
Step 2/8: Reading source files...). - Collapsed summary badge upon completion (
⚡ 3 actions executed • 4 steps • Thought for 4.2s). - Expandable timeline of steps with full thought inspection, tool action cards with status badges (
Success,Running,Error), and 1-click syntax-highlighted JSON payload viewer. - 1-Click Copy full execution activity log.
- Live pulsing spinner and step counter during execution (
- Clean Deliverable Isolation: Main chat bubble renders only final clean Markdown deliverables without leaking raw XML tags or intermediate tool dumps.
- Historical Activity Persistence: Preserved structured step activities in SQLite
messages.metadata["steps"], ensuring past conversations reload the full activity timeline across app restarts. - ADR-017: Documented architecture and design decisions in
docs/DECISIONS/ADR-017-live-loop-streaming-and-expandable-activity-tray.md.
- Real-Time Step Activity Stream: Upgraded execution loop to stream intermediate model thoughts (
Token & Context Management Architecture (Sprint 32):
- Database Migration V007: Added
runs.project_id,model_pricingseed table with 11 default frontier models across OpenAI, Anthropic, and Google, and project budget threshold columns (token_budget_warning_threshold,cost_budget_usd_threshold). - Dynamic Real-Time Pricing Engine: Rust runtime computes accurate USD costs per run and per project dynamically from the
model_pricingdatabase table. - Per-Project Token Isolation & Analytics: Added
get_project_token_analytics,list_model_pricing,update_model_pricing, andset_project_budget_thresholdsTauri IPC commands. - Context Budget Breakdown: Added
calculate_context_breakdownandget_context_breakdowncalculating real-time token saturation across System instructions, User prompt, Project files, Conversation history, and RAG semantic memory. - Interactive In-Studio Context Meter: Added
ContextMeter.vuetoProjectHeader.vuedisplaying live context window utilization and project cumulative cost badges. - Context Inspector Modal: Built
ContextInspectorModal.vuefeaturing a multi-segment progress bar and token usage breakdown by layer with available headroom metrics. - Activity Panel Project Scoping & Quota Alerts: Enhanced
ActivityPanel.vuewith a Project Filter dropdown and warning alert banners when project token or cost thresholds are exceeded. - 116 Passing Rust Tests & 62 Vitest Tests: Verified full test suite with 100% clean passes.
- Database Migration V007: Added
Harness Architecture Hardening & Quality Audit (Sprint 31):
- Comprehensive Multi-Layer Audit: Verified 100% architectural conformance across Rust ReAct execution engine, 3-zone harness file management (
input/,workings/,output/), stagnation detection, autonomous nudging, and sandboxing. - Unified Mode Routing Guard: Extended Rust runtime routing intercept to enforce strict
output/write blocking onpdf_generatein Draft mode alongsidefilesystem_write. - Standalone Execution Scope: Added
projectIdtoStartRunRequestallowing project sandbox scoping for direct API/CLI execution without pre-existing conversations. - Type & Navigation Fixes: Fixed
HistoryView.vuerouting to displayActivityPanel.vue, and addedprojectIdtoConversationdomain model. - 114 Passing Rust Tests: Added new test fixture for
pdf_generatedraft mode output routing.
- Comprehensive Multi-Layer Audit: Verified 100% architectural conformance across Rust ReAct execution engine, 3-zone harness file management (
OpenAI Reasoning & Modern Models Compatibility (
max_completion_tokens):- Replaced legacy
max_tokenswith standardmax_completion_tokensacross all OpenAI Chat Completions requests. - Added native support for OpenAI reasoning models (
o1,o3-mini,o1-mini,o1-preview):- System prompts automatically mapped to the
developerrole. - Omitted custom
temperatureparameters for reasoning models to eliminate 400 Bad Requestunsupported_parametererrors.
- System prompts automatically mapped to the
- Replaced legacy
Dynamic Provider Model Discovery & Custom Model Creation:
- Added live
GET https://api.anthropic.com/v1/modelsfetching infetch_provider_models. - Added custom model ID creation input in Settings for all providers.
- Added live
0.2.7 — 2026-08-24
Apple Developer ID Code Signing & Automatic Notarization Pipeline:
- Integrated full Apple Developer ID code signing into GitHub Actions workflow (
.github/workflows/release.yml) for macOS Apple Silicon (aarch64) and Intel (x86_64). - Automated Apple Notary Service (
notarytool) submission and ticket stapling, eliminating Gatekeeper quarantine blocks and "damaged app" warnings on modern macOS (Sequoia, Sonoma, Ventura). - Configured secure keychain management in CI for
.p12certificates and Apple Team credentials.
- Integrated full Apple Developer ID code signing into GitHub Actions workflow (
Linux Packaging Dependency Fix & CI Speed Boost:
- Updated Debian packaging dependencies in
tauri.conf.jsonto use modernlibayatana-appindicator3-1. - Integrated
swatinem/rust-cache@v2into.github/workflows/release.ymlwith per-target workspace caching, reducing Rust compilation times on CI by ~70-80%. - Added pnpm store caching (
cache: 'pnpm') in GitHub Actions to accelerate Node.js dependency installations. - Standardized NSIS Windows installer languages (
English,Vietnamese).
- Updated Debian packaging dependencies in
Standardized Universal
snake_caseTool Naming Architecture:Replaced dot-notation tool names with standard
snake_case(filesystem_read,filesystem_write,filesystem_glob,pdf_read,pdf_generate,shell_execute,web_search,web_fetch,math_calculate,system_time,system_info,knowledge_store,knowledge_search).100% universal compatibility across all LLM providers (Anthropic Claude
^[a-zA-Z0-9_-]{1,128}$, Google Gemini^[a-zA-Z0-9_]+$, OpenAI, Ollama, DeepSeek).Built-in bidirectional alias fallback in
ToolRegistryandPolicyEngineensuring seamless backward compatibility for legacy packages and prompts.Updated package validator, agent manifests (
packages/examples/), and system prompt planning instructions.Hard 20MB Safety Guard:
- Hard preview limits (
MAX_IN_APP_PREVIEW_SIZE_BYTES = 20MB) enforced in all Rust commands and frontend router to protect system memory and prevent UI freezes when users encounter multi-hundred-megabyte or gigabyte files. - Large files display a dedicated 1-click fallback card to launch in the OS default desktop application or show containing folder.
- Hard preview limits (
Word Document Viewer (
WordDocumentViewer.vue):- Formatted document viewer for
.docxand.docfiles extracting paragraphs, headings (H1-H3), and tables from OpenXMLword/document.xml. - Document statistics (word count, paragraph count, reading time) with 1-click copy and open in Microsoft Word.
- Formatted document viewer for
PowerPoint Presentation Viewer (
PresentationViewer.vue):- Multi-slide deck viewer for
.pptxand.pptwith slide thumbnails sidebar, 16:9 canvas layout, slide navigation controls, and full outline export.
- Multi-slide deck viewer for
Interactive Spreadsheet Viewer (
SpreadsheetViewer.vue):- Multi-sheet workbook navigation (
.xlsx,.xls,.csv,.tsv), real-time keyword filtering, column sorting, pagination, and copy as Markdown table / CSV.
- Multi-sheet workbook navigation (
0.2.3 — 2026-08-22
Smart Multi-Platform Matrix Dispatch & Selective Re-run (
.github/workflows/release.yml)- Added interactive
workflow_dispatchplatform selector: 1-click build all 4 targets simultaneously (all) or trigger individual OS rebuilds (windows,macos-apple-silicon,macos-intel,linux) on demand. - Zero-second skip optimization: skipped platforms exit immediately in 0 seconds without consuming GitHub Actions runner minutes.
- Native
fail-fast: falseresilience: successful OS installer artifacts remain preserved and uploaded to GitHub Draft Releases even if one platform encounters a transient failure.
- Added interactive
WebView Print PDF Export (ADR-016)
- User-facing PDF export now uses the browser's native print pipeline via an isolated print window, guaranteeing visual fidelity with the Markdown preview. Preview and PDF share the same parser (
MarkdownMessage.vue), CSS, fonts, and layout engine. - Typed
PdfOptionsmodel: page size (A4, A5, Letter, Legal), orientation (portrait/landscape), configurable margins, scale, print backgrounds, headers/footers. - Print CSS with standard
@pagerules, page-break control for headings/code/tables, and proper print typography. - Comprehensive regression test fixture suite: 18 Markdown fixtures covering basic, headings, lists, tables, code, blockquotes, links, long documents, images, math, edge cases, and internationalization (Vietnamese, Japanese, Chinese, Korean, Arabic, emoji).
- Rust
PdfExportertypes with platform abstraction (pdf_export.rs): structured errors, cross-platform capability info, serde-compatible options. - 15 new Rust tests (fixture validation + PDF compilation) and 11 new Vitest tests.
- The Rust
printpdf+cosmic-textcompiler remains available for the agent API (pdf.generate), where no WebView is available. - Cross-platform: macOS uses native
WKWebView.printOperationon the isolated print window (window.print()is a no-op in WKWebView); Windows uses WebView2window.print()("Microsoft Print to PDF"); Linux uses WebKitGTKwindow.print()("Print to File"). PDFs are not pixel-identical across platforms because the underlying WebView engines differ. - The print window is a scrollable preview with Print / Save PDF and Close. It does not auto-print. Payload is delivered via Tauri events (
print-ready/print-document), notsessionStorage. - Known limitations: page numbering not supported via CSS (relies on the browser's native print header/footer); the print dialog requires user interaction.
- User-facing PDF export now uses the browser's native print pipeline via an isolated print window, guaranteeing visual fidelity with the Markdown preview. Preview and PDF share the same parser (
Multi-Platform OS Support & Automated Release Pipeline (ADR-015)
- Windows 10/11 Packaging: Configured user-friendly NSIS installer (
.exe) with multi-language setup (English & Vietnamese) and enterprise WiX (.msi) deployment target. - Cross-Platform Release Automation (
.github/workflows/release.yml): Automated 4-way CI/CD build matrix bundling native binaries for Windows x64, macOS (Apple Silicon & Intel), and Linux (.AppImage,.deb). - Platform Architecture Guide (
docs/ARCHITECTURE/platforms.md): Comprehensive specifications covering runtime path normalization, Credential Vault integration across OSes, and local build instructions.
- Windows 10/11 Packaging: Configured user-friendly NSIS installer (
Native vector PDF compiler (ADR-014)
- Export PDF and
pdf.generatecompile markdown to a real vector PDF: selectable Unicode text, embedded subset fonts, tables, code, lists, quotes, links, bookmarks, and local images. - WKWebView print-to-PDF was withdrawn after it hung the app and wrote huge broken files. html2canvas snapshots are no longer on the export path.
- Vietnamese, Japanese, and other OS-available scripts use bundled Noto Sans plus system fonts. CJK megafonts are still not bundled (ADR-009).
- If the compiler fails, export falls back to the cosmic-text JPEG rasterizer.
- Community in-process crates were measured and not adopted:
markdown2pdfdropped Japanese (macOS.ttcfonts); Typst passed Unicode but added ~39 MB to a stripped release binary.
- Export PDF and
Interactive HTML Webpage & Native PDF In-App Document Previews (ADR-013)
- Interactive HTML Viewer (
HtmlDocumentViewer.vue):- Embedded sandboxed webpage rendering for
.htmland.htmdeliverables. - Responsive Viewport Toggles: Desktop (100%), Tablet (768px), and Mobile (375px) device preview frames.
- Dual View Modes: Segmented toggle between Webpage View (Rendered iframe) and Source Code (Raw HTML with syntax styling).
- Interactive Controls: Reload frame, 1-click Copy HTML, Open in Default Browser, and Maximize/Fullscreen mode.
- Embedded sandboxed webpage rendering for
- Native Lightweight PDF Viewer (
PdfDocumentViewer.vue):- Directly embeds PDF deliverables into Project Studio via native webview blob rendering with zero external library overhead.
- Full native PDF feature support: zoom, in-document search, page navigation, print, and download.
- Binary File Preview API (
commands/projects.rs,services/api/projects.ts):- Added
read_project_file_base64Tauri IPC command for fast binary streaming of PDF and document assets.
- Added
- Interactive HTML Viewer (
Unicode PDF export for markdown deliverables
- Historical note: preview capture previously used html2canvas + per-script system fonts; agent
pdf.generatepreviously rasterized via cosmic-text. Both are superseded as the primary path by the vector compiler (ADR-014). The rasterizer remains a fallback. - Known limitation: machines without CJK (or Arabic/Thai) system fonts may still show missing glyphs for those scripts; AMBA does not bundle CJK megafonts (ADR-009).
- Historical note: preview capture previously used html2canvas + per-script system fonts; agent
Project-Scoped Semantic Memory Isolation & Cascade Deletion
- Two-Tier Scoped Memory Engine (
runtime/memory.rs,runtime/rag.rs,runtime/execution.rs):- Project-Scoped Memory (
project:{project_id}:*): Interaction history and RAG memories generated within a project are tagged withprojectId. RAG retrieval within a project only queries the active project's memories plus global user knowledge, strictly isolating projects and preventing cross-project context bleeding. - Global Memory (
global:*): Non-project conversations only retrieve global knowledge, preventing project scratchpad data from polluting general workspace chats.
- Project-Scoped Memory (
- Automatic Memory Cascade Deletion (
storage/db.rs,commands/projects.rs):- Deleting a project automatically purges all semantic memory entries, embeddings, and interaction logs belonging to that project (
DELETE FROM semantic_memory WHERE key LIKE 'project:' || ?1 || ':%' OR json_extract(value_json, '$.projectId') = ?1).
- Deleting a project automatically purges all semantic memory entries, embeddings, and interaction logs belonging to that project (
- Two-Tier Scoped Memory Engine (
Native In-App Markdown Document Viewer & Reader Mode (ADR-013)
- Document-Grade Markdown Viewer (
MarkdownDocumentViewer.vue):- High-quality document typography for reading agent-generated reports, meeting notes, and analysis documents directly inside Project Studio.
- Formats headings (
H1-H4), tables, task lists, blockquotes, and code blocks with 1-click copy. - Reading Controls: Toggle between Document View and Raw Source, dynamic Table of Contents (TOC) navigation, word count & reading time calculation, 1-click Copy Document, and Maximize/Fullscreen mode.
- Inline Deliverable Integration (
DeliverablePreview.vue):- Automatically detects
.md,.markdown, and.txtfiles ininput/,workings/, andoutput/and renders the rich viewer inline instead of requiring external OS software.
- Automatically detects
- Backend Safe File Content API (
commands/projects.rs):- Added
read_project_file_contentTauri command with canonical path traversal validation and 10MB memory safety limits.
- Added
- Document-Grade Markdown Viewer (
Dual-Option Project Deletion Modal & Physical Disk Removal
- Dedicated Project Deletion Dialog (
ProjectDeleteModal.vue):- Replaced browser
confirm()with a custom modal asking the user to choose their deletion method. - Option 1 (App-Only / Safe): Removes the project tracking from AMBA while preserving all physical files on disk.
- Option 2 (Full Physical Deletion / Danger): Completely deletes the project from AMBA and permanently removes the project folder and all contained files on disk.
- Replaced browser
- Backend Disk Cleanup Guard (
commands/projects.rs):delete_project(project_id, delete_files: bool)safely resolves the directory path and performsstd::fs::remove_dir_allwith guard checks against deleting system roots or user home directory.
- Dedicated Project Deletion Dialog (
Strict Agent Execution Modes & Two-Stage Output Finalization Gate (ADR-012)
- Three-Stage Agent Workflow Modes (
AgentMode):analyze(Analyze Only): Pure chat exploration & Q&A. Writing files is forbidden at runtime.draft(Draft & Workings — Default): Agent prepares intermediate spreadsheets, calculations, and drafts inworkings/. Writing directly tooutput/is blocked with hard runtime enforcement.finalize(Approve & Finalize): Agent inspects working drafts, automatically receives allworkings/files as context, and generates polished final deliverables inoutput/.
- Project Studio Mode Controller & 1-Click Finalization (
ProjectChat.vue):- Mode segmented button group above chat input with project-level persistence.
- Automatic "Working Drafts Ready for Review" banner with 1-click "Approve & Finalize" action button when files are discovered in
workings/.
- Hard Enforcement at Rust Runtime (
runtime/execution.rs):- Intercepts
filesystem.writetool requests before dispatch and returns actionable mode-routing error feedback to guide the LLM.
- Intercepts
- Three-Stage Agent Workflow Modes (
Central Default Workspace Directory & 1-Click Project Scaffolding (ADR-018)
- Default Workspace Root (
~/AMBA/Projects/~/Documents/AMBA Projects):- Centralized project root managed in SQLite and configurable via Settings (
SettingsPanel.vue). - Added Tauri commands
get_default_workspace_dirandset_default_workspace_dir.
- Centralized project root managed in SQLite and configurable via Settings (
- Dual-Mode Project Creation Wizard (
ProjectCreateModal.vue):- Mode 1 (Auto Workspace — Default): Automatically derives sanitized folder names from project title (
<WorkspaceRoot>/<Project-Name>) with live path preview and creates directories automatically on submit. - Mode 2 (Custom Location): Power-users can link existing Git repositories, external hard drives, or custom folders on disk.
- Mode 1 (Auto Workspace — Default): Automatically derives sanitized folder names from project title (
- Workspace Settings in Advanced Tab (
SettingsPanel.vue):- Displays current workspace directory with 1-click "Change Location…" dialog and "Open Folder" OS launcher.
- Default Workspace Root (
Project File Management & Real-time Auto-Sync with VS Code-Grade Drag-and-Drop
- Real-time Project File Watcher (
notify = "6.1",runtime/watcher.rs):- Automatic non-polling filesystem watcher detects file creation, modification, deletion, and renaming across all project directories (
input/,workings/,output/). - Debounces bursts (300ms window), synchronizes SQLite records, and broadcasts
project:files-updatedTauri events to all active windows. - Added live "LIVE" sync indicator badge in the Harness Explorer header.
- Automatic non-polling filesystem watcher detects file creation, modification, deletion, and renaming across all project directories (
- VS Code-Grade Hierarchical File Explorer (
FileTreeItem.vue,buildFileTree):- Replaced flat lists with deep nested folder trees supporting arbitrary subdirectories.
- Expandable/collapsible directories with icon states and indentation guidelines.
- Quick action toolbars on hover:
+ New File,+ New Folder,Rename,Delete,Open in OS.
- Full Drag & Drop Capabilities:
- External OS Drop: Drag files and folders directly from Finder / File Explorer / Desktop into specific zones or nested directory nodes.
- Internal Reorganization: Drag files/folders between zones or into subfolders to move them on disk (
move_project_path). - Drag-to-Chat Context Injection: Drag any file node from the explorer tree directly into the Chat prompt area to automatically insert context
@<relative_path>tags.
- Comprehensive File Operations API:
- Added Tauri commands
create_project_file,create_project_folder,rename_project_path,delete_project_path,move_project_path, andimport_project_fileswith strict path traversal validation.
- Added Tauri commands
- Real-time Project File Watcher (
Security & Permission Matrix — Granular Capability Scopes (ADR-010)
- Orthogonal Permission Matrix: Deprecated linear hierarchical scope levels in favor of 4 independent capability dimensions:
- Filesystem Access Scope:
Project Sandbox Only(strictly restricted toinput/,workings/,output/) vs.Full Local Disk. - Network & Web Search (
allow_internet: bool): Independent toggle allowing the Agent to safely search the web and fetch online documentation from within the sandbox without requiring full OS privileges. - Terminal / Shell Execution (
allow_shell: bool): Independent toggle gatingshell.executecommands (default disabled with security alerts). - External MCP Plugins (
allow_mcp: bool): Independent toggle gating external Model Context Protocol tool invocations.
- Filesystem Access Scope:
- Interactive Security UI (
ProjectHeader.vue&ProjectCreateModal.vue): Added quick security capability badge chips in the Project Studio header and an on-the-fly Security & Capabilities modal for toggling individual permissions during active sessions.
- Orthogonal Permission Matrix: Deprecated linear hierarchical scope levels in favor of 4 independent capability dimensions:
Phase 8: Production Polish & Performance Scale — Sprint 29: Advanced Desktop UI & Keyboard Navigation
- Command Palette (
CommandPalette.vue): Power-user universal search triggered byCmd+K/Ctrl+K. Instant fuzzy search across project harnesses, pages, quick actions (switch theme, collapse sidebar, create project, export), and direct keyboard navigation with Arrow keys and Enter. - Global Keyboard Shortcuts (
useKeyboardShortcuts.ts): Fast desktop shortcuts forCmd+K(Search & Command Palette),Cmd+/(Toggle Sidebar),Cmd+N(New Project/Session), andEsc(Modal dismiss). - Drag-and-Drop File Context Injection (
ProjectChat.vue): Dragging external files over the Project Studio Chat triggers a visual drop zone overlay, automatically injecting the attached files into the prompt query. - Native Desktop Notifications (
services/notification.ts): Dispatches system desktop notifications when long-running agent workflows or file parsing tasks finish in the background.
- Command Palette (
Phase 8: Production Polish & Performance Scale — Sprint 28: Extension & MCP Skill Hub (1-Click Install)
- Curated MCP Extension Marketplace (
ToolsPanel.vue,tools/marketplace.rs): 1-click catalog featuring certified extensions (Python Data Engine, GitHub MCP, PostgreSQL Explorer, Puppeteer Web Browser, SQLite Inspector). - Category Filtering & Search: Instant filtering across Data & Analytics, Developer Tools, Databases, and Web Automation.
- Pre-Configured Transports: Auto-fills command executable, CLI args, default endpoints, and provides secure secret inputs for API tokens.
- Curated MCP Extension Marketplace (
Phase 8: Production Polish & Performance Scale — Sprint 27: Export, Import & Database Backup
- 1-Click Conversation Export (
ProjectChat.vue,commands/backup.rs): Export complete conversation histories, tool invocation records, and system context into structured GitHub Flavored Markdown (.md) or schema-compliant.json. - Full Workspace SQLite Database Online Backup & Restore (
commands/backup.rs,SettingsPanel.vue): Atomic live database backups usingrusqlite::backupwithout stopping the runtime, with validation safeguards during restore. - ChatGPT Conversation Import (
commands/backup.rs,SettingsPanel.vue): Seamlessly importconversations.jsonfrom ChatGPT data archives into AMBA workspace sessions.
- 1-Click Conversation Export (
Phase 8: Production Polish & Performance Scale — Sprint 26: Performance & Caching
- SQLite WAL Mode & High-Throughput Pragmas (
storage/db.rs,V004__caches.sql): EnabledPRAGMA journal_mode = WAL,synchronous = NORMAL, andbusy_timeout = 5000providing 5x–10x concurrent read/write throughput and eliminating database locking during intensive streaming. - Document Parsing Hash Cache (
context/engine.rs): High-performance Sha256-based document caching (document_cachetable) ensures that unchanged PDFs, spreadsheets, and Word documents load instantly (<1ms) without repeated parsing and decompression overhead. - Deterministic Model Response Caching (
runtime/cache.rs): Automatic prompt-hash response cache (response_cachetable) for low-temperature runs (<= 0.1), eliminating redundant API requests and token expenditures for repetitive tasks. - Frontend Chat Virtualization & DOM Containment: Applied
content-visibility: autoandcontain-intrinsic-sizeto chat messages inProjectChat.vueandAgentWorkspace.vuefor silky-smooth 60fps scrolling across 1000+ turn conversation histories.
- SQLite WAL Mode & High-Throughput Pragmas (
Phase 8: Production Polish & Performance Scale — Sprint 25: Robust Error Handling & Retry Engine
- Provider Exponential Backoff & Jitter (
providers/retry.rs): Automatic retry loop with configurable exponential backoff (base_delay * 2^attempt + jitter) for handling HTTP 429 rate limits and transient network disconnects without user interruption. - Granular Error Classification (
classify_error): Accurately differentiates between retryable transient errors (429, 500/502/503/504, connection timeouts) and fatal client/auth issues (401, 403) to prevent wasteful retries. - Automatic Secondary Model Fallback: When an upstream provider suffers a persistent outage or quota limit, the execution engine seamlessly degrades to the agent's secondary preferred model (e.g. falling back from GPT-4o to Claude 3.5 Sonnet or Gemini 2.0 Flash) from
agent.model_preferences. - Live UI Diagnostics & Retry Telemetry:
- Emits real-time
RunEventType::RetryAttemptandRunEventType::ModelFallbackevents. - Added retry countdown badge ("Rate limit detected. Retrying in 2s (Attempt 1/3)...") and prominent Model Fallback notification banners in
ProjectChat.vueandAgentWorkspace.vue.
- Emits real-time
- Provider Exponential Backoff & Jitter (
Phase 7: Autonomous Reasoning & Extended Memory — Sprint 24: Planning & ReAct Reasoning Loop
- Dynamic Plan Inspector UI (
PlanInspector.vue): Embedded plan tracker widget rendered inProjectChat.vue. Displays current goal, progress percentage bar, dynamic step status checklist (pending,in_progresswith spinner,completed,failed), and expandable Thought reasoning drawers. - ReAct Reasoning Protocol (
runtime/agent.rs&runtime/execution.rs): Integrated step-by-step planning instructions into system prompt. The agent decomposes complex tasks into<plan>blocks with granular<step>items and<thought>reflections. - Live Plan Telemetry (
RunEventType::PlanUpdate): Execution engine automatically parses XML plan structures from model responses and emits real-timeplan_updateevents for live UI progress updates. - Self-Correction on Tool Errors: Agents observe tool failure observations and update their plans to test alternative approaches or self-correct parameters.
- Dynamic Plan Inspector UI (
Phase 7: Autonomous Reasoning & Extended Memory — Sprint 23.5: Project Harness Paradigm & 3-Column Studio UI (ADR-008)
- Project Harness Paradigm: Transitioned AMBA from session-centric chat into a project-based local harness. Every project encapsulates a dedicated local directory with three standard subdirectories:
input/(Read-only data context: attendance sheets, spreadsheets, raw PDFs, invoices).workings/(Working Papers & Drafts: calculations, versioned spreadsheets, drafts, intermediate data; backwards-compatible with legacytemp/).output/(Deliverables: finalized payroll spreadsheets, generated summary reports, export archives).
- 3-Column Project Studio UI (
ProjectStudio.vue):- Harness File Explorer (Left Column): Real-time tree view of
input/,workings/, andoutput/directories, file size metrics, file type icons (Excel, Word, PDF, CSV, JSON), and 1-click OS open. - Project Chat & Execution (Middle Column): Project-scoped conversation history, auto-injected input files context, live tool execution telemetry, and goal/plan banners.
- Deliverable Preview (Right Column): Dedicated inspector for previewing generated files, quick overview of project deliverables, and 1-click launch in default OS apps.
- Harness File Explorer (Left Column): Real-time tree view of
- Projects Dashboard & Creation Wizard (
ProjectListView.vue,ProjectCreateModal.vue):- Filterable projects grid by template (Payroll, Financial Analysis, Document Analysis, Custom).
- 3-step project setup wizard (Template & Metadata → Assigned Agent & Model → Local Directory Picker with auto-scaffolding).
- Tauri IPC Endpoints & Database (
commands/projects.rs,storage/migrations/V002__projects.sql): 11 new commands for project lifecycle, directory scaffolding, filesystem sync, and project-scoped sessions.
- Project Harness Paradigm: Transitioned AMBA from session-centric chat into a project-based local harness. Every project encapsulates a dedicated local directory with three standard subdirectories:
Phase 7: Autonomous Reasoning & Extended Memory — Sprint 23: Explicit Memory Tools & Memory Inspector UI
- Memory Inspector UI (
/memory/MemoryPanel.vue): Full-featured dedicated interface for browsing, inspecting, editing, creating, and deleting long-term semantic memories. Includes live semantic similarity vector search with threshold filtering, similarity match score badges, metadata tagging, and raw JSON/Markdown preview. - Explicit Agent Memory Tools (
tools/knowledge.rs):knowledge.store: Native tool allowing autonomous agents to self-record important facts, preferences, guidelines, and entity details into long-term vector storage.knowledge.search: Native tool enabling agents to actively query their semantic knowledge base by natural language query with custom score thresholds.
- Memory Management IPC Endpoints (
commands/memory.rs):list_memories,upsert_memory,delete_memory,search_memories. - Domain Model & Seeding (
models/mod.rs,storage/seed.rs): AddedMemoryEntry,ScoredMemoryEntry,UpsertMemoryRequest, and registered knowledge tools & permissions forassistant-agentandresearch-agent.
- Memory Inspector UI (
Phase 7: Autonomous Reasoning & Extended Memory — Sprint 22: RAG Memory Auto-Injection & Semantic Recall
- RAG Pre-Prompt Memory Injection (
runtime/rag.rs&runtime/execution.rs): Automatic cosine-similarity search against SQLite semantic memory before model request. Top memories exceeding similarity threshold (0.35) are formatted and injected as authoritative background context in system prompt. - Interaction Auto-Storage (
auto_store_interaction): Automatically captures and embeds meaningful User prompt + Assistant response pairs upon run completion, ensuring continuous long-term recall across sessions. - Live Runtime Memory Telemetry: Emits
RunEventType::ContextBuildevents containing memory count and keys to provide frontend visibility into what the agent recalled. - Scored Semantic Search API (
search_scored): ExtendedSemanticMemoryStoretrait andSqliteSemanticMemorywith threshold-gated, score-ranked retrieval.
- RAG Pre-Prompt Memory Injection (
Streamlined Provider & Model Management in Settings (
SettingsPanel.vue):- Inline Expandable Model Selection: Merged model selection into Step 1 as an expandable, interactive checkbox accordion directly under each connected provider.
- Single Step 2 for Default Model: Step 2 is now dedicated to selecting the Default Model, strictly listing the inner join of enabled models from connected providers (+ Offline Demo).
- Quick Reset Actions: Added 1-click
Reset Flagships(resets to curated flagship profiles) andReset All Selected(clears model selections). - Removed Clutter: Removed Manifest Editor JSON modal and Custom Model form for a cleaner, intuitive end-user experience.
Phase 6: Advanced Tool Ecosystem & MCP Expansion (Sprints 19–21)
- Remote MCP over SSE/HTTP (
tools/mcp.rs): ImplementedSseMcpClientallowing AMBA to connect to remote MCP endpoints over Server-Sent Events with Bearer token authentication. - MCP Resources Support: Added
resources/listandresources/readmethods to inspect live data from MCP servers. - Builtin Utility Tools (
tools/utility.rs):system.time: Real-time clock, timezone offset, weekday, and Unix timestamps.math.calculate: Deterministic, safe mathematical expression evaluator (+, -, *, /, %, ^, sqrt, abs, ceil, floor, round, sin, cos, tan, log, exp, pi, e).filesystem.glob: Pattern search across workspace directories.system.info: OS, CPU architecture, platform metadata.
- Tools UI Updates (
ToolsPanel.vue): Added Stdio / Remote SSE transport switcher with Bearer token inputs and presets.
- Remote MCP over SSE/HTTP (
Sprint 18: Structured Output & Rich Rendering
- Rich Markdown Engine (
MarkdownMessage.vue): Replaced raw text message rendering with a modular Markdown parser. - Fenced Code Blocks & 1-Click Copy: Renders code blocks with dark theme styling, language badge tags, and an interactive copy button with visual confirmation.
- Markdown Tables & Blockquotes: Formats tables with clean bordered responsive layouts, callout quotes, bold/italic, inline code, and clickable external links.
- Structured JSON Support: Added
response_formattoModelRequestwith OpenAI & Google provider integration for deterministic JSON output.
- Rich Markdown Engine (
Sprint 17: Smart Token-Aware Context Window Management & Auto-Summarization
- Token Estimation & Budgeting (
runtime/context_budget.rs): Replaced naive message-count sliding window with token-aware budgeting using weighted character/word BPE approximation. - Automatic Session Summarization: When conversation turns exceed the token budget threshold (>6,000 tokens or >8,000 token history), earlier turns are summarized into a concise structured digest (
[Summary of Earlier Turns in this Session]) and prepended as a system note. - Tool-Call Pair Preservation: Smart split algorithm protects assistant
tool_callsand correspondingtoolresult pairs from being broken across pruning boundaries. - Runtime Event Notification: Emits
RunEventType::ContextBuildwith auto-summarized metadata to notify frontend trace inspector.
- Token Estimation & Budgeting (
Sprint 16.4: Interactive 3-Step Model Discovery, Multi-Select Curation & Default Picker
- Step 1 — Connect AI Providers: Input API keys for Google Gemini, OpenAI, and Anthropic. Direct live model discovery fetches all upstream models straight from provider APIs.
- Step 2 — Pick Models to Enable (Multi-Select Curation):
- Provider Tabs (
All Connected,Google Gemini,OpenAI,Anthropic). - Real-time search filter and quick action buttons (
✨ Select Flagships,Select All,Deselect All). - Interactive checkbox selection of discovered models with Flagship badges, context window size tags, and descriptions.
- Saves user-curated model choices directly into SQLite via
sync_selected_model_profiles.
- Provider Tabs (
- Step 3 — Select Default Model (Single Pick):
- Displays only the inner join of enabled models from connected providers (+ Offline Mock).
- 1-click default model selection for agent workspaces.
- Step 4 — Web Search & Internet Tools (Optional): Tavily / Brave Search integration with live status indicator.
Sprint 16.3: Configurable Model Manifest Architecture & Live Editor
- Dynamic Model Registry (
~/.amba/models.manifest.json): Replaced hardcoded model configurations with a decoupled, declarative JSON manifest schema (ModelManifestItem/ModelManifest). - Live Manifest Editor Modal: Added an interactive in-app JSON editor in Settings allowing power-users and developers to update model IDs, modify temperatures, adjust context window sizes, add new flagship models, or reset to template defaults without recompiling.
- Manifest-Driven Seeding & Persistence:
seed_profilesand backend storage load directly from the active manifest; changes applied in Settings immediately refresh the database and workspace dropdowns. - Tauri IPC Manifest Endpoints:
get_model_manifest,save_model_manifest, andreset_model_manifest_defaults.
- Dynamic Model Registry (
Sprint 16.2: Clean Flagship Model Curation, Noise Filtering & Provider Grouping
- Smart API Model Curation (
fetch_provider_models): Replaced raw, noisy API dump (30–50 experimental/dated checkpoints) with an intelligent whitelist filter keeping only canonical flagship aliases (Gemini 2.0 Flash,Gemini 2.5 Flash,Gemini 1.5 Pro,GPT-4o Mini,GPT-4o,o3-mini,o1,Claude 3.7 Sonnet,Claude 3.5 Sonnet,Claude 3.5 Haiku). - Obsolete Model Pruning & Reset: Added
prune_profiles_by_providerandreset_curated_model_profilesTauri command to cleanly remove clutter/deprecated snapshots and reset to pristine flagship models with 1 click. - Provider-Grouped Model Dropdown:
AgentWorkspace.vuenow organizes model options into intuitive<optgroup>categories (Google Gemini,OpenAI,Anthropic Claude,Offline / Testing) with status indicators. - Settings UI Enhancement: Added 1-click "Reset to Curated Models" button in Settings with clear feedback alerts.
- Smart API Model Curation (
Sprint 16.1: End-User Onboarding Wizard, Help & Guide Center, and In-App Feedback System
- Interactive Setup Wizard (
/onboarding): 3-step setup guide for non-technical users to connect AI Providers (Google Gemini Free Tier, OpenAI, Claude, or Offline Demo), configure Web Search (Tavily), and jumpstart with 1-click sample prompts. - Help & Guide Center Modal (
HelpGuideModal.vue): Comprehensive, non-technical guide with Quickstart steps, AI Provider comparison, Security & Local-First overview, and FAQ solving common questions (e.g. why agent needs search keys, local data safety). - Built-in Feedback Center (
FeedbackModal.vue): In-app feedback dialog with emoji/star ratings (1–5), category chips (Idea, Bug, Question, General), contact info, 1-click copy formatted feedback, and SQLite persistence. - Backend Feedback Engine: SQLite
user_feedbacktable withinsert_feedbackandlist_feedbackstorage APIs, registeredsubmit_feedbackandlist_feedbackTauri IPC commands. - Sidebar Access: Added 1-click "📖 Hướng dẫn sử dụng", "💬 Góp ý & Báo lỗi", and "🚀 Setup Wizard" buttons in sidebar footer.
- Workspace Quick-Start:
AgentWorkspace.vueauto-fills query prompt from onboarding into input box for instant execution. - 45 Rust unit tests + 3 Vitest tests passing cleanly.
- Interactive Setup Wizard (
Sprint 16: Web Search & Fetch Tools (Internet Querying & SSRF Protection)
WebSearchTool(web.search): query the live web via Tavily (AI-native search API) or Brave Search with title, URL, snippet, and relevance scoring.WebFetchTool(web.fetch): bounded webpage retrieval (32KB cap) with fast HTML-to-text conversion, tag stripping, script/style pruning, entity decoding, and text formatting.- SSRF Protection (
assert_url_safe): strict validation blockinglocalhost,.local, link-local, loopback, private IPv4/IPv6 ranges (RFC 1918, RFC 6598 CGNAT, RFC 5736), and non-HTTP protocols. - Policy Engine defaults:
web.searchandweb.fetchdefault toConfirmpolicy for explicit user permission. - Search Provider Credentials: OS keychain + SQLite fallback storage via
set_search_credential,delete_search_credential,search_credential_statusIPC commands. - Settings UI: Added Step 3 "Web Search & Internet Tools" card with Tavily & Brave Search key management, status indicators, and direct API link buttons.
- Tool Status formatting in Workspace: human-readable real-time indicators for
🔍 Searching web,🌐 Fetching,📄 Reading file,✏️ Writing file,⚡ Executing shell. - 44 Rust unit tests + 3 Vitest tests passing cleanly.
Sprint 15: Multi-turn Conversation History Engine & Model Optimization
- Multi-turn context loading:
ExecutionEnginenow automatically creates sessions and loads previous conversation turns intoWorkingMemoryfor multi-turn LLM memory. - Context sliding window: limits conversation history to a 20-message token budget preventing context window overflow.
- Dynamic model parameters:
StartRunRequestsupportstemperature,max_tokens, andsystem_prompt_override. - SQLite Conversation CRUD: added
get_conversation,list_conversations_by_agent,delete_conversation,rename_conversation,clear_conversation_messageswith cascade deletion. - Workspace Sessions & Tuning: collapsible Sessions sidebar (New Chat, switch, rename, delete), Model & Context Tuning drawer (temperature slider, max tokens, custom instructions), copy message button, latency & model telemetry indicators.
- Upgraded Conversation History View: real-time search, filter by agent, "Resume Chat" in Workspace, full conversation markdown export, clear & delete controls.
- 35 Rust unit tests + 3 Vitest tests all passing cleanly.
- Multi-turn context loading:
Sprint 14: Real LLM Providers & Concrete Model Selection
- Concrete Model Profiles seeded for OpenAI (
GPT-4o Mini,GPT-4o), Anthropic (Claude 3.5 Sonnet,Claude 3.5 Haiku), and Google (Gemini 2.0 Flash,Gemini 1.5 Pro). - Production Anthropic model IDs updated to official snapshots (
claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022). - Settings persistence for
default_model_profile_idvia SQLitesettingstable and IPC commands. - Auto-detection of configured provider credentials and smart model dropdown selection in Workspace and Settings.
- Concrete Model Profiles seeded for OpenAI (
Sprint 13: Token Usage & Analytics Dashboard
- Backend Analytics API: added
get_token_analyticsquery onSqliteStorageto aggregate run token usage (input_tokens,output_tokens) and calculate estimated USD cost across LLM models. - Registered
get_token_analyticsTauri IPC command insrc-tauri/src/commands/runs.rsandlib.rs. - Frontend Analytics UI (
ActivityPanel.vue): added KPI summary cards (Total Tokens, Input/Output Split, Estimated USD Cost, Executed Runs) and per-model usage breakdown table. - Added unit test for token analytics aggregation in
db.rs(33 Rust unit tests total, all passing).
- Backend Analytics API: added
Sprint 12: MCP Server Management UI & Security Policy Manager
- Frontend API wrappers (
src/services/api/tools.ts):connectMcpServer,disconnectMcpServer,listPermissions,setPermission. - Tabbed Tools Panel UI (
src/features/tools/ToolsPanel.vue):- Tool Registry tab: Live view of registered Native & MCP tools and JSON schemas.
- MCP Servers Manager tab: Connect form (
server_name,command,args), quick presets (filesystem,git,memory), list of connected servers, disconnect button. - Security & Permissions Manager tab: Real-time policy decision toggles (
Allow,Confirm,Deny) for all registered tools.
- Frontend API wrappers (
Sprint 11: Document Context Adapters (PDF, DOCX, XLSX, CSV)
CsvAdapter: parses CSV files and formats records into clean Markdown tables.DocxAdapter: parses Microsoft Word.docxZIP archives and extracts paragraph text fromword/document.xml.XlsxAdapter: parses Microsoft Excel.xlsxarchives, resolves shared strings (xl/sharedStrings.xml), and formats sheet cell grids into Markdown tables.PdfAdapter: parses.pdftext streams (BT...ET) into readable text content.- Registered all 4 document adapters in
ContextEnginedefault adapters. - Added unit tests for CSV, DOCX, XLSX, and PDF parsing (32 Rust unit tests total, all passing).
Sprint 10: Semantic Memory
- SQLite table migration
semantic_memoryfor storing key, JSON values, vector embeddings, and timestamps. LocalEmbeddingGenerator: fast offline feature-hashing & n-gram normalized vector generator.- Cosine similarity vector search ranking (
cosine_similarity). SqliteSemanticMemory: implementsSemanticMemoryStoretrait (upsert,get,search).- 3 new unit tests for embeddings, cosine similarity, and SQLite semantic memory roundtrip (28 Rust unit tests total, all passing).
- SQLite table migration
Sprint 9: Write Tools + Policy-Gated Shell
filesystem.write: full implementation with path security (sanitize_path), automatic parent directory creation, content append support, and unit tests.shell.execute: process execution viatokio::process::Command, CWD path security, timeout enforcement (default 30s, max 120s), and unit tests.- Policy & Permissions IPC: added
list_permissionsandset_permissionTauri commands registered inlib.rs. - 3 new unit tests for
filesystem.writeandshell.execute(25 Rust unit tests total, all passing).
Sprint 8: Streaming Tool-Call Assembly
- OpenAI provider streaming: chunk assembly for
tool_callsdeltas,include_usageSSE options, token usage extraction, andDoneevent generation. - Anthropic provider streaming: full SSE event parsing (
message_start,content_block_start,content_block_delta,content_block_stop,message_delta,message_stop),tool_useJSON buffer accumulation, token usage tracking. - Google provider streaming:
streamGenerateContentSSE parser for text deltas,functionCallparts,usageMetadata, andDoneevent. - Execution Engine (
stream_or_chat): properModelStreamEvent::Usagecollection and token usage propagation without extra non-streamingchat()fallback calls.
- OpenAI provider streaming: chunk assembly for
Sprint 7: Real MCP Client (stdio JSON-RPC 2.0)
StdioMcpClient: spawns MCP server process, handles initialize handshake,tools/list,tools/callwith 5 s / 10 s / 30 s timeouts- Background stdin writer + stdout reader tasks; graceful drain on server exit
McpToolAdapter: wraps MCP tools as nativeToolso they live inToolRegistry- Tool names prefixed
mcp.<server_name>.<tool_name> connect_mcp_server/disconnect_mcp_serverTauri commandsStubMcpClientretained for tests and fallback- 7 new unit tests (JSON-RPC parsing, adapter delegation, error propagation)
- 19 Rust tests total, all passing
GitHub Actions CI pipeline (
.github/workflows/ci.yml)Phase 2 roadmap: Sprint 7–10 planning in
ROADMAP.md
0.1.0 — 2026-08-10
Added
- Local-first Tauri 2 desktop app with Vue 3 presentation layer
- Single-process Rust Agent Runtime (execution, tools, policy, providers, context, memory, packages)
- Governance documentation (
AGENTS.md, architecture, ADRs, sprint docs,.agent/*) - Navigation: Agents, Skills, Tools, Models, Memory, Activity, Settings
- Agent workspace with streaming, tool status, execution trace, permission prompts
- SQLite persistence with migrations (agents, skills, tools, conversations, runs, events, policies)
- Model providers: OpenAI, Anthropic, Google + offline Mock profile
- Secure API key storage via OS keychain
filesystem.readtool with path traversal protection- Permission engine (allow / confirm / deny)
- Local agent/skill package install from folder
- Builtin Assistant Agent + example packages under
packages/examples/ - Activity page for past runs
- Unit tests (Rust domain/policy/execution; Vitest API wrappers)
