Repository navigation
v0.3.9
·
123 commits
to development
since this release
What's changed
- AI: persist generated images as workspace assets
- AI: apply preset image model, and accept every preset in SetConfig
- AI: generate a design as editable SVG (backend, DeepSeek/text LLM)
- AI: turn a generated SVG into an editable design (frontend)
- Backend: retry the initial DB connect on boot instead of failing once (#16)
- Docs: add the F28 leverage map and reference pointer
- AI: restore server-side assistant tool parity via a shared manifest
- AI: generated decks carry speaker notes
- AI: append generated pages by default instead of replacing the document
- AI: close the provider-config gaps
- Docs: sync F28/F39 feature docs to the shipped code
- Style: rename exported UPPER_SNAKE constants to camelCase
- Fix review findings: frontend test gaps, note-cap parity, azure edit capability
- Apply the full review's findings across the AI config and prompt seams
- AI: point the save error at the missing base URL
- Close the review's remaining AI-config and parity gaps
- AI config: PATCH semantics at the server and true capability gating
- AI: request natively schema-constrained output from the provider
- AI: repair-loop feedback with concrete errors in the orchestrator
- AI: port the prompt rule corpus into every generation prompt
- AI: review the outline before generating, with generation dials
- AI: placeholder-first generation imagery with reuse and stock routing
- Fix the Phase 1 review findings across the generation pipeline
- Schema v21: optional capacity hints on Placeholder
- AI: layout-grounded generation with derived content schemas
- AI: narrative ops - insertAgenda, splitSlide, insertComparison
- AI: per-slide regeneration with layout re-selection and image diffing
- Fix the Phase 2 review findings across layout-grounded generation
- Fix the follow-up review findings on the layout-generation seams
- AI: ingestion depth - multi-file grounding, office formats, scan detection
- AI: web search grounding with untrusted-source framing
- AI: chart values computed from attached data, never estimated
- AI: streaming generation - SSE progress and instant decks
- Fix the Phase 3 review findings across ingestion, search, and streaming
- AI: theme UI, brand-to-theme bridge, and AI theme generation (F28 T19)
- Editor: extract a reusable layout set from a deck (F28 T20 stage 1)
- Editor: vision correction and capacity verification for extracted layouts (F28 T20 stages 2+3)
- Docs: sync the F28 spec with whole-deck layout extraction (T20)
- Brand: draft a brand kit from a company domain (F28 T21)
- Docs: record the Phase 4 design-system features (T19, T20, T21)
- Fix the Phase 4 review findings across themes, extraction, and brand drafts
- Export: PPTX fidelity golden set + camera bubble in present-and-record (F28 T22)
- Fix the Phase 5 review findings across PPTX fidelity and recording
- Editor: make the brand re-skin identity-safe for neighboring undo entries
- Editor: extend restyle undo identity safety to the node level
- Docs: catch the F28 capability tables up to the shipped product
- Docs: add the F28 completion task board (7 phases, 38 tasks)
- Import: archive-bomb guards on the client zip reader (F28 completion C01)
- Present: per-transition easing and exit transitions (schema v22, F28 completion C02+C03)
- Editor: transition gallery picker and animate-all-slides (F28 completion C04+C05)
- Fix the Phase 1 review findings: exit-only transitions, key drops, swatch churn
- Engine: Magic Move depth - nested matching, appearance tween, forced match, word morph (F28 completion C06-C10)
- Fix the Phase 2 review findings: word-morph measurement parity and plan caching
- Engine: animation depth - motion paths, keyframe channels, spring physics, painter, media triggers (schema v23, F28 completion C11-C15)
- Fix the Phase 3 review findings: channel boundary holds and trigger fall-through
- Present: interactivity and delivery - interactions v2, captions, coach, kiosk, phone remote, control hand-off (schema v24, F28 completion C16-C22)
- Fix the Phase 4 review findings: pairing-code leak, speech loop, CRDT key hygiene
- Scale and interop: present prefetch, lazy thumbnails, ODP import, markdown outlines (F28 completion C23-C26)
- Fix the Phase 5 review findings: prefetch memory pin and honest scope notes
- Assist: accessibility fixes and AI completion - one-click a11y fixes, title sync, chart alt text, Magic Switch, brief interview, critique loop, citations, image themes (F28 completion C27-C34)
- Fix the Phase 6 review findings: citation integrity, review-outline clobber, CRDT name key, nested-node fixes
- Collab and sharing: slide status board, named link analytics, iframe embed, reuse slides (F28 completion C35-C38)
- Fix the Phase 7 review findings: background-image asset carry, picker thumbnail gating, board drag hygiene
- Docs: add the F40 AI platform task board (generation API, MCP, catalog, template-from-PPTX, adaptive reflow)
- API: public generation API - scoped keys, headless goja composer, prompt-to-deck endpoint, embedded docs (F40 E01-E06)
- Fix the Phase 1 (F40) review findings: header-only keys, job-poll tenancy, rune-safe truncation
- API: MCP server over the generation API + key-activity audit trail (F40 E07-E08)
- Polish the F40 Phase 2 review findings: share-refusal clarity and the Origin-validation stance
- Catalog: 16 slide layouts, 33 themes as shared data, 31 deck template seeds, generate-with-theme (F40 E09-E12)
- Fix the F40 Phase 3 review findings: hue-ladder duplicate, theme choice lost on regenerate, themed-compose coverage
- Templates: one-click AI template-from-PPTX + templates as first-class generation targets (F40 E13-E14)
- Fix the F40 Phase 4 review finding: template themes reach the freeform path
- AI Studio: adaptive reflow for layout-linked slides (F40 E15-E17)
- AI Studio: harden the reflow review findings (F40 E15-E17)
- Editor: one assistant bubble per intent in the AI panel
- Editor: keep the AI chat alive across tool switches and surface its state
- AI: tell the user WHY a provider call failed, and stop stale models
- AI Studio: give generated decks a real visual system
- Editor: let the AI panel collect several attachments in one sitting
- Editor: drag and drop files onto the AI panel to attach them
- Fix the review findings from the AI panel and deck-styling work
- Frontend: clear the standing lint warnings
- AI: add Moonshot (Kimi) as a first-class provider
- Docs: correct the provider counts for the Kimi preset
- Editor: make the AI base URL editable for every provider
- AI: carry the real failure reason through the generation stream
- Editor: stop the confirm banner from discarding the user's style choices
- Editor: give the generation job poll a realistic budget
- Editor: make one undo actually revert a generation, and never cross designs
- Fix two gaps in the AI trust fixes
- Editor: staged progress and a Stop button for AI generation
- Editor: surface failed slide copy, and stop image slots reading "Text"
- Editor: make the AI panel operable and announced
- Make Stop actually reach the long calls
- Editor: fold async AI results into the turn they continue, and keep focus
- Editor: give per-slide regeneration a button, and make the style dials stick
- Dashboard: start a design from a brief
- Fix three gaps in the discoverability work
- Dashboard: rebuild the brief field as a proper composer
- Dashboard: tune the brief composer's proportions
- Dashboard: centre the hero on the brief, and move the blank-start action
- Dashboard: attach documents to the brief
- Dashboard: drag documents onto the brief to attach them
- Editor: do not lose a dashboard brief when no AI provider is connected
- AI: give the provider config a home in workspace settings
- Fix two gaps in the AI settings extraction
- AI settings: label the fields and fit the settings page
- Dashboard: tell the two key sections apart, and lead with AI
- AI settings: drop the card and match the app's field styling
- AI settings: separate the web-search fields from the model fields
- AI settings: let the form use the full section width
- AI settings: move the save action to the end edge
- Fix the editor panel's copy of the AI form
- Editor: close the five remaining P1 findings from the AI audit
- Editor: make the follow-up chips deterministic, and survive a reload
- Editor: translate the assistant's skip reasons
- Editor: reach past AI conversations again
- Dashboard: expose the AI usage limits the server already enforces
- Fix three gaps in the history and policy work
- Editor: retry a failed generation with the review you already did
- Dashboard: say whether this workspace can actually generate
- AI settings: show that a key is stored, and lift the status to the heading
- AI: let a workspace disconnect its provider
- AI settings: rename Disconnect to Reset provider, beside Save
- UI: a real confirmation dialog, instead of the browser's
- AI: prove the provider works instead of assuming a saved key does
- Dashboard: present monthly AI token usage as the estimate it is
- AI settings: report the right cause, and stop claiming a key that is not there
- AI: let a workspace pair a text provider with a separate image provider
- AI settings: keep the image provider's stored model and host across a switch
- AI settings: say when an optional section could not be read
- AI: give the image provider's save rejections their own reasons
- AI settings: check the image provider's key, and cover the form with tests
- AI: apply the SSRF gate to redirects, not just the configured URL
- AI settings: give the image provider the same status treatment as the main one
- AI settings: stop writing an image config that was never asked for
- Assistant: refuse a turn that neither answers nor acts
- AI: tell a workspace its providers cannot read images, not that it has none
- AI: remove the backtracking blowup when stripping a code fence
- AI search: cap the result list before growing it, not after
- Backend: say what was unreachable when the DB connect fails (#18)
- Report a failed sign-in database query as 500, not 401 (#20)
Platform notes
- Each archive contains just the self-contained
hycanvasbinary with the frontend embedded; see the README for setup (.env, PostgreSQL). The first-run wizard generates the configuration for you, and.env.examplein the repository documents every setting. - First run:
./hycanvas service startdaemonizes the server (pidfile + logfile next to the binary; Linux, macOS, and Windows) and asks whether to set up in the browser or in the terminal. The browser wizard at /installation/step-1 is unlocked by the one-time access secret it prints; the CLI wizard asks the same questions right there. Other verbs:stop,restart,status,log -f../hycanvas startruns in the foreground. - The macOS binaries are not signed or notarized. If macOS quarantines the download, run
xattr -d com.apple.quarantine hycanvasor right-click the binary and choose Open. - ffmpeg is only required for server-side video export; everything else works without it.
What's Changed
- Retry the initial DB connect on boot instead of failing once by @devadattas in #16
- Say what was unreachable when the DB connect fails by @devadattas in #18
- Report a failed sign-in database query as 500, not 401 by @devadattas in #20
Full Changelog: v0.3.8...v0.3.9