# Gantt Forge — Changelog

Current release: **1.69.0** · packaged 2026-09-21

Each zip is the complete offline app (`index.html`, `sw.js`, `manifest.json`, `icon.svg`, `vendor/`, docs). Unzip and open `index.html`, or serve the folder.

## v1.69.0 — invite an organisation  ·  2026-09-21

- The + admin page has a new "Invite an organisation" card. Name the organisation, give the lead's e-mail address (or the company's domain) and a single-use invitation is created and, if you like, e-mailed. It lasts 14 days and can be withdrawn.
- Opening the invitation link says which organisation you are being invited to set up. Signing in with Google, Microsoft or an e-mail code creates it — already approved, with its own encryption key — and makes you its owner. It never places anyone inside the inviter's organisation.
- A new person with an ordinary team invite can now sign in with Google or Microsoft on an invite-only server; before, the sign-in was refused before the invite was looked at.

## v1.68.0 — a device that loses its pictures gets them back, and never takes them from anyone else  ·  2026-09-20

- If a project's pictures go missing on one device while the organisation still holds them, the device now puts them back and says so. Until now the missing list was treated as a removal and sent to everyone, so one device's fault emptied that project for the whole organisation.
- Removing pictures on purpose still works exactly as before and still reaches everyone — only a list that empties itself without anyone asking is treated as a fault.
- The + server no longer loses the name a device announces when it connects, so "who is online" shows people by name from the moment they arrive.

## v1.67.0 — pictures stop coming and going on every refresh  ·  2026-09-20

- A project's pictures are remembered by their fingerprint between sessions, so a refresh adopts the copy already on this device instead of downloading it again. Until now every start threw the fingerprint away, asked the server for the whole organisation from scratch and re-downloaded every project's pictures — which is why pictures appeared on a refresh and then flickered away for a moment.
- Pictures really do stay out of browser storage now. The check that decides whether a value is too large to keep counted a picture as 200 bytes, so megabytes were written on every change after all — the stutter 1.63.0 set out to fix.
- Content that arrives is fingerprinted as received rather than trusting what was asked for, so a picture changed by a colleague mid-fetch cannot leave the device asking for it again and again.

## v1.66.0 — pictures are never dropped while they are on their way  ·  2026-09-20

- Urgent fix to 1.65.0. Pictures now arrive as a marker and are fetched a moment later; until they arrived the app treated the project as having none, wrote that over your copy and shared it. Any picture still on its way now leaves what you already have untouched, and an empty list can never replace pictures you hold while their content is still coming.

## v1.65.0 — pictures no longer arrive all at once  ·  2026-09-20

- Reported: Safari kept reloading "because a problem occurred". On joining, the server was handing over every picture of every project in one go — tens of megabytes for the browser to parse and hold. Large parts now arrive as a marker with a fingerprint: your device keeps what it already has when they match, and fetches the real thing one project at a time only when it differs.
- Working out what was too large to store no longer means measuring every picture on every save, which is what made the app stutter between those reloads.

## v1.64.0 — stale changes stop nagging  ·  2026-09-20

- A queue of changes left over from an earlier session kept coming back as “Changes made offline”, with no useful answer either way. Anything that has been waiting more than half an hour is now dropped on connecting and the device simply publishes its projects again — and the panel shows what is waiting, with a Clear and re-publish button if you ever want it gone.

## v1.63.0 — no more stutter, and the duplicates can be cleared  ·  2026-09-20

- The app kept a full copy of everything it had synced — pictures included — and wrote all of it to storage on every change. With a few photo-heavy projects that is megabytes of writing several times a second: the stutter, and in a long session a tab that runs out of memory. Large parts now stay in memory only and are fetched again when needed.
- Duplicate tasks left behind by the earlier fault can be cleared by an admin: Admin console → Housekeeping shows each project and how many copies it holds, and removes them for everyone in one go.
- A project kept in step by the organisation is never written to by folder sync now, even in the moments before the connection is up.

## v1.62.0 — the change that was never heard  ·  2026-09-20

- The real reason the TRANSFORM projects never arrived: a browser splits anything over about 64 KB into pieces before sending it, and the server only ever read the first piece — so every larger change (a project with pictures) was dropped without a word and the app waited forever for an answer. The server now joins the pieces back together, very large changes are sent as their own request, and nothing that went unanswered is left stuck after a reconnection.

## v1.61.0 — projects with pictures can be shared  ·  2026-09-20

- Found in the server's own log: the eight TRANSFORM projects were being refused. A project was sent as ONE bundle of everything it holds — pictures included — far past the size a single change may be, so the project was rejected while its tasks went through and it never appeared for anyone else. Pictures and any other large part now travel as their own change, and a batch is limited by size as well as by count.
- When the server refuses something, the panel names the project and the reason instead of leaving it a mystery. A project paused by an older version resumes by itself after an update.

## v1.60.0 — one keeper per project, and no more repeated questions  ·  2026-09-20

- Reported: “Changes made offline” kept coming back with a long list. The projects in it were being kept in step by BOTH the shared folder and the organisation server, so each engine re-applied the other's writes and every pass produced a fresh batch of changes. A project now has one keeper: if it follows the organisation, folder sync stands aside for it (and the panel says so).
- The offline question is only asked after a genuinely long gap (over an hour), never for a first publish, and not again within a quarter of an hour once you have answered. Changes to spaces and settings are now listed as “Spaces and settings” instead of “undefined”.

## v1.59.0 — clearing what the loop left behind  ·  2026-09-20

- A device that ran the version with the task-id loop could still be holding thousands of queued changes; replaying them would only repeat the mess and keep real projects waiting. Such a backlog is now cleared on connecting and every project is shared again from what is actually on the device.
- The Gantt Forge+ panel now says plainly which projects are NOT being shared and why — on this device only, password-protected, the sample project, or paused after a problem — with a ▶ Resume button for the paused ones.

## v1.58.0 — everything about a project travels  ·  2026-09-20

- Through the organisation server a project now carries all of itself: colour, code name, target date and whether it is active, along with every setting inside it — custom fields and their rules, phase colours, bar rules, date markers, KPIs, stakeholders, change requests, named baselines, meetings, the financial year — and anything a later feature adds, without needing a new list. Pictures and tasks travelled already.

## v1.57.0 — the project that never stopped changing  ·  2026-09-20

- Reported: a space of eight projects never reached the other person. The cause: a project whose tasks carry no id — restored from a backup or brought in from a file — had new ids invented on every pass and never kept, so each pass looked like “every task is new, every old one is gone”. About a thousand changes a minute, crowding everything else out. Ids are now written into the project once and stay put.
- A safety valve: if one project still changes in a loop, its sharing pauses with a plain message instead of flooding the organisation. A space the server knows only by its access now gets its name published too.

## v1.56.0 — the organisation's admins decide for everyone  ·  2026-09-20

- 🔐 Who can see what now lists every space and every project in the organisation — including projects that are not on your own device (marked “not on your device”) — so a team owner or admin sets access for all of them, whoever created them.
- A space set up by someone else is no longer out of reach: admins can change any space, any project and any person's access, and the grid says so. Members also get a Role… button: viewer, editor, admin, or hand over ownership.

## v1.55.0 — linking and editing on the Timeline  ·  2026-09-20

- Reported: dragging a link between two tasks often did nothing. The task you are linking to is usually further along the plan, so its bar was off the side of the screen and the drop landed on nothing — in silence. Now the timeline scrolls itself while you drag towards an edge, you can drop on the task's NAME in the list on the left (always visible), and a drop that hits nothing says so instead of failing quietly.
- Double-click a bar, a milestone or a row in the Timeline to open that task and edit everything about it — dates, owner, status, notes. (Clicking the name still renames it in place.)

## v1.54.0 — No access means it goes  ·  2026-09-20

- Reported: a project set to ✕ No access was still on the other person's screen. Losing access now removes the project from that device instead of leaving a copy behind — the organisation still has it, so it returns the moment access is given back. Every minute each device also re-checks what the organisation lets it see, so a missed message (asleep, offline, another tab) heals itself.

## v1.53.1 — the grid shows what the space caps  ·  2026-09-20

- A project box that grants more than its space says now shows “↳ view only via the space” (or “no access via the space”) underneath — the space always wins.

## v1.53.0 — one grid for who can see what  ·  2026-09-20

- Organisation panel → 🔐 Who can see what: every space with its projects down the side, everyone across the top, each box ✕ No access / 👁 View / ✎ Edit (★ Manage for a space, ↳ Same as space for a project). Pick a box and it applies at once for everyone.

## v1.52.0 — pick people, pick roles; no typing  ·  2026-09-20

- Space access is now a list: every person in the organisation with a tick box and a role — editor, viewer or manager. Same for a person: their spaces, each with a role. No more typing addresses; the space's manager is shown and kept.

## v1.51.1 — which spaces can this person see?  ·  2026-09-20

- The organisation panel now answers it from both sides: each member shows the spaces they can see, with a Spaces… button to tick them on or off for that person; each space still has its own Access… for roles. ＋ New space creates one without leaving the panel.
- Admin console → Access review gained a Members table: every person, their role, the spaces they can see and how many projects that adds up to.

## v1.51.0 — access at two levels: organisation → space → project  ·  2026-09-20

- Spaces now carry their own access: everyone in the organisation, or only the people listed as managers, editors or viewers. Every project in a space inherits it (a project's own 🔒 can narrow it further, never widen it). Set it from the organisation panel → Spaces → Access…; moving a project into a space you cannot see is refused by the server.
- Admins get one plain page to audit it all: Admin console → Access review — every space and project, who can see and edit what, and the recent access changes with who made them.

## v1.50.2 — device-only projects are pointed out on connect  ·  2026-09-20

- When you connect with the organisation as the store and this device holds projects the organisation does not have (the demo, an old local one), you are asked once: keep them here only, share them, or delete them. No more wondering why a colleague cannot see something.

## v1.50.1 — what is on this device only  ·  2026-09-20

- With organisation sync live, a project that is not shared (the demo, or one you kept local) is marked “💻 this device only” on its Home card and in the sidebar, so it is clear why a colleague does not see it. The organisation chip counts everyone online, you included.

## v1.50.0 — who is here in the title bar; deleting a shared project  ·  2026-09-20

- With organisation sync live, the title bar shows the same initials pill as folder sync: you, the people in this project, and (dimmer) people elsewhere in the organisation, with a count. Click it for who is where. On plus.ganttforge.com organisation sync is on by default.
- Deleting a project that is shared now asks: only from this device (the organisation keeps it; it can be added back), or for everyone (it leaves every device; the server keeps its history and each device keeps a snapshot). Start again from scratch clears this device only — the organisation is the store, so signing in brings its projects back.

## v1.49.1 — a tidier Gantt Forge+ panel  ·  2026-09-20

- With organisation sync on, the older push/pull, passphrase and passphrase-live-session tools step aside (a link brings them back); the sync switch has its own row and a live status line; Sign out everywhere and Delete account live under Account; Invite people opens the organisation panel.

## v1.49.0 — one look for the whole organisation; who is where  ·  2026-09-20

- Reported: two people saw the same project in different colours. Space colours, status labels, holidays and the theme are now organisation settings: the first admin to connect publishes this browser's look, admins change it for everyone, members follow. The organisation gets a logo (set it from the organisation panel); it shows in the top bar and sidebar.
- On plus.ganttforge.com the organisation is the store: every project here syncs and every organisation project is on this device (switch it off in the organisation panel).
- Who is online: the chip shows “3 online”; the organisation panel lists each person with the project, view and task they are on; on the same project their initials sit on the row they are editing, and their changes flash in their colour as they land.

## v1.48.0 — your organisation, always on screen  ·  2026-09-20

- On Gantt Forge+ the organisation you are signed into is shown in the top bar and the sidebar — name and member count — with a warning colour while it is not set up or still waiting for approval. Click it: members, Rename, 🏢 Request an organisation, and ✉ Create an invite.
- An invite is a code and a link. Someone who opens the link signs in (Google, Microsoft or e-mail code) and lands straight in the organisation as an editor; the code still works under Join a team.

## v1.47.0 — Organisation sync: who sees what  ·  2026-09-20

- Access per project: the person who shared a project (or a team admin) chooses 🔓 Everyone in the organisation or 🔒 Only people I list, as editors or viewers. Losing access removes the project from your sync at once (your copy stays); gaining it shows the project ready to add.
- Only the projects on this device sync; the organisation's other projects are listed in the panel with an Add button — large workspaces stay light.
- 🔗 Read-only link: anyone with the link opens a view copy of the project, no sign-in; Stop links revokes them.

## v1.46.0 — Organisation sync: lists, offline review, undo  ·  2026-09-20

- List fields (labels, dependencies, watchers) now travel as add/remove instead of whole lists, so two people adding at the same moment both keep theirs.
- Offline: changes queue (up to 2,000) and are sent when you are back; after a long gap or many changes you are asked first — apply them, or discard and follow the organisation. Falling too far behind refreshes from the server automatically.
- ↶ Undo my last change inverts your most recent edit as a new change, so colleagues' later edits stay; if someone changed that field since, it says so instead of clobbering them.

## v1.45.0 — Organisation sync: local-first, server master (preview)  ·  2026-09-20

- Gantt Forge+ panel → 🏢 Organisation sync. A project you share follows the organisation server as you type: every edit becomes a small per-property change with the organisation's next sequence number; everyone applies them in that order and lands on the same plan. Your own edits appear instantly and are confirmed by the server; a change the server refuses (a dependency cycle, a view-only role) rolls back with the reason.
- Deletes are tombstones, task order travels as one small key per move (no renumbering), and 🕘 Activity shows who changed what, with the previous value — straight from the server's log. Needs a + server on 0.8 (Node 22).

## v1.44.4 — wordmark  ·  2026-09-19

- The sidebar and title-bar wordmark on plus.ganttforge.com now stays “Gantt Forge+” (a refresh was putting the plain name back).

## v1.44.3 — the + in the logo  ·  2026-09-19

- On plus.ganttforge.com the logo, the sidebar name, the title bar, the welcome screen and the browser-tab icon all carry a gold +, so it is obvious which product you are in.

## v1.44.2 — the + site says +  ·  2026-09-19

- On plus.ganttforge.com the window title and brand read “Gantt Forge+” everywhere, not just at start-up.

## v1.44.1 — Gantt Forge+ as its own site  ·  2026-09-19

- plus.ganttforge.com is now a product in its own right: a landing page, the app at /app/ already pointed at that server (no address to type, no connection prompt), and its own browser storage — nothing is shared with ganttforge.com. Sign in there with Google, Microsoft or an e-mail code and start.

## v1.44.0 — sign in to + with Google or Microsoft; organisations  ·  2026-09-19

- Gantt Forge+ panel: Sign in with Google / Sign in with Microsoft — no code by e-mail, your organisation's own sign-in. The + server (0.7) runs the OpenID Connect flow and hands the app a session for this device; the app never sees your password.
- Organisations: a team owner can request an organisation (name + e-mail domain). The server admin approves it in the new admin console; from then on anyone signing in with that domain joins it automatically, and the organisation's data is stored encrypted at rest under its own key.
- Admins see a 🛠 Admin console button: pending requests, organisations, and live load (connections, requests and messages per second, storage).

## v1.43.1 — old files are not people  ·  2026-09-18

- Reported: still four “KS” in the seat row on 1.43.0. Those were the ghost ids' day-old state files: since 1.42.9 any file that lands counts as a sign of life, and on a tab's first scan every file in the folder looks freshly landed. A file now counts by its own date on that first scan, and only if it actually opens (tombstones never do).

## v1.43.0 — one person, one id — even with several tabs  ·  2026-09-18

- Reported: “multiple versions of KS when I open new tabs”. The device-id clash detector (1.42.0) mistook a second tab of the same browser for another computer and gave every new tab a fresh id — so one person appeared as several browsers, and the owner record pointed at an id nobody used any more. A session now carries a per-browser token, so another tab of your own browser is never a clash.
- Taking it back: if the owner record has your name but another id, the Team sync role card shows 🪪 That's me — reclaim. With the owner password this browser takes its original id back and is the owner again; then 🧹 Purge stale copies retires the ids used in between.
- Safety: a browser never publishes an empty project over one that had items (a half-loaded tab once did), and background syncing waits until storage is fully loaded.

## v1.42.10 — the Team sync how-to reads normally again  ·  2026-09-17

- Help → Team sync — three steps showed every line in bold on a blank background: a styling slip applied the heading weight and the code-chip background to the whole panel. Fixed; the app shows behind it again.

## v1.42.9 — a sign of life is any file that lands  ·  2026-09-17

- Reported: KS could see CC but CC could not see KS. On CC's computer KS's state file was 13 minutes old and KS's presence file an hour old — that cloud client forwards a file written now and then, never one written every half minute. “Who's here” no longer depends on the presence file alone: any file that lands from a person counts, and someone whose last file arrived 5–30 minutes ago is shown as a faint initial (“recently active”) instead of vanishing. Presence itself is now written once a minute.

## v1.42.8 — who is online, on a cloud folder  ·  2026-09-17

- Reported: users still don't see who else is online. CC's folder held KS's presence file from an hour earlier next to a 25-minute-old state file — the presence file was rewritten every 10 seconds and a OneDrive/SharePoint client will not forward a file that never goes quiet; what did arrive came minutes late, past the 60-second timeout. Presence is now written every 30 s (the space record once a minute), and a person stays visible for five minutes after their last file lands — hover an initial to see “seen 2m ago”.
- Expect a person to appear within a couple of minutes of opening the app on a cloud folder, and instantly on a network drive.

## v1.42.7 — a purged file is judged by its date when it carries no time  ·  2026-09-17

- From CC's diagnostics: freshly rewritten picture files were still being tagged as purged — the file had no time inside (a cloud client had put an older version back on top of the fresh write). A file without a time inside is now judged by its date on disk, and a browser's own files are never tagged.

## v1.42.6 — a purged teammate comes back cleanly  ·  2026-09-17

- Your diagnostics confirmed the fix worked: every old file is now a tombstone and the audit shows no conflicts. Two things it also showed: a purge can include a teammate who simply was not online at that moment — their own file, once neutralised, was not being rewritten when they returned. It is now rewritten on their first sync, so they reappear within seconds.
- The purge now ends with a summary box (the toast was hidden behind Diagnostics), Diagnostics keeps the last action, and a file the folder refuses to touch is retried every ten minutes instead of every pass.

## v1.42.5 — when the folder will not let a file go  ·  2026-09-17

- Your diagnostics after the purge showed every set-aside file still in place twenty seconds later, all correctly marked ⛔ purged: on that OneDrive/SharePoint folder the delete step was failing silently. Setting a file aside now tries a real move, then copy-and-delete, and when the folder still refuses, overwrites the file in place with a tombstone that every browser ignores. The purge reports what happened (moved / neutralised / untouchable), and Diagnostics lists any failure with the folder's own error (setAsideFailures).
- The audit no longer raises “has N items where you have M” or “wrote this as …” for purged files — they are ignored, so they are not conflicts.

## v1.42.4 — purges stick  ·  2026-09-17

- Reported: purged copies kept reappearing. A cloud client (OneDrive/SharePoint) can bring a deleted file back — your two diagnostics showed the same folder holding different files on the two computers. A purge is now recorded in the space (which browser, when), and every browser that meets a purged browser's old file sets it aside again by itself, in the open project and in the background ones. The audit marks such files ⛔ purged.
- A purged person who genuinely comes back is fine: their new files carry a newer time inside and are honoured.

## v1.42.3 — pick which copies to purge  ·  2026-09-17

- 🧹 Purge stale copies now shows every other browser with a tick box — the ones not online are ticked, the ones online now are listed unticked so you can include them too. Untick anyone you want to keep.

## v1.42.2 — the owner can purge stale copies  ·  2026-09-17

- Owner only: 🧹 Purge stale copies (Team sync role card, and in Diagnostics repairs). It sets aside every file written by a browser that is not online right now — in every project folder of the space, into “_retired devices”, nothing deleted — and then re-sends your copy of every project, so the folder holds exactly your version plus the people actually present. It shows who is set aside and who is kept before doing anything.
- Anyone set aside loses nothing on their own computer; the next time they open the app they write fresh files as a contributor and mirror your version.

## v1.42.1 — who is online, across the whole space  ·  2026-09-17

- From your two diagnostics: KS was in “MH Growth Engine” and CC in “R&D-03” — different projects — and “who's here” only ever looked at the one project folder you have open. Everyone in the space is now shown: people in the same project as before, and people in other projects as dimmer initials (hover: “CC — in R&D-03”). The Team sync panel lists who is online, and Diagnostics has onlineInSpace.
- It works through one small record per person in the space folder, refreshed every 20 s — name, project, time; no task data.

## v1.42.0 — owner password, and seeing each other again  ·  2026-09-17

- Ownership is now locked with an owner password. It is set when a computer becomes the owner (kept in the space folder only as a salted hash, never the password). Taking over from a recorded owner requires it — and a space that has an owner but no password cannot be claimed at all; the owner hands over or sets one (🔑 in Team sync).
- Reported: two people in the same project could not see each other in the “who's here” initials. Two fixes: a person now stays visible for a minute after their presence file LANDS here (cloud clients deliver late, and the old rule timed them out by the time they wrote); and if two computers ever end up on the same device id — each then treats the other's files as its own and neither sees the other — the app notices and gives itself a fresh id.
- Diagnostics lists every presence file in the open project's folder — who, when, and whether one shares this browser's id — and who is visible right now.

## v1.41.1 — approval level: structure only, or everything  ·  2026-09-17

- The owner now chooses what needs approval (Team sync panel → ✋): <b>Structure only</b> — new tasks, deletions, renames, codes, colours, pictures wait; edits to existing tasks flow through (the default) — or <b>Everything</b>, where every change a contributor makes waits in the inbox as “task · field → value · from whom”.
- With Everything on, a contributor sees their own edit at once, marked ⏳, but nobody else does until the owner accepts it; a declined edit reverts on their screen.

## v1.41.0 — Owner mode: one copy is the space  ·  2026-09-17

- A space can now have an <b>owner</b>. The owner's copy is the space; everyone else mirrors it. Contributors' edits to existing tasks — dates, status, progress, notes, assignees — flow through and are accepted automatically. Anything structural — new tasks, deletions, renames, codes, colours, target dates, pictures — stays on the contributor's screen marked ⏳ and lands in the <b>owner's inbox</b> to accept or decline, one by one or all at once.
- Contributors never adopt each other's files, and joining always means taking the owner's version. A confused or scrambled contributor cannot rename, delete, inflate or contaminate anything anywhere.
- Turn it on from the Team sync panel or Troubleshooting: <b>👑 Make this computer the owner</b> — the folder is rebuilt from that copy first. Ownership can be handed to another browser, or claimed if the owner's computer is gone. The space badge shows “Inbox N” for the owner and “⏳ N” for a contributor with additions waiting.
- Spaces without an owner keep working exactly as before (peer mode).

## v1.40.3 — restore a whole space to a point in time  ·  2026-09-17

- New in Troubleshooting: ⏪ Restore the whole space to a point in time… — start of today, end of yesterday, an hour ago, or a moment you choose. Every project goes back to its newest recovery point at or before that time (daily checkpoint, rolling snapshot or named snapshot), with a preview first and a snapshot of each project's current state before anything is written.
- Restoring a daily checkpoint or rolling snapshot now puts the project's name back as well when it differs — a wrong file from another computer can rename a project, and a recovery point should undo that too.

## v1.40.2 — the tripwire covers small projects and renames  ·  2026-09-17

- Two gaps closed from a live incident: a 1-item project that became 9 slipped past the tripwire (it ignored projects under 5 items), and a project was RENAMED by a wrong file, because a project's name travels with its data. Now any project is held when it would gain 5+ items or lose half, and any incoming rename is held for review — “it would be renamed “R&D-01…” → “R&D-02…””.
- Insurance: when a change of 3+ items arrives on the project you have open, a snapshot is taken before it is applied.

## v1.40.1 — “use my version” means exactly that  ·  2026-09-17

- Reported: a computer that had already been wiped kept “adding other stuff”. Its old files were still in the folders, and two rules let them back in however often the right version was re-sent: tasks merge item by item (a task only the wrong file had was added back), and pictures merge as a set (a stray picture was unioned in).
- “⤒ Use my version” and “Rebuild the folder from this computer” are now exact: anything other browsers hold for that project that is not in your version is marked deleted as of now, so it cannot come back.
- New in Troubleshooting: 🗑 Remove a browser's files… — choose a browser and every file it wrote, in every project folder of the space, is moved aside. Nothing is deleted; a computer still in use simply writes fresh files.

## v1.40.0 — checks and balances  ·  2026-09-17

- The sync now defends itself. <b>Identity:</b> every file carries its project's id and name; a file that belongs to another project is refused on read (and deleted if it is this computer's own), a write into a folder that belongs to another project is refused, and a file written under a different project name is flagged.
- <b>Tripwire:</b> an incoming version that would change a project's item count by more than half — down, or more than 2½× up — is not applied. It is held for review: Troubleshooting shows “18 items would replace your 8 (from Charles)”, and you choose <b>Accept</b> (a snapshot is taken first) or <b>Keep mine</b> (yours is sent to everyone). Joining a project for the first time is exempt.
- <b>Checksums</b> on every file and on your local copy, shown in the audit so two computers can be compared at a glance. <b>Ledger:</b> each project keeps its last 12 changes — when, who, items, pictures, checksum, and any refusal — under “recent changes” in the audit.
- The space badge shows <b>Review</b> in amber while something is held.

## v1.39.1 — one project, one folder  ·  2026-09-17

- Found from a new computer's report: two of its local projects had been linked to the same team folder, so both wrote the same file there and one project's tasks and code turned up in another project's folder — and, being newest, would have reached the whole team. A folder now belongs to exactly one project on a computer, enforced wherever a link is made; Connect refuses a plan that maps two folders onto one project; Troubleshooting shows any such clash and fixes it in one click.
- “Sync kept dropping” was a false alarm on that computer: switching between projects stops the previous session, and three switches in a row counted as three drops. Only a real failure counts now.

## v1.39.0 — how-to for Team sync  ·  2026-09-16

- New in Help: “☁ Team sync — three steps”. Before you start, then each step — the folder (any level works), the team password (set it or enter it), share the space or join — plus what you see while working together, Stop/Resume, and what Troubleshooting and Start again from scratch do. The panel's “How it works” opens it.

## v1.38.1 — the close button stays put  ·  2026-09-16

- Long dialogs — What's New (the version log), the how-to guides, Diagnostics and the rest — kept their coloured header and ✕ at the top while you scroll, so you no longer have to scroll back up to close them. Esc closes them too.

## v1.38.0 — team sync in three steps  ·  2026-09-16

- Every folder and cloud icon — the chip at the top, the badge next to a space, Integrations, Share — now opens one panel: <b>1</b> the shared folder, <b>2</b> the team password, <b>3</b> share the space (or one project) or join what your team already shared. What is syncing right now, with its Stop or Resume, sits on top.
- Everything else has moved behind <b>🩺 Troubleshooting</b> (Diagnostics, kept whole): the audit of every project and file, and every repair — send mine / take the folder's per project, colours &amp; codes, rebuild, tidy, shorten, merge, change the team password. Right-click an icon for the old quick menu.
- <b>Start again from scratch</b> in the panel gives a clean slate on this computer — forgets the folder, the password and every link to it, without touching your projects or the folder — and walks the three steps again.

## v1.37.0 — change the team password properly  ·  2026-09-16

- New: 🔑 Change the team password… (Settings → Security, Diagnostics, and the space's cloud badge). Every shared project in the folder is re-encrypted under the new password — every browser's files, not just yours — and each project's lock is updated last.
- Everyone else's app notices the change, stops, and asks for the new password; their work is kept, because their files were re-encrypted too. An unreadable file is never set aside when the real reason is a changed password.
- Settings → Security now asks which you mean: the team password for the folder, or only this computer's copy (for when you mistyped it and need to match the team).

## v1.36.1 — one broken file no longer blocks a whole project  ·  2026-09-16

- From your latest audit: every project still failing had an empty file from another browser in its folder, and every project working did not. The background sync gave up on a project at the first unreadable file — for ever — so the browser that had the good copy never rewrote its own broken files or sent its codes for exactly those projects.
- An unreadable file that is a few minutes old still gets a moment to finish arriving; an older one is skipped and set aside after an hour. The rest of the project syncs regardless.
- The “.writing” leftovers you saw were a rename the synced folder refused; it now falls back to plain writes after the first refusal and cleans the leftovers up.

## v1.36.0 — broken files are rewritten, and a code alone now travels  ·  2026-09-16

- From your two audits: the files marked “could not be opened” were empty or cut short — left by earlier copies and by writes a cloud client interrupted — and a browser never rewrote its own broken file, so its projects never reached anyone. Each browser now checks its own files every sync and rewrites any that are broken; other browsers' broken files are set aside after an hour (and 🧹 Tidy can do it now).
- Writes now go to a sibling file and are renamed into place, so a file is either the old version or the new one — never half of one.
- Setting a project code (or colour, or target) on a project you don't have open never bumped that project, so the sync pass skipped it as “nothing new”. It goes out on the next pass now, and the repairs that restore a value locally also send it on.
- The audit now says plainly which files are empty or cut short, and whose they are.

## v1.35.4 — Diagnostics shows every project, every browser, every file  ·  2026-09-16

- Diagnostics now audits the whole space: for each project, what this browser has (items, pictures) and what every browser's file in the folder holds — items, code, pictures, removals, and when it was written. Copy all of this includes it.

## v1.35.3 — a lost picture is not a removed picture  ·  2026-09-16

- Urgent fix to 1.35.2. It treated a picture that vanished from a computer's list as a deliberate removal — so a computer that had LOST its pictures told everyone else to remove them too, and a removal beats an add. That is why pictures stayed missing after the repair.
- A removal now counts only where someone actually clicks remove. Anything 1.35.2 recorded is discarded on every computer, and everyone ignores the old removal lists in the folder.
- After reloading, use ⤓ Take the folder's version for every project… on the computer that is missing pictures; they come back from whichever computer still has them.

## v1.35.2 — no more vanishing pictures  ·  2026-09-16

- Reported: two pictures went missing after syncing. Pictures were merged as one value — whichever computer wrote its list most recently replaced everyone else's, so a computer with fewer pictures quietly dropped the rest.
- Pictures now merge as a set: every picture anyone added stays. Removing one is remembered by its fingerprint and time, so a removal still wins over an older add — and putting it back forgets the removal.
- Colours and code chips that look wrong are a different thing — two computers claiming at the same moment. Settle them from the machine that has them right: the space's cloud badge → 🎨 Use my colours &amp; codes everywhere.

## v1.35.1 — “Take the folder’s version” really takes it  ·  2026-09-16

- Reported: it still did nothing. The reason was that syncing deliberately ignores your OWN browser's files in the folder — so when the folder had been written by that same browser (very common after rebuilding it, or after a browser was cleared), there was nothing for the merge to take.
- It now reads the project's folder directly: every state and pictures file in it, whoever wrote them, merged newest-value-wins and written straight in — tasks, pictures, colour, code and target. A snapshot is still taken first, and it reports what arrived.

## v1.35.0 — “Take the folder’s version” for a whole space, and it tells you what it did  ·  2026-09-16

- Reported: it only existed per project, and seemed to do nothing. Two reasons — the project you have open is not touched by the background sweep (its own sync had to be restarted and waited for), and when the folder holds nothing for a project the honest outcome is “nothing changed”, which it never said.
- It now checks the folder first and refuses with a clear message when there is nothing there, waits for the sync to finish, then reports what arrived: “12 items, 2 pictures (was 0 and 0)”.
- New: ⤓ Take the folder’s version for every project… in the space’s cloud badge, and in Diagnostics. Each project is snapshotted first, then the results are listed project by project.

## v1.34.9 — a move never deletes what it did not copy  ·  2026-09-16

- Serious fix. When a folder was renamed, the copy was checked over the files that HAD copied — so a file that failed both attempts was never noticed and the original folder was deleted anyway. That is how pictures and content went missing.
- The check now runs over every file in the original: each must exist in the new folder and not be empty, with a retry, and if even one is not there nothing is moved or deleted and you are told which files.
- New: ⤒ Rebuild the folder from this computer… (Diagnostics, and the space's cloud badge). It sends every project in the space — tasks, pictures, colour, code and target — from the computer whose copy still looks right, and everyone else picks it up on their next sync. Nothing on your computer changes.

## v1.34.8 — merging duplicates says what happened  ·  2026-09-16

- Reported: “Merged 0 duplicate folders”. Every step of the merge was inside one try, so a single file the cloud was holding open silently abandoned that folder — and nothing was reported.
- Each step now stands alone: files are copied one by one, the leftover folder is marked as replaced even when a file could not be copied (which is what makes it disappear for everyone), and removal is attempted last. Anything that still fails is named, with the tip to pause OneDrive briefly and run it again.
- When the folder that survives is a “… 2” copy, it is put back under the clean name once the others are gone.

## v1.34.7 — one folder per project again  ·  2026-09-16

- Reported: connecting offered 10 projects for a space of 8, with the same project listed twice. Earlier rename attempts had copied a folder but could not remove the original, leaving two folders for one project.
- A folder that has been replaced is now marked and ignored everywhere, so leftovers never show up again.
- New in Diagnostics: 🧬 Merge duplicate project folders… — keeps the folder written to most recently, copies anything only the older one had, marks and removes the rest, and points this browser at the winner.
- The connect screen now shows one row per project whatever the folder holds, and says when a project has more than one folder.

## v1.34.6 — shortening folders no longer gives up mid-move  ·  2026-09-16

- Reported: it still refused, saying someone was in the folder. Two real causes: the copy was verified by file SIZE, and a teammate writing during the move made a size differ — so a perfectly good move was abandoned; and a destination left over from an earlier attempt made it give up rather than reuse it.
- The copy is now verified by the file being there (re-copied once if not), a leftover destination for the same project is reused instead of creating “… 2”, and a file the cloud is holding open is picked up on the second pass.
- When something genuinely can't be moved you now get the real reason per project — not “someone is in them” — with the tip to pause OneDrive briefly and try again. Diagnostics keeps the last reason for each project.

## v1.34.5 — “Shorten folder names” works while the team is online  ·  2026-09-16

- Reported: the repair skipped every folder with “someone is in them”. Waiting for a folder nobody is in isn't realistic for a team, and isn't needed — every browser already re-finds a project's folder by the project's id.
- It now offers to go ahead: the folder is copied, given a moment for anything written during the copy, copied again, and only then removed. Everyone else picks up the new folder within seconds; at worst someone's last few seconds of typing needs one more keystroke to reappear.
- The project open on this computer is handled too — sharing stops for a moment, the folder moves, and it rejoins by itself.

## v1.34.4 — short names, so Windows can find the files  ·  2026-09-16

- Found from a second diagnostics report: three projects failed on every pass in a SharePoint-synced folder. Windows still stops at 260 characters for a whole path, and a synced library uses 80–120 before Gantt Forge starts — so a long project name plus a long person name pushed the file past the limit, and it “could not be found”.
- New folders and files are now kept short (project name 36 characters plus its id, person 18), which keeps a project's longest path near 120 characters.
- Diagnostics now names the projects that are failing and what the error was, warns when a path looks too long, and offers ✂ Shorten long folder names… — each folder is copied to the shorter name, checked, then the old one removed. Projects someone is in right now are skipped; run it again later for those.

## v1.34.3 — one browser, one identity (and a tidy-up)  ·  2026-09-16

- Found from a diagnostics report: one computer had left SEVEN sets of files in a project folder. The device id lived only in local storage, so clearing it (or opening the installed app after a clean-up) minted a new one and left the old files behind as ghost “browsers”. The id is now kept in two places and restored, so one browser stays one browser.
- Those ghosts also made this computer re-send colours and codes for ever, because a file from a browser that never comes back is always “missing” them. Only browsers used in the last few days count now, and files from browsers not seen for a week are moved aside automatically (never deleted).
- New in Diagnostics: the browsers it can see for this project, when each last wrote, and 🧹 Tidy old device files… to move the quiet ones into “_retired devices”.
- A cloud folder that hides a file mid-sync no longer spoils the whole pass: that project is marked “retrying” and the rest carry on.

## v1.34.2 — no more start/stop loop, and a diagnostics screen  ·  2026-09-16

- Fixed the loop between “Shared folder” and “Connecting…”: a folder the app could not find made every pass restart the whole session, which then failed the same way. The folder is now found again in place (by the project's id), at most once every 20 seconds, and if it truly isn't there the session stops with a plain reason instead of spinning.
- A session that keeps dropping (three times in two minutes) now pauses itself and says so, rather than flapping.
- New: 🩺 Diagnostics — in the “Stored in” chip menu, the space's cloud badge and the bottom of the sharing window. It shows the folder chosen, whether permission is granted, which “GanttForge Live” it resolved to, the spaces and projects it can see, the exact folder this project is bound to and the files in it, your name and whether the password is set, plus the last error. One button copies the lot.

## v1.34.1 — codes and colours reach every project  ·  2026-09-16

- Fixed: a project code could stay on one computer. A browser only publishes when something changes, and one that never had a code had nothing to publish — so a code set before sharing existed never travelled. Now, if this computer has a code, colour or target that another computer's file in the folder is missing, it is re-sent automatically (once per project).
- New the other way round: a space's cloud badge → <b>⤓ Take everyone's colours &amp; codes</b>, and a project's ⋯ → <b>🎨 Take the shared colour &amp; code</b> — for a computer that wants what the team has. Only the look and labels change; dates and tasks are untouched.

## v1.34.0 — sharing, in plain English  ·  2026-09-16

- Reported: “what is Live and Live spaces?” Fair question — the free version had four overlapping ideas on one screen. It is now one page: where the folder is, then <b>Share “this project”</b>, <b>Share the whole space</b>, or <b>Join what someone else shared</b>.
- The jargon is gone. No more “Live” or “Live spaces” — it says what it does, and the window is now called “Share through a folder”.
- What is happening shows first, in one line — sharing this project, sharing the space, or stopped — with the single button that changes it. Anything in the way (folder unreachable, no team password) appears as one banner with the fix.
- One-off copies (put a copy in / take the copy from the folder), automatic backups and this computer's name have moved under “Advanced”, so the everyday screen stays short. Your name and the team password are right where you share.

## v1.33.2 — your name, settled once  ·  2026-09-16

- The default used to be the browser/OS guess (“Chrome on macOS”), which is the same for half a team — so people clashed and were asked to rename on every join.
- Your name is now settled once, from the best thing already known: your Gantt Forge+ sign-in, or the name you gave this device. A toast tells you which was used and where to change it. Only when none of those exist are you asked — once — and it is saved as My Name.
- You can see and change it where sharing happens: Cross-Device File Sync (“Others see you as”), the space's cloud badge, the share dialog, and Settings → My Name.

## v1.33.1 — Stop means stop, and no more ambiguity  ·  2026-09-16

- Stop now really stops. If the project is in a shared space it asks whether to stop just this project or the whole space, says what it stopped, and only ▶ Resume starts it again — the chip shows ⏸ Stopped instead of pushing you to reconnect.
- No more Reconnect loop: if the browser refuses the folder once, the action becomes “Choose the folder again”, which is what actually fixes a disconnected drive or a moved folder.
- Codes and colours now reach every project, not just the one that happened to change: each project publishes once after a version change.
- Two people can no longer appear under one name — if the name is already in the project you are asked for a different one before starting, since initials are what everyone sees.
- Opening the same live project in a second tab on the same computer now offers to watch instead, rather than two tabs fighting over the same files.

## v1.33.0 — real cursors in a + session · one password prompt when you join  ·  2026-09-16

- Gantt Forge+ live sessions now show everyone's pointer, with their name, moving as they move — in the table, the timeline and anywhere else in the workspace.
- What travels is what the pointer is over (a task and column, or a point on the timeline), not screen coordinates, so a cursor lands on the same cell whatever the window size, zoom or scroll. The server relays and forgets it — nothing is stored. Turn it off in ✦ Gantt Forge+ → Live session.
- Fixed: attaching a shared folder asked for the password twice. That was the “set a password” flow, which makes sense for the first person and not for anyone joining. Joining now asks once and checks it against the folder itself, and says plainly when it doesn't open it — with nothing changed on your computer.

## v1.32.0 — see where everyone is, and what just changed  ·  2026-09-16

- Everyone in a live project now shows up on the row they have open: their initials, in their colour, on the task in the table, the timeline and the board — and on the task detail panel when two of you have the same task open.
- Every change that arrives flashes the exact cell it changed, in the colour of whoever made it, with their initials for a couple of seconds. No more wondering what just moved.
- It rides on the presence file that was already there, so it costs one small write when you move — it refreshes at the folder's own speed (1–3 s on a network drive, cloud speed otherwise). Turn it off with 👀 in the space's cloud badge or in Cross-Device File Sync.
- Mouse-pointer trails need a server — a shared folder carries files, not cursor moves — so those stay a Gantt Forge+ live-session feature.

## v1.31.4 — colours and codes actually arrive, and you can settle it by hand  ·  2026-09-16

- Fixed: sharing colours and codes (1.31.3) didn't show up, because both computers claimed the change at the same moment the first time they ran it, so each kept its own. The first run now claims nothing, and when two computers claim the same moment the richer value wins — a real code beats no code — so everyone lands on the same one instead of each keeping their own.
- Colour, code and target date are now three separate things, so a code can arrive even when the colours already agree.
- New, in a space's cloud badge and a project's ⋯ menu: <b>⤒ Use my version</b> sends this computer's version to everyone, and <b>⤓ Take the folder's version</b> brings everyone else's here — with a snapshot taken first, so nothing is lost either way. “🎨 Use my colours & codes everywhere” does the look-and-label for every project in the space at once, without touching dates or tasks.

## v1.31.3 — colours and codes travel with a shared space  ·  2026-09-16

- Fixed: someone joining a shared space saw different colours and no project codes. A project's colour, code and target date are part of the project list rather than its data, so they were never shared. They now travel with the project and arrive on the first sync — change one and everyone sees it, the same as any other edit.
- The space's own colour travels too: it is kept with the space in the folder, so “TRANSFORM” looks the same for everyone. Favourites, archived and importance stay personal to each browser.
- The “new space” button beside Projects is now a clear folder-with-a-plus icon instead of an emoji that rendered differently on Windows.

## v1.31.2 — joining works whichever folder you pick  ·  2026-09-16

- Fixed: on a second computer, choosing the space's own folder (for example “TRANSFORM (space)”, already inside GanttForge Live) found nothing, so the space never opened. Any level works now — the folder that holds GanttForge Live, GanttForge Live itself, a space folder, or a single project's folder.
- After you choose a folder, Gantt Forge says what is already shared in it — the spaces, how many projects, and anything your file password can't open — and offers to join it there and then.
- “Join a space or project…” now explains what to pick when a folder has nothing shared in it, instead of just saying there is nothing there.
- New: 🔗 Connect to a shared space — one place to join a space safely. It reads the folder, shows each project there (items, dates, first names, who wrote it last) beside what you already have, and proposes a match by how much actually lines up. Change any row to use yours, add it as new, or skip it. Rows that look like a poor match are flagged, so the wrong data is never plugged into the wrong project.
- Nothing is written until you press Connect, and a snapshot — “Before connecting to …” — is saved for every project you match, so your version can always be brought back. Find it on the “Stored in” chip, in Cross-Device File Sync, the space's sync menu and Help.

## v1.31.1 — a shared space shows its sync status, with actions  ·  2026-09-15

- A shared space now carries a status button in the sidebar — ☁ Live with a dot: green synced, blue syncing, amber when something needs you, red on a problem.
- Click it for what is happening and what to do: 🔌 Reconnect (browsers ask for folder permission again after a restart), 🔄 Sync now, which service the folder is in (Google Drive, OneDrive, Dropbox, iCloud, Box or a network drive), each project's sync state, set-up, Mega Gantt and Stop sharing. The space ⋯ menu has Sync now too.
- When a project is shared but live sync isn't running in this browser, the chip at the top says so in amber — with Reconnect — instead of “This browser”.

## v1.31.0 — Mega Gantt: every project in a space on one timeline  ·  2026-09-15

- New: 🌌 Mega Gantt — a space's ⋯ menu, or 💼 Portfolio → Mega Gantt. Every project in the space on one timeline, each in its own distinct colour, with progress, milestones and today.
- Open any project (▸, or ⊞ Open all) to see all of its items — phases, tasks and milestones — in that project's colour, so you can see how they all pan out against each other.
- Overlay layout packs every item from every project onto shared lanes; the load strip shows how many items are running each week, stacked by project. Zoom by weeks, months, quarters or fit; show open items only; milestone lines across the whole chart.
- Click a project in the legend to hide or show it. Click any item for its dates, progress, status and who — and “Open in project”. Your layout choices are remembered.
- Read-only and on top of everything else: it doesn't change any project, and every existing view works exactly as before.

## v1.30.0 — the cloud symbol, and one simple way to share through a cloud folder  ·  2026-09-15

- When a project is live in a Google Drive, OneDrive, Dropbox, iCloud Drive or Box folder, the chip at the top shows a cloud and the service's name — “☁ Google Drive · My Drive / Marketing (space) / Website Relaunch”. It turns amber if syncing hits a problem. Shared spaces show the cloud in the sidebar too.
- The app recognises the service from the folder it can see (“My Drive”, “OneDrive – Contoso”, “Dropbox”…) and the hidden files those apps leave, and asks once when it can't tell. You can change it any time.
- New: Share through a cloud folder — one dialog with four steps: where (Google Drive, OneDrive / SharePoint, Dropbox, iCloud, Box or a network drive, each with how to get the folder onto your computer), choose the folder, set the team password, then share this project, the whole space, or join what's already there. It also shows what is live and lets you stop.
- Find it on the “Stored in” chip, Share ▾, Help, the feature finder, and at the top of Cross-Device File Sync.

## v1.29.0 — whole spaces live in the shared folder · undo history on right-click  ·  2026-09-15

- Share a whole space live: a space's ⋯ menu → “📁 Share this whole space live in the folder”. Every project in it goes into “GanttForge Live / Space name (space)”, and a 📁 shows next to the space.
- All of the space stays in step, not just the open project: the one you have open syncs in real time, and the others sync in the background every 20 seconds — so dashboards, Space at a glance and exports show everyone's latest. Opening another project in the space moves real-time sync to it.
- Projects added to a shared space — by you or anyone else — appear for everyone. “Join a live project…” now offers whole spaces; projects you already have with the same name are used, not copied, and your version is kept as a rolling snapshot.
- Leaving live on purpose now stays left: the project isn't pulled back in until you start live again. Password-protected projects aren't shared (they're listed as skipped).
- Right-click Undo or Redo to see the history: every step you can go back to or forward to, what each changed and when. Click one to jump straight there — you can still undo or redo afterwards.
- History now says what each step did — “Kickoff: status → In Progress”, “Added “Launch party””, “Moved “QA””, “Edited 12 tasks — progress” — here and in the History panel.
- Fixed: undo history carried over when you switched projects, so undoing after a switch could bring the previous project's tasks into this one. Each project now keeps its own history.

## v1.28.0 — shared folders you can recognise, one copy per project  ·  2026-09-15

- Live projects in a shared folder are now named after the project — “GanttForge Live / Website Relaunch — a1b2c” instead of a string of letters — and each person's files are named after them (“Priya (Chrome on Windows) ~d…state.json”). What is inside stays encrypted.
- Each project is bound to its live folder. Starting live again always reuses that folder, so no more extra copies; Cross-Device File Sync shows where it is bound, with Unbind if you ever want to choose again.
- Starting live on a project whose name is already live in the folder asks you to join that one instead of making a second copy. Joining when you already have a project with that name lets you use it — your version is kept as a rolling snapshot, so nothing is lost.
- Existing live folders are still found, and are renamed to the readable form the next time someone starts live while nobody else is in them. Files from browsers not used for 14 days move to “_retired devices” — already merged, never deleted.
- On-demand sync files are bound too: renaming a project keeps writing the same file instead of starting another, and a first sync never writes over a different project's file that happens to share the name.

## v1.27.1 — how-to for meeting notes in exports  ·  2026-09-15

- New in Help: “📤 Meeting notes in exports”. It shows how to switch minutes on for PDF / Print, Excel, the PowerPoint deck and Space at a glance, what each one adds, where else the same switch appears, and what to know about carried-over actions and sharing. A button opens the ⚙ In exports menu directly. Also in Step-by-step Help and in the Meeting notes guide.

## v1.27.0 — meeting notes in exports (optional)  ·  2026-09-15

- Meeting notes can now go into your exports — each one switched on separately, all off to begin with. Choose in 📝 Notes → ⚙ In exports, or where each export is set up.
- PDF / Print: a “📝 Meeting notes” section — open action items across meetings, recent decisions, then the latest meeting, latest 3 or all, with the full notes or a shorter version.
- Excel: “Meeting notes” and “Action items” sheets in the project workbook, the space workbook and the Space at a glance workbook.
- PowerPoint: a “📝 Meeting Notes” slide in the Export window's slide list — the latest catch-up with its decisions and notes beside every open action item (overdue ones in red).
- Space at a glance: a “Latest catch-up” page after each project's Dashboard and Report view, for projects that have notes.

## v1.26.1 — logos keep their shape  ·  2026-09-14

- Fixed: in the Space at a glance PowerPoint, a long logo (a name beside a mark) was squashed into a small box. Logos are now measured and fitted keeping their proportions — a long logo gets a wide, short white card; a square logo stays square — on the cover, the Report view slides and the dashboard footers.

## v1.26.0 — Space export with every project's Dashboard, Report view and dollars  ·  2026-09-14

- Space at a glance (PowerPoint and PDF) now gives each project two full pages: its Dashboard — title block with code, start → finish and target; tasks, progress, overdue, in progress, health; a $ summary (budget, actual, forecast, remaining, forecast vs budget, spend bar); status chart; phases with progress and money; open milestones and what needs attention — and its Report view Gantt on one page, with the same title block.
- New Dollar summary page: every project's budget, actual, forecast, remaining and forecast vs budget with a spend bar, and totals. The overview shows spent / budget in dollars. Excel adds Remaining and Forecast vs budget columns.
- Fixed: the logo from a brand skill was missing from the PowerPoint. Skills often ship an SVG logo, which PowerPoint cannot show; it is now converted to a picture first, and it appears on the cover and on every project page.

## v1.25.6 — title block in PowerPoint and PDF  ·  2026-09-14

- PowerPoint: the Gantt Timeline slide now opens with the same title block as Report view — the full project name with its code, the plan's start → finish plaque with its length, and a target-date banner (green, amber or red with what it means). Later Gantt slides keep a slim header with the project name.
- PDF / Print: the first Timeline page starts with the same title block, in your brand colours.

## v1.25.5 — Report view title block; tidy pictures  ·  2026-09-14

- Report view: the empty band above the task list and month headings is gone.
- Report view: the header is now a title block — the full project name with its code, the plan's start → finish as a plaque (with how long it runs), and a target-date banner beside it. The banner turns green, amber or red and says whether the plan finishes on time or how many days after the target. No target yet? Click “Set a target date…”.
- Report view: project pictures are all the same height, each as wide as its own shape, so they sit in a neat row without empty space.

## v1.25.4 — progress labels clear of the dependency lines  ·  2026-09-14

- Report view, printed / PDF reports and the PowerPoint Gantt slide: the dependency line leaves a bar exactly where its “%” label sat, so the line ran through the number. When a task has a task linked after it, the label now sits a little to the right of that line, and labels are drawn on top of the lines and the TODAY marker with a light outline so they stay readable. Milestone dates move the same way.

## v1.25.3 — the right logo and theme everywhere  ·  2026-09-14

- Fixed: the Gantt Forge logo turned into a purple-and-orange square, with a plain white-and-indigo look, after choosing a Settings quick preset (Clean, Hatch, Compact, Dark), after the “Toggle Dark Mode” command, or on a first visit from a computer set to dark mode. Those switched the app to the plain Light or Dark theme.
- The logo is now the gold Gantt Forge mark in every theme. Presets and the dark-mode toggle keep the Royal Gold / Royal Night look, and a dark computer starts in Royal Night.
- If your workspace had been switched to plain Light or Dark, it is put back to Royal Gold or Royal Night once. You can still choose Light, Dark or any other theme in 🎨 Theme, and that choice stays.

## v1.25.2 — Space at a glance guide  ·  2026-09-14

- New in Help: “📽 Space at a glance”. It explains getting ready (spaces and your Brand Kit), where to export one space or everything, what each page and sheet shows, how On track / Watch / Needs attention is decided, and notes on PDF, archived projects, watermarks and sharing. A line at the top shows your projects, spaces and which brand the export will use.

## v1.25.1 — sharp pictures in PowerPoint; the whole workspace in one file  ·  2026-09-14

- Fixed: project pictures in PowerPoint decks (cover and Project Pictures slide) sat on a blurred copy of themselves, which looked smudged. They are now shown whole and sharp on a plain background matching the slide.
- Everything in one export: the sidebar Export ▾ menu (or Share ▾ → Space export → All projects) puts every project in every space into one PowerPoint, PDF or Excel file, grouped space by space.
- The whole-workspace file adds a Spaces page (each space's projects, progress, on-track / watch / attention counts, overdue and spend), shows the space beside each project in the overview, and starts each space's project pages with a divider. Excel gets a Spaces sheet.

## v1.25.0 — a clearer Dashboard; every project in a space at a glance  ·  2026-09-14

- Dashboard: the key numbers come first, as tiles with a colour for how they are doing (green, amber, red) and a small picture of the number — a progress ring, a status bar, the week ahead, spend against budget. Click any tile to go where you can act on it (overdue tasks, the Timeline, the Health Check, the budget treemap…).
- Dashboard: a title bar with the actions (Health check, Customize tiles, Custom KPIs) and a clear note when a filter is on. Every chosen tile now shows — no hidden “more metrics” row. Click a status in the donut or a phase to see those tasks.
- New: Space at a glance. Export every project in a space — or all projects — as one PowerPoint, PDF or Excel file: a cover with how many projects are on track, an overview table (status, health, progress, dates, overdue, budget), a timeline with a bar per project, and a page per project with phase progress, next milestones and what needs attention.
- When a Brand Kit or brand skill is loaded, the PowerPoint and PDF use its colours, company name, tagline, logo and font. Excel gets a portfolio summary sheet (with filters and % formats), milestones and an attention list, plus a sheet per project.
- Find it in the space ⋯ menu, the sidebar Export menu (all projects), Share ▾ → Space export, and the command palette.

## v1.24.3 — arrow keys like Excel; budget guide  ·  2026-09-14

- Table: the arrow keys move between cells like a spreadsheet. ↑ ↓ go up and down. ← → go to the previous or next cell when the cursor is at the start or end of the text, or straight away in dates, numbers and dropdowns. When you arrive in a cell its text is selected, so typing replaces it.
- ⌘/Ctrl + an arrow jumps to the first or last cell in that direction, Esc puts back what the cell had when you arrived, and the current cell is outlined. To move the cursor inside a cell's text instead, click into the text or press F2. Enter and Tab work as before.
- New in Help: “💰 Budget & actuals”. It explains each money column and how the differences are worked out, how to show them in Basic or Advanced, how to enter and paste amounts, where totals appear ($ Vitals, Present, Budget Efficiency), exports, and hiding figures from view-only access. A line at the top shows this project's budget, actual and how much is left.

## v1.24.2 — Budget and Actuals back in the Table  ·  2026-09-14

- Table: FY Budget $ and FY Actual $ now show in Basic as well as Advanced. You can still turn them off in ☰ Columns, and that choice is kept.
- Fixed: Advanced could show only the Basic columns (no budget, forecast, variance, hours, priority and so on). Column choices saved while in Basic were being applied in Advanced; now Advanced gets back its own set.

## v1.24.1 — meeting notes guide  ·  2026-09-14

- New in Help: “📝 Meeting notes”. It explains how to start notes (and what carries over from last time), what to capture during the meeting, action items and how they become linked tasks, copying and downloading the minutes, finding past meetings, and what to know about deleting, undo and live shared folders. It also opens from the ? next to ＋ New notes, and from Step-by-step Help.

## v1.24.0 — meeting notes; + menu with Task | Milestone  ·  2026-09-14

- New 📝 Notes tab: take minutes at catch-ups. Each meeting has a title, date and time, attendees, agenda, notes, decisions and action items with owners and due dates. They are saved with the project, so they are in backups, exports and live shared folders.
- Templates for a weekly catch-up, stand-up, 1:1 or review. A new meeting brings over the attendees and any unfinished action items from the last meeting of the same kind.
- 📊 Insert project status adds what finished since the last catch-up, what is overdue and what is due in the next two weeks. 🔍 Find in notes turns lines like “Sam will send the contract by Friday” into action items.
- One click turns an action item into a task, and they stay linked: ticking the action done completes the task. Copy the minutes to paste into an email, or download them as a Markdown file.
- The purple + now opens a small menu with the ▬ Task | ◆ Milestone switch, a name and a phase. Enter adds it; ⌘/Ctrl+Enter adds it and opens its details. The switch remembers your last choice.

## v1.23.2 — Task | Milestone switch  ·  2026-09-14

- When you add an item with the purple + (or open any task), the top of the detail panel has a two-half switch: ▬ Task | ◆ Milestone. Click the other half to change it; it saves straight away and can be undone.
- Switching to a milestone sets its end date to its start date (one day). Switching back to a task gives it a two-week end date if it had none.

## v1.23.1 — assign people on the Timeline; grip always shown  ·  2026-09-14

- Timeline: click the round circle beside any task or milestone to assign people. Type a name (it suggests people already in the project and on the team roster) or click a suggestion. Add as many people as you need; × removes one. Changes save as you go and can be undone.
- Nobody assigned shows a dashed +. With several people, the circle shows the first person's initials and a +2-style count (on the bar too), and hovering lists everyone. Before, “Sam, Amy” showed as “SA”.
- Also on right-click: 👤 Assign People….
- The ⠿ grip for moving tasks up and down is now always visible in the Timeline task list, not only on hover.

## v1.23.0 — reorder tasks from the Timeline  ·  2026-09-14

- Timeline: hover a task or milestone in the list on the left and drag the ⠿ grip up or down. A line shows where it will land. Drop it under another phase to move it into that phase.
- Keyboard, on the Timeline and in the Table: select a row and press Alt+↑ or Alt+↓ to move it one place. At the top or bottom of a phase it steps into the next phase.
- Right-click any task → Move Up / Move Down.
- Sub-tasks travel with their parent, and a sub-task moves only among its parent's sub-tasks (a red line says so). Every move can be undone with ⌘Z / Ctrl+Z.

## v1.22.1 — easier-to-read circles  ·  2026-09-14

- The round initials and progress circles are bigger, with larger, bolder text: the people and progress rings beside each task on the Timeline, the initials on bars, the people in a live project, board cards, dashboards, the team roster and the notification count.
- On finished tasks, the initials are now dark on light grey (light on dark in dark themes) instead of pale grey on grey.
- The task column on the Timeline is a little wider, so task names keep their room next to the bigger circles.

## v1.22.0 — up to 10 editors in a live shared folder; a guide to dragging tasks  ·  2026-09-14

- Live shared folder: up to 10 people can edit one project together. The initials at the top show everyone, with a count of editing seats in use (for example 4/10); hover for the full list.
- If all 10 seats are taken, the next person can watch: they see every change live, but nothing they change is shared. When a seat frees up they get a message and can click “Start editing” in Cross-Device File Sync.
- Faster with a full team: each computer now writes to the folder only when its own person changes something, instead of after every change it receives. With ten people, one edit is one file write, not ten.
- New in Help: “↔ Moving tasks on the Timeline”. It explains the Alone and With linked tasks drag modes, what the blue, amber and red colours mean, Shift to switch for one drag, and undo. It also opens from the ? next to Drag: in the Timeline toolbar and from Step-by-step Help.

## v1.21.0 — drag alone or with links; centred search; where your data is  ·  2026-09-14

- Timeline: choose what dragging a task does. Drag: ● Alone moves only that task; ⛓ With linked tasks moves everything that comes after it by the same number of days. Hold Shift while dragging to use the other mode for that one drag.
- The colours show which mode you are in. Blue outline: only this task moves. Amber outline and amber striped previews: the linked tasks that move with it. Red dashed outlines: a link this move would break. A label next to the pointer says what will happen.
- The search box in the top bar is now wide and always in the centre, at any window width.
- A new chip in the top bar says where the project is stored: "Stored in This browser", or "Shared folder" with the folder's name while it is shared live. Long names scroll when you hover. Click it to see the full folder name, change the folder, start or stop sharing live, or open the sync settings.

## v1.20.0 — link tasks right on the Timeline  ·  2026-09-14

- Right-click a bar or milestone and choose "Link to a task that comes after…", then click the task that should follow. A line follows your pointer and the task under it is outlined. Esc cancels.
- Or hover a bar and drag the small dot at its end onto another task.
- The link is added to that task's Depends On and the dependency arrow appears straight away. If the later task currently starts too early, you are told.
- Links that make no sense are refused with the reason: to the task itself, one that already exists, one that would make a loop, or to a task whose name another task shares.
- Right-click → "Remove a link…" lists the task's links in both directions and removes the one you pick.
- The right-click menu says "Switch to Milestone (single date)" or "Switch to Task (start and end)", which is clearer than before.

## v1.19.4 — a warning when two tasks share a name  ·  2026-09-14

- Naming or renaming a task to a name another task already has, in the table or the task panel, shows a warning with the other row's number.
- In the table, every task whose name is shared gets a "⚠ Same name" mark. Hover over it to see which rows share the name.
- The project health check lists each shared name with its rows, so none are missed.
- Why it matters: Depends On and sub-tasks link tasks by name, so two tasks with the same name cannot be told apart.

## v1.19.3 — steady phase colours; Depends On can't point at itself  ·  2026-09-14

- Fixed: deleting rows from the Timeline (and adding rows above or below, or a subtask) changed the phase colours every time. Each phase now keeps its colour for as long as it exists. A new phase takes a colour no other phase is using, and a renamed phase keeps its colour.
- Fixed: a task could be listed in its own Depends On, and the same task could be listed twice. Suggestions no longer offer the task itself or tasks already in the list. Anything like that typed in is removed when saved, with a short note saying why. Existing projects are tidied automatically.

## v1.19.2 — larger text no longer hides the edge of Home and My Work  ·  2026-09-14

- Fixed: at 130% or 150% text size, the left bar covered the start of the Home and My Work pages. Those pages now line up with the bar and their text grows with the setting, like the rest of the app.
- Fixed: the "Getting started" bar covered the top of Home and My Work, including the page title. The pages now start below the whole top bar at any text size.

## v1.19.1 — a how-to guide for working together live  ·  2026-09-14

- New in Help: "👥 Work together live". It explains what you need, the one-time setup on each computer, how to start and join a live project, what to expect while you work, how to leave and come back, and what to check if something isn't working. A status line shows which setup steps are already done on this computer, and buttons jump straight to the right settings.
- Step-by-step Help has two new entries: working together live, and sharing through a folder only when you choose.

## v1.19.0 — edit together live through a shared folder  ·  2026-09-14

- New: live editing without a server or an account. Everyone links the same shared folder (Dropbox, OneDrive, Google Drive for desktop, iCloud Drive, or a network drive) and uses the same file password. Open a project and click "Start live" in Integrations → Cross-Device File Sync; the others click "Join a live project".
- Changes appear for everyone within seconds: 1–3 seconds on a network drive, or as fast as the sync tool carries files. The top bar shows who is in, and flashes when someone else makes a change.
- Every person's app writes only its own file, so shared-drive tools never produce a conflicting copy. Edits merge field by field, and the latest change to a field wins. A deleted task stays deleted unless someone edits it afterwards.
- If a change arrives while you are typing, it waits until you finish so your cursor is not disturbed.
- Joining a project that is already live takes the live version; your previous copy is kept as a rolling snapshot.
- Everything written to the folder is encrypted with the file password. A wrong password is refused.
- Needs Chrome, Edge or Opera. Attached files stay on the computer that added them.

## v1.18.0 — nothing leaves your device unencrypted without you knowing  ·  2026-09-13

- Backups and sync files written to a linked folder are always encrypted with your file password. Until one is set, automatic backups pause and the sync buttons ask you to set it first.
- Anything you save, copy or share that is not encrypted now tells you. The save dialog says "Encrypted" or "Not encrypted", and so do copies to the clipboard, share links, printing and the mention e-mail digest.
- Removed: webhooks, the AI assistant and online speech recognition. Each one sent project details or your voice to another service as readable text. Voice input still works where the browser can recognise speech on the device. Saved AI keys and webhook addresses are deleted from this browser.
- Connections to other servers must be encrypted (https://). Plain http:// is refused, except to this computer.
- Gantt Forge+: project names and space names are now encrypted on your device like the projects themselves, colours are no longer sent, and your name in live sessions is encrypted too.

## v1.17.1 — back to plain Gantt Forge  ·  2026-09-13

- The "Secure" name is gone: the app, browser tabs, version label and website are simply Gantt Forge again.
- Browser tabs show the open project's name again, which makes it easier to tell tabs apart.
- Nothing else changes: backups, exports and sync files can still be encrypted with a password, the app still only contacts servers you approve, and shared links still open in a sandbox.

## v1.17.0 Secure — encryption for files, not for the device  ·  2026-09-13

- No more passphrase, lock screen or auto-lock on this device. Gantt Forge opens straight to your projects again.
- If this browser holds a workspace encrypted by 1.16, you are asked for its passphrase (or recovery code) one last time. Your projects, pictures and attachments are moved to normal browser storage, the encrypted copy is deleted, and you are never asked again.
- Encryption now protects files. Every JSON export (full backup, space pack, project file, handoff package) asks whether to encrypt it with a password or leave it unencrypted.
- New: save a file password in Settings → Security. Automatic backups and linked-folder sync files are then always written encrypted with it, and files encrypted with it open here without asking.
- Files encrypted by 1.16 with a workspace passphrase still open. You are asked for that passphrase or its recovery code.
- Unchanged: the app can only reach servers you approve, shared links open in a sandbox, and pictures are stored once across recovery points.

## v1.16.6 Secure — password-encrypted exports of any size; date and time on every file  ·  2026-09-13

- Fixed: choosing "Encrypted with a separate password — to give to someone" downloaded nothing once the file was larger than about 150 KB, for example a backup with pictures. An internal conversion failed on large files, and the error was never shown. Large files now encrypt and download correctly.
- The same fault also stopped large projects from being password-protected, and made handoff packages leave out attachments larger than about 150 KB. Both are fixed.
- If a file ever cannot be prepared for export, you now see a message saying why, instead of nothing happening.
- Every export file name now ends with the date and time it was made, like space packs already did: "GanttForge-projects_2026_09_13_20_31_22.json". You can still edit the name before saving.

## v1.16.5 Secure — no false "storage full" alarm; pictures stored once  ·  2026-09-13

- Fixed a false "storage 110% full" warning. It was measuring against a 5 MB limit from the days when projects lived in localStorage. The encrypted workspace lives in IndexedDB, where the browser allows far more (typically gigabytes). The warning now uses the browser's own figure for how full the storage really is.
- Pictures are stored once. Each recovery point (rolling snapshots, daily checkpoints and named snapshots) used to keep its own full copy of every project picture, so a project with a few pictures could hold them twenty times over. Recovery points now point to a single shared copy. Restoring still brings back the exact pictures. Existing recovery points are compacted automatically the next time you open the app, and pictures nothing uses any more are removed.
- Settings → Data Health shows where the space goes: projects and their pictures, recovery points, the shared picture copies, backups, settings, and the browser's real quota.
- The app asks the browser to protect your workspace from automatic clean-up when the disk runs low.
- Daily checkpoints are no longer rewritten on every save, which makes saving faster in projects with pictures.

## v1.16.4 Secure — link previews show Secure  ·  2026-09-13

- The picture shown when ganttforge.com is shared in chats and social posts is a new 1200×630 card: the logo, the name with the 🔒 SECURE badge, and "Private project planning, encrypted on your device." The old picture was a wide logo stretched out of shape.

## v1.16.2 Secure — the website says so  ·  2026-09-13

- ganttforge.com now presents Gantt Forge Secure: a Secure badge on every page, a section explaining what "secure" means here (and its limits), updated privacy wording and plan cards, and new FAQ answers on forgotten passphrases and upgrading from earlier versions.
- The Terms now say plainly that nobody can recover a lost passphrase or recovery code, or the data they protect.
- The message shown when encryption is unavailable no longer points to a launcher that is not in the download.

## v1.16.1 Secure — named in full  ·  2026-09-13

- The Secure edition is now called "Gantt Forge Secure" everywhere you see it: the lock screen, browser tabs, the version label, recovery-code files and encrypted files.
- The lock screen badge now reads 🔒 SECURE and lines up with the logo and name.

## v1.16.0 S — the Secure edition: an encrypted workspace  ·  2026-09-13

- Everything Gantt Forge keeps in your browser is now encrypted: projects, settings, snapshots, history and attached files. It uses AES-256-GCM with a fresh random value for every save, and each record is tied to its own place so records cannot be swapped or tampered with unnoticed. Even the names of stored records are hidden.
- A passphrase unlocks the workspace. It protects a random 256-bit key using PBKDF2-SHA-256 with 600,000 iterations and a random salt. The key itself is never stored in the clear and cannot be read by page code once unlocked.
- A one-time recovery code is issued when you set up the workspace. If you forget the passphrase, it lets you choose a new one without losing anything; you then get a fresh code and the used one stops working. You can issue a new code at any time.
- The app does not start until you unlock it. It locks after a period without activity (10 minutes by default, adjustable) and whenever you press 🔒 Lock or Ctrl/⌘ + Shift + L. Locking saves, then clears the key and every decrypted value from memory.
- Upgrading encrypts your existing data in one step, with an optional unencrypted copy to download first, and then removes the unencrypted copy from the browser.
- Automatic backups and linked-folder sync files (projects and team roster) are written encrypted. Any device opens them with the passphrase that was current when they were saved.
- JSON exports (full backup, space pack, project file, handoff package) now ask how to protect the file: with your workspace passphrase, with a separate password to give to someone, or unencrypted after a warning.
- Password-protected projects and password-encrypted backups now use 600,000 iterations and 12-character minimum passwords, and the password fields hide what you type. Older files still open.
- Browser tabs show "Gantt Forge S" instead of the project name, so project names no longer end up in browser history.
- Repeated wrong passphrases make you wait longer before trying again.
- Fixed: alert messages (errors and notices) had not been appearing at all since an earlier release. They now show.

## v1.15.1 — timestamped space pack names  ·  2026-09-13

- Space packs are now named after the space, with the date and time of the export: "Marketing_2026_09_13_17_05_25.json". Excel packs follow the same pattern. Exports made on the same day sort in order and never overwrite each other, and you can still edit the name before saving.

## v1.15.0 — local-only, enforced by the browser  ·  2026-09-13

- After a full privacy audit, the app is locked to your device by a browser security policy. It can reach only its own files and servers you have approved on this device. Images, fonts and media can only come from the app itself, so an imported file cannot load a tracking pixel.
- Turning on something that connects out (a webhook, the AI assistant, Gantt Forge+ or a linked brand URL) now asks you first and reloads. Help → Privacy lists every approved server with a Remove button. Anything you had already set up keeps working.
- Shared read-only links now open in a sandbox with no scripts. A crafted link can no longer read the projects stored in your browser. The "ping my webhook when opened" option for links is gone, because a sandboxed link cannot send anything.
- Voice input asks before it is used. Chrome and Edge send spoken audio to their own speech services, and the app cannot block that. Where the browser can recognise speech on the device, it uses that instead and does not ask.
- Fixed: a file with tags written as text rather than a list no longer breaks the views.
- Website: security headers were missing on the app pages and are now sent on every page, including a no-referrer policy and a block on embedding the site in other pages.

## v1.14.1 — a compact New Item; Display stays in view  ·  2026-09-13

- New Item is now a round purple + that opens out to "New Item" when you hover over it or tab to it. It works from every page, and from Home or My Work it takes you to the open project so you can see the new task.
- The space that frees up lets more of the top bar show. The Display & text size button (⛶) is now the last one folded into ⋯ when the window is narrow.

## v1.14.0 — optional crop for project pictures  ·  2026-09-13

- Pictures can now be cropped, but only if you ask. In the Pictures dialog, tick "Crop each picture before adding" and each upload opens a crop step, where "Use whole picture" skips cropping and "Skip this picture" leaves it out. Leave the box unticked and pictures are added as they are, like before.
- Every stored picture has a ✂ button to crop it later.
- The crop box can be moved and resized from its corners, or set to Card 16:10, Slide 16:9, 4:3 or Square. Arrow keys nudge it, Enter applies, Escape cancels. Crops are taken from the original upload, so quality is not lost twice.

## v1.13.0 — an honest health grade; pictures that slide  ·  2026-09-13

- The health grade is rebuilt. Its parts added up to 120 but were read and labelled as out of 100, so grades ran high. It is now a true score out of 100.
- Progress is judged against what should be done by today, from each task's own dates. A project that has not started yet is no longer marked down, and one that is well behind is no longer graded as fine just because nothing is flagged overdue.
- Budget and baseline only count when a project actually has a budget or a saved baseline. Projects that track neither are no longer handed free marks for them.
- Hover a grade to see its breakdown, including how much is done against how much is due by today. Some grades will change — they are now accurate.
- Project pictures on the Home cards now slide. The +1 count is replaced by small dots centred under the picture — white for the one showing, soft grey for the rest. Use the dots, the side arrows, a swipe, or the arrow keys. Clicking the picture still opens them all.
- Each picture picks its own framing as you slide, so a packshot on white and a site photo each look right.
- The display button in the top bar is now called Display & text size, so the larger-text setting is easier to find.

## v1.12.2 — Dashboard in Basic  ·  2026-09-13

- The Dashboard now appears in Basic view, alongside Table, Timeline, Board and Report. It was treated as a specialty view and hidden, but it is the at-a-glance summary most people want first.
- Switching from Advanced to Basic while on the Dashboard now leaves you there, instead of moving you to the Table.

## v1.12.1 — wide product line-ups get a clean background too  ·  2026-09-13

- Fixed: a wide picture of products on white — a row of jars running edge to edge — was still getting the dark blurred backdrop. The products touched the picture's sides, and those jar colours were being mixed into the background estimate, so it looked like a photo. The background is now taken as the colour most of the border shares, so products touching an edge no longer confuse it.
- The same applies to products sitting on the bottom edge, and to products on a black or coloured studio background.
- Real photos still get the soft backdrop, including landscapes with a plain sky across the top.

## v1.12.0 — cover pictures that suit the picture  ·  2026-09-13

- Project covers now choose their framing from the picture itself. A product shot on a plain background — most packshots — sits on its own background colour, with the empty margin around the product trimmed away so the product fills the frame. No blurred smears, no visible box.
- Photos with real scenery are shown whole over a soft, darker, blurred copy with a gentle vignette, so they read as framed rather than smudged.
- The cover is taller, so upright products like pouches and bottles are no longer shrunk into a thin strip.
- The same choice is made for pictures in the Report and in PowerPoint, so a packshot looks the same everywhere.
- Your stored picture is never altered — the trimming is only for display.
- Fixed: the health grade badge was sitting behind the cover picture.

## v1.11.2 — a dialog error cleared  ·  2026-09-13

- Fixed: answering a confirmation very quickly, or one dialog being replaced by another at the same moment, could log an error in the browser console. Nothing was lost, but it no longer happens.

## v1.11.1 — restores bring everything back  ·  2026-09-13

- Fixed: restoring an earlier version — a point-in-time snapshot, a rolling snapshot or a daily checkpoint — brought back the tasks but kept today's phase colours, pictures, date markers, saved baselines and master-project link. All of that was being saved into those versions; it was simply never put back. A restore now returns the project exactly as it was.
- Point-in-time snapshots also now record saved baselines and the master-project link, which they had never captured.
- Versions saved before a feature existed are handled sensibly: restoring one keeps what you have for anything it never recorded, rather than wiping it.
- All three restores now share a single routine, and the build refuses to ship if anything a save writes is not also restored — so this cannot quietly happen again as features are added.

## v1.11.0 — name every export, dated by default  ·  2026-09-13

- Every export now asks what to call the file before it is saved. The name is filled in for you and ends in today's date in ISO form, for example Software_Launch_tasks_2026-09-13.csv. Accept it, or change it to whatever you like.
- This covers everything that saves a file: CSV, Excel, PowerPoint, Word, JSON backups and space packs, pictures, snapshots, templates and brand kits. Cancel and nothing is saved.
- If you remove the extension while renaming, it is put back, so the file still opens in the right program.
- The PDF is named the same way — the browser's save dialog opens with the dated name ready to edit.
- Prefer to skip the question? Untick "Ask for a file name before exporting" in Settings → Interface, and files save straight away with the dated name.
- Automatic backups to your linked folder are not interrupted; they already carry the date and time in their names.

## v1.10.0 — larger text for screen sharing  ·  2026-09-13

- A new Text size setting makes the whole workspace larger and clearer on a big monitor or when sharing your screen: 100%, 115%, 130% or 150%. Find it under the display button in the top bar, in Settings → Interface, or by searching "Larger text".
- It scales everything together — text, table rows, Gantt bars, buttons and the project list — so larger text never ends up crammed into the same small rows.
- Dragging on the Timeline stays exact at every size. Scaling the page would otherwise make a drag move a task further than your mouse did; this is corrected, so dragging a bar five days moves it five days.
- When larger text needs more room than the window has, the toolbars wrap onto a second line rather than cutting controls off.

## v1.9.1 — PowerPoint preview works again  ·  2026-09-13

- Fixed: clicking Preview in the PowerPoint export did nothing. When the Project Pictures slide was added, it was added to the deck and the slide list but not to the preview, so the preview failed the moment it reached that slide and showed nothing at all.
- The preview now also shows the cover picture on the cover slide, and a Project Pictures slide laid out as it will appear.
- When a project has no pictures, the preview leaves that slide out, exactly as the real deck does, so the slide numbers match.
- A slide that has no preview can now only be skipped, never stop every other slide from previewing.

## v1.9.0 — date markers, a correct today line, whole pictures everywhere  ·  2026-09-13

- Fixed: in the printed and PDF timeline, the today line landed in the wrong place — often inside the task names. The lines were measured across the whole row, but the bars only start after the task column, so every line sat about a quarter of the way too far left. Today, the month gridlines and markers are now measured against the bar area itself.
- Date markers. Add named lines for the dates that matter — Board approval, Trial starts, Grant deadline — each in its own colour. They appear on the Report and on the printed timeline with their name, and are listed in the legend with their date. They travel with the project in every backup.
- The print options have two new ticks: Today line and Date markers, so either can be left off a printed plan. Manage your markers from the same place.
- The Report and the PowerPoint deck now show project pictures whole, never cropped, over a blurred copy of themselves — the same album-art look as the project card. PowerPoint cannot blur, so the effect is built into the picture before it goes into the deck, sized to each frame so nothing stretches.

## v1.8.4 — the whole picture on a project card  ·  2026-09-13

- Project card pictures are no longer cropped. A packaging shot or a portrait render was losing its top and bottom to fill the strip; the whole image is now shown, whatever its shape.
- The space around it is filled with a blurred, enlarged copy of the same picture, the way album art is shown on Android, so nothing is clipped and there are no empty bars either.
- A small count in the bottom right shows how many more pictures the project holds. Clicking the picture still opens them all.

## v1.8.3 — the code chip up top, and a name that scrolls  ·  2026-09-13

- The project code chip beside the breadcrumb is now a gold-edged badge, matching the chips in the project list.
- A project name too long for the space now scrolls gently when you hover it, pausing at each end, so you can read the whole thing without opening anything. It holds still while you are editing, and only moves when the name is actually cut off.
- Fixed while doing it: clicking into the project name could scroll Home and the code chip out of view, and they did not come back. The breadcrumb now stays put.

## v1.8.2 — hover notes in the Timeline too  ·  2026-09-13

- The notes card from the Report now works in the Timeline. Hover a task in the list or its bar on the chart and the same card shows the task, its phase, owner, status, percent and dates, the full notes, and what it waits on.
- The same violet marker appears beside tasks that have notes, so you can see at a glance which rows are worth hovering. It is hidden when the task column is set to its narrow width.
- Tapping a marker works on a touch screen, and no longer also selects the row.

## v1.8.1 — hover a report row to read its notes  ·  2026-09-13

- The Report stays one dense page, but notes are now readable without leaving it. Hover any row and a card shows the task, its phase, owner, status, percent and dates, the full notes, and what it waits on.
- A small violet dot beside a task name marks the rows that actually have notes, so there is no need to hunt by hovering everything.
- It is a proper panel rather than a browser tooltip, so it appears at once, keeps line breaks and paragraphs, and scrolls when a note is long. Tapping a marked row works on a touch screen or stylus.
- The card never appears in print or in the PDF.

## v1.8.0 — automatic timed backups into the linked folder  ·  2026-09-13

- The linked-folder wizard can now back up on a timer. Pick an interval — every 15 minutes through to once a day — and a full backup of every project is written into a GanttForge Backups folder inside the one you linked. Whatever syncs that folder then carries it off the machine.
- Old backups are pruned automatically. Keep as many as you like, ten by default.
- A backup is only written when something actually changed, so an idle workspace does not fill the folder with identical copies.
- There is also a Back up every project now button for when you want one immediately.
- Two honest limits. The app has to be open, because a web page cannot run a scheduled service. And browsers drop folder permission on reload, so automatic backups pause until you reconnect the folder — the panel says so rather than failing quietly. The timer never interrupts you with a permission prompt.

## v1.7.6 — supplied as is, where is  ·  2026-09-13

- The licence now says plainly that Gantt Forge is supplied on an "as is, where is" basis, with no warranty of any kind and no liability for loss. It spells out what that covers: lost or corrupted data however caused, and any decision, schedule, budget, forecast or report made in reliance on what the app calculates, draws or exports.
- It also states what has always been true of a local-first app: your work lives in your own browser, so your backups are your responsibility, and you should check its figures before you rely on them.
- The same wording is in the Terms for the free app, and a short version now appears in the app beside the licence link. The licence PDF is rebuilt with it.

## v1.7.5 — Add picture fixed; code chips; stakeholders in the pack  ·  2026-09-13

- Fixed: ＋ Add picture could do nothing. The file chooser was attached to an element inside the Pictures dialog, and that dialog rewrites itself whenever anything changes — so if it redrew while the chooser was open, the selection landed on an element no longer on the page and vanished silently. The chooser now lives outside the dialog, where nothing can pull it away.
- Pictures can also be dragged straight onto the dialog now.
- When a picture cannot be added you are told which file and why, instead of a bare count. HEIC photos from an iPhone are the usual cause, and the message says so.
- Project code chips are now gold-edged badges rather than flat grey rectangles.
- The Excel pack gained a Stakeholders sheet listing everyone across every project in the pack, with the project named on each row. It is left out when nobody has been recorded.
- The Portfolio button in the project list no longer clips its icon. Its contents were wider than the button, so the whole row was being trimmed at the edges.

## v1.7.4 — project pictures in the report and the deck  ·  2026-09-13

- The Report now opens with the project's pictures, cover first, above the timeline. They print and carry into the PDF, so a reviewer sees what the project is before the bars.
- PowerPoint exports gained a Project Pictures slide, and the cover slide now carries the cover picture beneath the subtitle. The slide produces nothing at all when a project has no pictures, so it is on by default without adding an empty page to anyone's deck.
- Pictures bound for PowerPoint are converted to JPEG first. PowerPoint will not reliably display a WebP, and older versions cannot display one at all.

## v1.7.3 — exports carry the space colours too; a portfolio icon  ·  2026-09-13

- A backup or space pack now carries the colour you chose for each space, and the space names themselves. A space's name always travelled, because it is stored on each project, but its colour lived in a workspace setting that no export touched. Importing restores both, and never overwrites a colour this workspace has already chosen for the same name.
- Importing also keeps a project pinned if it was pinned when exported.
- Everything else was already carried and is now confirmed end to end: project colour, code, space, target finish, pictures, phase colours, labels, budgets, and every per-project setting.
- Portfolio view in the project list now uses a briefcase icon rather than an emoji, matching the rest of the interface. The sidebar footer was the one place the icon styling never reached.

## v1.7.2 — pictures kept at full quality as WebP  ·  2026-09-12

- Project pictures are now stored as WebP at up to 1MB each, at up to 2048 pixels on the long edge, instead of being squeezed to a thumbnail. A 5MB render came out at 183KB with quality untouched. Quality is reduced only if a picture will not fit 1MB, and resolution only after that.
- The reason they were so small before: to travel inside an Excel workbook a picture has to fit one spreadsheet cell, and Excel refuses anything over 32,767 characters. The two are now separated. Your project keeps the full-quality picture, the JSON pack carries it exactly, and the Excel workbook gets a small preview generated at export time, which still imports back as a real picture.
- Browsers without WebP fall back to JPEG automatically, and pictures with transparency stay PNG.

## v1.7.1 — the top bar stays fitted  ·  2026-09-12

- Fixed: the top line could go back to scrolling after switching tabs or after a minute idle. Its contents change at unpredictable times — the tab-sync badge redraws on its own timer, icons swap in, a tab switch changes what is shown by styling alone, which fires no signal at all. It is now checked twice a second and re-fitted only when something is genuinely clipped.

## v1.7.0 — pictures on a project, and a real date span with a target flag  ·  2026-09-12

- A project can hold up to five reference pictures — a render, a site photo, a packaging mock. Add them from a project's ⋯ menu under Pictures. The first is the cover and appears on the project card, so a project can be reviewed with something to look at.
- Pictures are compressed to a screen-sized preview and stored as image strings, so they travel with both the JSON pack and the Excel workbook, and come back on import. Each one is kept small enough to fit a single spreadsheet cell, which is what makes the Excel route possible at all.
- The project list showed the date a project was created, which tells you nothing. It now shows the span that matters: the first date on the timeline through to the target finish, for example 10 Sep 26 to 12 Mar 27.
- Set a target finish from a project's ⋯ menu. A green flag means every dated task finishes on or before it. A red flag means the plan already runs past it, or some tasks have no end date so the finish cannot be trusted. No target, no flag. Hover the flag for the reason.
- The Excel pack also carries the target finish now, and both it and the pictures are read back on import. Older packs still import unchanged.

## v1.6.5 — the table toolbar fits too; Excel packs keep the money  ·  2026-09-12

- The toolbar under the top bar now fits on one line in Basic. Its quick-add and search boxes were fixed at 160px each, so on a normal window the row ran about 90px past its edge and More tools was clipped. Both boxes now give up width as needed.
- Fixed: exporting a space as an Excel workbook dropped every budget, forecast and actual. Those three columns were never in the sheet, so re-importing the pack brought the tasks back with the money blank. The sheet now carries them, plus each task's colour, matching the CSV export.
- Labels were already exported and re-imported correctly in both the Excel pack and CSV, and still are.

## v1.6.4 — the top bar no longer scrolls  ·  2026-09-12

- Fixed: the top line sat a few pixels wider than its space and scrolled sideways. It collapses items into the ⋯ menu when room runs short, but the check allowed up to 24px of overflow before acting, so it stopped just past the edge every time.
- It also re-measures shortly after arranging itself. Icons and fonts settle after the first measurement and were quietly pushing the row back over.
- The tab-sync badge and Check In now collapse into the ⋯ menu like everything else. In a narrow window the search box shrinks to its magnifier and the breadcrumb truncates, so the row still fits instead of scrolling.

## v1.6.3 — space headers line up; export a space as JSON or Excel  ·  2026-09-12

- Fixed: the + / − button, the colour dot and the project count sat above the middle of a space heading. They were pinned to the top of the row to allow for names that wrap. Everything now sits on one centre line, wrapped names included.
- A space can now be exported as a JSON pack as well as an Excel workbook. JSON restores exactly, every field and every task, and re-imports through the normal Import path. Excel gives one readable sheet per project.
- Both sit in a space's ⋯ menu, and Space pack under Export asks which format you want.

## v1.6.2 — plus and minus on every phase too  ·  2026-09-12

- Each phase header in the table now carries a + / − button in that phase's colour, matching the spaces in the project list. Minus folds the phase to its summary row, plus opens it again. Clicking the header still works as it always did.
- Collapse All and Expand All for every phase at once stay in the Advanced toolbar.

## v1.6.1 — plus and minus on every space  ·  2026-09-12

- Each space in the project list now carries a + / − button in its own colour. Minus closes it, plus opens it. Spaces could already be collapsed by clicking the heading, but the affordance was a small chevron that read as decoration.
- With more than one space, Expand all and Collapse all sit above the list.
- Which spaces you left open is remembered, as before.

## v1.6.0 — picked suggestions are actually saved  ·  2026-09-12

- Fixed, and this was the cause of the dependency problems: choosing a suggestion in Depends on, Assignee or Labels put the text in the cell but never saved it. The browser only reports a change for text a person typed, and a picked suggestion is filled in by the app, so the cell looked right while the task itself still had nothing. The next redraw rebuilt the row from the saved data and the text vanished a few seconds later. Picking now saves immediately, and the cell keeps focus with the caret at the end so you can add a comma and keep going.
- A second safety net: when you leave any of those fields, the value is saved if it no longer matches what was there when you arrived. Nothing typed or pasted can be left showing in a cell but missing from the task.
- Dependency arrows should now appear every time. They were only ever missing because the dependency had not been saved.

## v1.5.10 — dependency lines you cannot miss; the red bar explained  ·  2026-09-12

- Dependency lines in the Report are now drawn with a pale halo underneath and a heavier stroke, so they stay readable where they cross a bar, a quarter gridline or the today marker. A thin purple line on a pastel bar was easy to look straight past.
- A red-outlined bar means that task is on the critical path: it has no slack, so any slip there moves the whole project end date. Hovering the bar now says so, and the legend spells it out.
- The Portfolio Gantt shows one bar per project and has no dependency layer, because dependencies are between tasks. They appear on the Timeline and in the Report.

## v1.5.9 — backward dependency lines run beside the right bar  ·  2026-09-12

- Fixed: on the Timeline, a dependency whose successor starts before its predecessor finishes ran its long horizontal at the midpoint between the two rows. For rows next to each other that is the gap between them, as intended, but for rows further apart the midpoint is another task's row, so the line ran along and through that task's bar. It now runs in the gap directly above the task the arrow points at, so the whole turn is visible beside that bar.
- Note: the Portfolio Gantt draws one bar per project and has no dependency layer. Dependencies are between tasks, so they appear on the Timeline and in the Report.

## v1.5.8 — dependency lines you can actually see in the Report  ·  2026-09-12

- Fixed: in the Report, a dependency between two tasks that overlap in time drew its line back along the successor's own row, underneath its bar, so all you could see was the arrowhead. That is the normal shape for long parallel workstreams, where the next piece starts before the previous one finishes. The line now routes through the gap between the rows, the way the Timeline has always drawn it.

## v1.5.7 — every dependency draws on the Timeline  ·  2026-09-12

- Fixed: a task with more than one predecessor only ever drew one arrow on the Timeline. The field takes a comma-separated list and the Report already drew all of them, so adding a second dependency appeared to do nothing on the chart.
- Fixed: the Timeline matched predecessor names exactly, while the Report, the critical path, Health Check and auto-schedule all match ignoring case and surrounding spaces. A name typed in a different case linked up everywhere except the chart you were looking at.

## v1.5.6 — suggestions that fit; dependencies in the Timeline  ·  2026-09-12

- The suggestion list under Depends on, Assignee, Phase and Labels now opens upward when the field is near the bottom of the window. It used to be pinned below the field with no check on where that landed, so on the last rows of a table the suggestions were cut off.
- There is now clear space under the last row of the table, so a bottom row's menus and date pickers have somewhere to open instead of hugging the edge.
- The Timeline's task list now names each task's dependency. The chart always drew the connector arrows, but the list beside it said nothing, so a plan you had just linked up in the table read as unlinked. Hover the marker for the full list.
- Fixed: Depends On stayed hidden in Basic for anyone already using the app, because the stored column choice was restored on every project switch and put it back. It now shows in Basic unless you switch it off yourself under ☰ Columns.

## v1.5.5 — a tidier sidebar foot; Depends On in Basic  ·  2026-09-12

- The four buttons under the project list are now two menus. Portfolio view holds the Rollup, the Portfolio Gantt and the Team Roster; Export holds the three all-project formats. The foot of the sidebar takes a third of the room it did, so more of the project list is on screen.
- The Export menu names the format, so choosing one exports straight away instead of opening a chooser first.
- Depends On is now one of the Basic columns. A dependency is how you say "this waits for that", so hiding it in Basic meant the Timeline drew connectors the table could not explain. You can still switch it off under ☰ Columns.

## v1.5.4 — phase colours in the Formatting panel  ·  2026-09-12

- Formatting (in the table toolbar) now opens with a Phase colours list — every phase in the project, each with a full colour picker, whether it is pinned or following the theme, and a Reset button to hand it back. The panel is now the one place to see all of them at once.
- The picker here is a full colour input, not the eight presets offered by the chip in the table and the strip in the Timeline. All three write the same setting.

## v1.5.3 — phase colours you choose; Kanban scrolls  ·  2026-09-12

- Kanban columns no longer run off the bottom of the screen. A column was sized against the window rather than the board area, so once the filter, space and grouping toolbars were showing, the foot of a busy column and its scrollbar sat below the fold with no way to reach them. Columns now fit the board and scroll properly.
- A phase takes the next colour from the theme's nine-colour ramp, in the order phases are first met while drawing — which is why the colours look arbitrary, and why they can shift when phases are added or reordered. You can now pin one: click the colour chip beside a phase name in the table, or the coloured strip beside a phase in the Timeline. Pick "Automatic" to hand it back to the theme.
- Pinning one phase leaves every other phase on the colour it already had.
- Phase colours are saved with the project, so they travel with an export and come back on any device.

## v1.5.2 — a new project starts at 0%  ·  2026-09-12

- Every template was written as a project already under way, with several tasks marked complete. A new project built from one therefore opened reading 40–60% done before any real work existed. New projects now start empty: the same phases, tasks, owners and budgets, rebased to start today, every row Not Started at 0%. The Demo Projects menu still loads the filled-in samples.
- Reset progress… in a project's ⋯ menu puts every task back to Not Started at 0%, keeping dates, phases, owners and notes. Use it on a project created before this release that opened part-complete.
- Percent complete is now averaged over real tasks only. A phase row already carries the average of the tasks beneath it, so counting it alongside them double-counted that work and pushed every headline figure up.
- Switching to a project whose data cannot be read now leaves you where you are and says so, instead of carrying the open project's tasks across.

## v1.5.1 — space percentages explained  ·  2026-09-12

- A space's percentage is weighted by task count, so one large project can pull it well above the small ones around it. The card now shows both — "43% by task · 17% by project" — plus the tasks-done count, and the tooltip spells out the arithmetic.
- A project's colour can also be changed from its coloured strip on the Home card, not just from the ⋯ menu in the project list.

## v1.5.0 — calendar or financial year  ·  2026-09-12

- A Cal Year | Fin Year switch on the Timeline toolbar reads the whole chart either way. In financial mode the year, the quarter numbering and every axis label follow your financial year — 1 July 2026 sits in F27, and Q1 is July to September.
- The Report axis follows the same switch.
- Settings → Interface sets when your financial year starts (1 July by default, any month and day) and how it is named: the year it ends (F27), the year it starts (F26), or both (FY26/27).

## v1.4.5 — the export imports back  ·  2026-09-12

- Fixed: the file written by "Export All Projects" could not be read by Import. Importing it said the file must contain an array of tasks, so the app could not read back its own export. Dropping it on Import now restores every project.
- Export All Projects now asks for a format: a JSON backup (everything, restores exactly), one Excel workbook with a sheet per project, or a zip of CSVs, one per project.

## v1.4.4 — project colours, readable space names  ·  2026-09-12

- A project's colour can now be changed from its ⋯ → Colour. Until now it was picked at random when the project was created and there was no way to change it.
- Space names get two lines instead of being cut off, and scroll the rest into view on hover — the same treatment project names already had.

## v1.4.3 — spaces you can tell apart  ·  2026-09-12

- Every space now has its own colour, shown as a coloured bar, dot, bold name and count in the project list, and carried onto its card and progress bar on Home.
- Colours are assigned so the first ten spaces are always visibly different, and are the same for everyone on your team. A space's ⋯ → Colour picks a different one.

## v1.4.2 — space packs, and a drag fix  ·  2026-09-12

- Fixed: dragging a project onto another project inside a space only reordered it and never moved it — which looked like some projects could be dragged into a space and others could not. A drop anywhere in a space now moves the project there.
- Space pack: Share ▾ → Space pack (or a space's ⋯ → Export as one Excel pack) saves every project in that space as one .xlsx — an index sheet plus one sheet per project.
- Dropping that same file back on the app (Share ▾ → Import a file) recreates the whole set together, with each project's tasks, space, code and colour, added alongside what you already have.

## v1.4.1 — layout fix  ·  2026-09-12

- Fixed: 1.4.0 shipped with half its stylesheet, so the app rendered unstyled. A stray character in the Spaces CSS made the minifier discard everything after it silently. The build now compares the stylesheet before and after minifying and refuses to ship if any of it is lost.

## v1.4.0 — Spaces  ·  2026-09-12

- Spaces group projects by department. Create one with the 🗂 button beside ＋ in the project list, then drag a project onto a space, or use a project's ⋯ → Move to a space. Projects without one sit under Unassigned.
- The project list groups by space with per-space counts and collapsible headers; a space's own ⋯ renames it, opens its rollup, or deletes it (its projects fall back to Unassigned — nothing is deleted).
- Home gains a Spaces row: every department's projects, tasks, progress, overdue and budget, with the company-wide total beside it. Clicking a space opens the Portfolio scoped to it.
- Spaces are shared with your Gantt Forge+ team, so everyone sees the same departments, and a project carries its space when pushed. Viewers can see spaces but not change them.

## v1.3.4 — one place to share  ·  2026-09-12

- Export Hub, the status slide and Import each appeared twice in Advanced mode. Everything now lives in the single Share ▾ menu at the top right: Export Hub, Brief, status slide, CSV per phase, full backup, print, check-in, Portfolio, import and paste.
- The top bar is down to New Item and Share ▾ beside the icons, in both Basic and Advanced.

## v1.3.3 — years in the Report dates  ·  2026-09-12

- The Report's Start → End column now carries the year whenever a plan crosses one, so "5 Nov → 5 Sept" can no longer be read as a single year. Plans inside one calendar year are unchanged — the year is already on the axis.

## v1.3.2 — reading long project names  ·  2026-09-12

- The project list gives the name the whole row: the six hover buttons are now one ⋯ menu (pin, rename, code, duplicate, archive, delete).
- A name gets three lines instead of two, and if it is longer than that, hovering scrolls the rest into view — no more guessing what is behind the ellipsis.
- A project code shows as plain monospace text before the name, in the list and in the header.

## v1.3.1 — Report axis on a long timeline  ·  2026-09-12

- Fixed: on a multi-year Report the month boxes painted over the quarter and year labels, leaving only a stray letter. The axis is now drawn as whole periods (month, quarter or year to suit the width) with the labels on top.

## v1.3.0 — projects, mobile and the timeline axis  ·  2026-09-12

- Fixed: a project rename could come back a few seconds later. The header field is no longer the source of truth for the name, so a stale field (another tab, or a rename done from the project list) can never overwrite it. Renames and duplicates now hold across tabs.
- Project list: names wrap to two lines instead of being cut off, an optional short code can be shown before each name (⌗ on a project, Settings → Interface to toggle), and projects can be dragged into any order.
- Timeline axis: month labels thin to initials, quarters or two-digit years instead of printing on top of each other when the chart is fitted to a long span — same in the Report.
- Task Detail has a bar-colour picker (with "use phase colour"), so a task colour no longer needs the Advanced colour column.
- Share ▾ → CSV per phase: one click saves a zip with a CSV per phase plus all tasks.
- Mobile: the welcome card scrolls on short screens instead of trapping its buttons off-screen, the table drops its frozen columns so horizontal scrolling works, and the bottom bar uses the line icons.
- Table: the frozen column block never takes more than half the width, and the second stray rounded corner beside the sidebar is gone.

## v1.2.10 — code-review fixes  ·  2026-09-12

- Security: names embedded in inline handlers are JS-escaped (no script injection via a crafted phase, preset or shared-project name); CSV exports neutralise leading = + - @ so a cell cannot run as a spreadsheet formula; the sync passphrase is no longer serialised into the page markup
- Data integrity: every Table cell now checks it still belongs to the open project before writing (switching projects mid-edit could corrupt the other project); renaming a task whose name is shared by another task leaves links alone and tells you; a dependency loop is reported instead of silently skewing the critical path
- Storage: an IndexedDB write failure is now detected, retried and flagged, and a write that lands during first-run migration is no longer overwritten
- Server 0.5.2: an oversized or dropped upload can no longer crash the service; forwarded-IP headers are only trusted from the reverse proxy; oversized live frames are refused before being read; invite codes are hashed at rest; idle rooms are freed; email errors no longer leak provider detail

## v1.2.9 — Save Phase confirmation  ·  2026-09-12

- Fixed: 'Save Phase' silently did nothing after its dialog closed — the phase WAS saved, but the confirmation used a native gfAlert() that could fail to display; it now uses the same reliable toast/dialog system as the rest of the app (new gfAlert() helper)

## v1.2.8 — typing a date in the Table  ·  2026-09-12

- Fixed for good: while you type into a Start/End cell nothing is committed or redrawn (even a single digit used to make a valid date and re-draw the table under the caret); the date applies when you leave the cell or press Enter. Picking a date with the mouse still applies at once
- Safety: a date cell can only write to the project it was drawn for

## v1.2.7 — typing in a date cell keeps the row  ·  2026-09-12

- Fixed: clearing part of a Start/End date while typing made the browser report an empty date, which was committed at once and re-drew the table (the row jumped or vanished). A date now changes only when it is complete, or on leaving the field; a half-typed value is put back

## v1.2.6 — typing dates no longer loses them  ·  2026-09-11

- Fixed: typing a date into a Start/End (or baseline, or Task Detail) field committed each half-typed year (0002, 0020…) and re-drew the table mid-keystroke, leaving the task in year 0002 and the caret gone. A date now commits once, when it is complete and plausible; undo takes it back in one step

## v1.2.5 — Help menu fits the screen  ·  2026-09-11

- Fixed: on shorter screens the lower half of the Help menu (Licence & credits, Your data stays here, Gantt Forge+) opened below the window edge

## v1.2.4 — tab title follows a rename  ·  2026-09-11

- Fixed: renaming a project (in the header or the project list) updated everywhere except the browser tab title, which waited for the next edit

## v1.2.3 — focus mode on Home  ·  2026-09-11

- Fixed: hiding the sidebar (focus mode) while on Home or My Work left a strip of the workspace showing on the left — the page now spans the full width

## v1.2.2 — licence & credits  ·  2026-09-11

- Help → Licence & credits opens a proper licence page (also shipped as a PDF inside the package) with the MIT licence and the full notices for every third-party component: SheetJS, PptxGenJS, docx and Lucide
- Third-party product names removed from the interface and documentation

## v1.2.1 — first-run fix and polish  ·  2026-09-11

- Fixed: on a brand-new browser the app could open empty in Advanced mode (the start-up routine had slipped into a lazy chunk); a clean-profile smoke test now guards every release
- Basic | Advanced switch always visible in the tab strip; Timeline toolbar fits at 900 px with Preset, Zoom, Layers and Export menus; filters dim the Timeline
- Frozen columns now include the task name and stay put while scrolling; phase bands and menus no longer hide behind content; Task Detail scrolls again
- New Project wizard advances as soon as a template is chosen; Report date editor stays inside its pane; Today is a plain "scroll to today" button with a Today-line layer

## v1.2.0 — simple by default  ·  2026-09-10

- Basic mode is real: one toolbar row, eight columns, the essential Task Detail fields, Share ▾ menus — everything else one click away under Advanced or ⌘K
- Line icons (Lucide) replace emoji across the interface; built-in templates use plain phase names
- Spreadsheet feel in the Table: Enter commits and moves down, Tab keeps its place after a rename, paste a block from Excel, Ctrl/⌘+D fill-down, inline date validation
- Timeline presets (Executive · Team · Detailed · Print · your own), Layers menu, orthogonal connectors, neutral Today line, labels that fit, week numbers, filter dimming
- Editable Report view and inline rename in the Timeline; Task Detail tabs with autosave; styled dialogs everywhere (no browser prompts)
- Project data moved to IndexedDB — no 5 MB ceiling — with a storage meter; export libraries and optional features load after the page (core ≈ 250 KB gzipped)
- Gantt Forge+: owner / admin / editor / viewer roles, read-only live sessions for viewers, self-service account deletion, watchdog and offsite-ready backups

## v1.1.0 — onboarding & zero-knowledge sync  ·  2026-09-09

- 🎓 Simple welcome on first run, a 23-step guided tour across every view (Table, Gantt, Kanban, Calendar, Dashboard, Insights, Export…), and 📖 Step-by-step Help — numbered instructions and a "Show me" button for every feature, plus a new Getting Started section
- 🔐 Zero-knowledge Gantt Forge+ sync — every push is encrypted on this device with a sync passphrase the server never sees; the server stores only ciphertext and the project name
- 📦 Full backup on the Quick Export panel, and a plain statement of the default formats: Excel/CSV for everyday sharing, one .json backup file for everything
- 🎨 Brand Kit as one file — Export / Import brand kit (*.ganttforge-brand.json: colours, company, tagline, logo) so a whole team's PowerPoint, PDF, Word and image exports match
- 👑 Royal Gold — the new default look: royal-purple rail and headers with a gold-foil hairline, plus Royal Night (its dark twin — the ☀️/🌙 button flips between them) and a matching Royal Gold PowerPoint theme. The 🎨 theme picker now lists themes explicitly by name with a ✓; every previous theme is still there
- 🖨 Print & PDF composer — cover page, executive summary, task list (new page per phase), timeline fit-to-page or one page per month/quarter, milestones, team, risks; paper size, orientation, margins, text size, brand header/footer, presets
- 🔗 Live brand source — link a .skill / .potx / manifest by URL or as a local file (Chrome/Edge) and it is re-read on start-up and before every export, so the brand is always what the pack currently says
- 🎨 Import ANY theme pack — the skill-pack importer now reads a PowerPoint template (.pptx/.potx: theme colours, font, logo, company), a SKILL.md, a logo image, or a .zip of a brand skill folder, and merges what it finds into the Brand Kit
- { } Open interchange — Project JSON export/import (plain documented fields for Python, JavaScript and AI agents; docs/INTERCHANGE.md + an Agent Skill in skills/ganttforge) and skill packs (brand + status names + a starter project in one file, Settings → Brand Kit)
- 🔐 Gantt Forge+ sign-in — passwordless: email → 6-digit code → per-device session (Devices list to sign out any device), teams with invite codes; team tokens remain for self-hosters
- ↳ Sub-tasks made simple — right-click → Add Sub-task / Make Sub-task of Task Above / Promote, or Alt+Enter, Alt+→, Alt+← on any row; renaming a parent now updates its sub-tasks and dependency links
- 📋 Report view: frozen task/dates/owner pane, drag the divider to widen the task column (remembered), timeline − / Fit / + zoom
- 📅 Calendar moved under More Views; 📋 Report takes its place in the main tab strip
- 📋 Report view — the printable Gantt (task · dates · owner · month axis · bars · baseline · dependency arrows · critical path · today) as a view in the app under More Views, drawn by the same code as the PowerPoint preview
- 🎟 Invite-only servers — a + server can require an invite code to sign in (GF_SIGNUP=invite); the sign-in card asks for it and you join that team immediately
- 🧾 Project provenance — every project in a team space shows who pushed it first (owner) and who updated it last; only that person or the team owner can delete it from the space
- 👑 Team tools — owners can remove members and hand over ownership; members can leave; the + panel is now three numbered steps with a plain-English "how the team works" note
- ↻ Masters re-sync on demand — a master remembers its sources; the ↻ Re-sync master toolbar button pulls in the sources' latest changes while keeping tasks you added in the master (right-click to view/change sources)
- 🧩 Master project — combine several projects and/or files (JSON, backups, Excel, CSV, MS Project) into one new editable Gantt with unique names, rewritten dependencies, per-source milestones and optional chaining
- 🟢 Gantt Forge+ LIVE (preview) — real-time co-editing: start a live session for a project and everyone on the same + server with the same passphrase sees edits as they happen; presence avatars in the title bar; offline edits queue; encrypted end-to-end (the server relays ciphertext)
- ⌨ Type-ahead — people, task names (Depends On) and labels suggest existing values as you type: ↑↓, Enter/Tab, comma for the next one
- 📊 PowerPoint Gantt rebuilt — paginated, full task names, Start → End and Owner columns, month/week axis, today line, % fill, baseline underbars, critical path in red, dependency arrows, legend — plus a new Schedule Risk & Dependencies slide (planned/P50/P80 finish, late, critical, slack, why, depends on)
- 🔍 Help without memorising — pause on any button or menu item and a plain-English card explains what it does, when to use it and whether it is undoable; Help → "What does this do?" turns on Explain mode, where clicking anything explains it instead of running it
- 🧹 Less clutter — Simple mode now also trims the Table toolbar to the everyday actions (power tools sit under ⋯ More tools) and is on by default for new users; a clean 2D microphone icon on quick-add; fixed the row-action buttons hanging off the end of the table
- 🏷 Version number at the bottom of the left rail — click it for this version log
- ⬆ Automatic updates — a new release replaces the offline copy on its own and offers a one-click reload; no more stale cached versions

## v1.0.0 — launch release  ·  2026-09-09

- 🎨 Brand Kit — set your colours, logo, company and tagline once (Settings); applied to PowerPoint, PDF/print, the Word report, the timeline image and shareable snapshots
- 📤 Quick Export & Import — Excel, CSV, copy-as-table, timeline image and file import on one simple panel (Help menu, ⌘K, or the Export window)
- 🧭 Navigation Guide — a one-screen map of where everything lives, plus a first-five-minutes checklist
- ✨ What's New — this version log, with a one-time heads-up whenever you open a newer version
- 🔒 Local-first — zero third-party requests on load (libraries and fonts now ship inside the package, so it works fully offline); no account, no server, no analytics. A "Your data stays here" panel spells out exactly what does and doesn't leave the device
- ✦ Gantt Forge+ (preview) — the opt-in hosted tier: connect to a + server, push the open project, pull it on another device (restored as a new project, never overwriting). Gantt Forge itself is now MIT-licensed (see LICENSE)
- 🔀 Efficiency Flow (Sankey) and 🗺 Budget Efficiency (treemap) charts in the Insights menu
- 🐛 Fixed: password-protected projects could be silently decrypted by ordinary sidebar rendering; "Back up now" pointed at a lossy export; Settings sections were unreadable at smaller window heights; the Integrations menu rendered behind the toolbar

## Pre-launch build 150  ·  2026-08-01

- ♿ Accessibility — aria-pressed/aria-expanded on every toggle and menu, role="dialog" and Escape-to-close on all panels
- 🐛 Fixed: Critical Path, Slack and Swimlane toggles silently lost their state on reload; the Dashboard status donut could overflow when a filter was active

## Pre-launch build 141  ·  2026-07-22

- 📊 Custom KPI Builder, Data Retention (auto-archive completed work), field-level permissions for guests
- 🧹 Toolbar space reclaimed — collapsible action bar and a compact import zone once a project has tasks
