Change log
Newest first. Each entry says what changed for people and which parts of the code it touches. The history of earlier versions is in VERSION_HISTORY.md.
v0.65
Links from the app to the step-by-step guides, and a safer setup code.
web/static/auth.js: a small helper (guide,guideNote) that makes a link to a guide indocs/on GitHub (new tab,noopener noreferrer, loaded only when clicked). Added to the first-time setup page, the unlock page, two-factor setup, Administration (People, AI model, Microsoft sign-in, Agent chat, Reminders and Google Calendar, Reporting, Single sign-on), Settings (Mailboxes, Reminders, Calendar & to-do, Writing help). Text that named adocs/file now links to it.web/static/welcome.js: links in the setup guide (connect your email, choose the AI model, Proton Mail).prototype/index.html: the plain-http warning links to the access guide.backend/app.py:usable_setup_code(). AENVELIQ_SETUP_CODEthat contains "change-me" or is under 16 characters is ignored with a warning in the log, and a random code is made, so the placeholder in the install file can never be the real code.- Tests:
tests/test_auth.py(placeholder and short codes),scripts/check_guide_links.mjs(added to CI: every linked guide and heading exists).
v0.64
Writing help. The AI can write a reply, or check one, and only ever suggests. Off until a person turns it on.
backend/mail/writehelp.py: the per-person record (writehelp:<user id>: on or off, and the person's own writing instructions, up to 2,000 characters; the built-in generic instructions are used until they save their own), the fixed safety rules, the prompt (the email and the draft as data between markers) and the parsing of the answer into text (cut to 4,000 characters) and up to five short notes.backend/mail/writehelp_routes.py:GETandPUT /api/v1/me/write-help,POST /api/v1/accounts/{id}/messages/{mid}/write-help(the server fetches the original email itself, as View original does; attachments are never sent) andPOST /api/v1/me/write-help/new. 12 requests a minute per person. The audit log records only that it was used.backend/mail/features.py: a newwrite_helpfeature (administrator switch and personal switch, like the others). Separately, each person must turn writing help on for themselves.prototype/index.html: the button and the "Suggested by AI" box in the reply and New email boxes; Accept, Put my version back, Copy, Try again, Close; the send check, shown only when writing help was used on that message.web/static/auth.js: Settings, AI instructions gets a Writing help section; Administration, Features has the new switch.- Tests:
tests/test_writehelp.py,scripts/check_writehelp.mjs(added to CI),scripts/check_welcome_e2e.mjsnow counts nine feature switches.
v0.63
Administrators can edit saved shipping carriers.
- Administrators can edit a saved carrier (
GET /api/v1/shipping/carrierslists names with addresses, for administrators only;PUT /api/v1/shipping/carriers/{id}changes one). The same address rules apply, and editing is in the audit log. prototype/index.html: an Edit button on each shared carrier (administrators only) that reuses the add form.- Tests:
tests/test_shipping.py,tests/test_shipping_carriers.py,scripts/check_shipping.mjs.
v0.62
Shipping: Track all, Copy number, and carriers anyone can add. No outside service is used and Enveliq still never contacts a carrier.
prototype/index.html: Track all (n) on the Shipping page (up to 10 parcels still on their way, each opened in a new tab by anhttpslink), Copy number on every card with a tracking number (falls back to a hidden box on plain http), Add this carrier on cards whose carrier has no link, and a folded Carriers Enveliq can link to box (list, add form, remove with a second press).backend/mail/shipping.py: five more built-in carriers (Couriers Please, TNT, DPD, Evri, Yodel; the links were written from the carriers' usual address patterns and could not be opened from the build environment, so check each once), and one shared household list (ship:carriers, at most 40) used by every person's Track link.clean_templateaccepts only anhttpsaddress on a normal public host with exactly one{number}, and can find the number from an example typed by the person.backend/mail/shipping_routes.py:POST /api/v1/shipping/carriersandDELETE /api/v1/shipping/carriers/{id}; the person who added a carrier, or an administrator, may remove it. Both are written to the audit log (who and when, never the address).- Tests:
tests/test_shipping.py, newtests/test_shipping_carriers.py,scripts/check_shipping.mjsextended.
v0.61
Messages, first release (plan: docs/MESSAGES.md). One-to-one and small-group (up to 8) messages between people on the same Enveliq, a Messages entry in the sidebar with an unread count, a Home card ("Beth and Sam left you 2 messages"), a Profile switch Show me in the people list, and a Messages on/off switch in Administration, Features (and for each person under General settings).
- Backend:
backend/mail/messages.py(store and rules),backend/mail/messages_routes.py(/api/v1/messages/...),messagesadded tobackend/mail/features.pyandFeaturesBody,show_in_peopleonPATCH /me/profileandGET /me, and the person's messages are removed when they are deleted (delete_user_datainbackend/app.py). - Pages:
prototype/index.html(sidebar entry, Home card, Messages page, phone layout),web/static/auth.js(Profile switch, Features text). - Tests:
tests/test_messages.py(including that a person outside a conversation, and an administrator, get "not found"),scripts/check_messages.mjs(added to CI),scripts/check_user_menu.mjsupdated. - Left for the second release, as planned: the board, retention settings, the "tell me about new messages" reminder, and removing a conversation from your own list.
v0.60
The Enveliq icon is back on the browser tab: prototype/index.html now has <link rel="icon"> and apple-touch-icon pointing at the existing files under /brand/. Checked by scripts/check_user_menu.mjs.
v0.59 (fresh start of the git history)
A tidier menu, Profile settings and password rules. Light mode, Settings and Administration now live in the menu that opens when you click your name (only Agent stays in the sidebar), with a new Profile settings item. The Profile page is all optional: name, email address, a line about you and a small round picture (shrunk on your device, checked on the server, kept encrypted; other people can only ever see your name, picture and that line). Administration, Sign-in rules has a new Password requirements card (minimum length, how many numbers, capital letters, small letters and symbols, and whether the username may appear in the password); the change-password and add-person boxes tell people the rules in plain words. Settings and Administration were reorganised into clear groups (You, Your mail, How it works for you, Help / People, Mail, AI, System), long pages fold their detail away, and the demo-only pages that did nothing in a real install were folded into one Security & privacy page. Plan for messaging between people: docs/MESSAGES.md.
Also in this version: the repository history was squashed to a single first commit; working rules (CLAUDE.md) now require a branch and pull request for every change.