This update brings together 10 smaller changes across Bidlo Lite.
Flows: resolve AI step agents by either of their two ids — Flows that Bidlo AI builds for you can now pick an agent for an AI step, and the step actually runs as that agent.
Merge branch 'worktree-agent-aa423380f71810f95' — Flows built for you by the AI assistant can now run your agents, and a flow run with failed steps now shows as failed instead of finished.
Timeline: click-placed bars span six ticks; pane rule drawn as shadow — Clicking on a timeline to add an item now creates a bar that's wide enough to see at any zoom level.
Timeline: phasing picker can create the number field on the spot — When you turn on phasing in a timeline, you can now create the number field right from the picker instead of adding one to the collection first.
Chat: opening a bar draft as a full page no longer deletes the thread — Expanding a new chat from the chat bar into a full page no longer loses the chat.
Flows: blank canvas steps aside once the prompt is sent — When you describe a new flow, the canvas now clears right away so you can watch the steps appear as they're built.
Flows: run lists flag a green run whose steps failed — A flow run that kept going past a failed step now shows as failed in the run lists instead of a green Success.
Canvas: free connector ends are a host capability; ctrl-drag twins free ends correctly — Dragging a connector's loose end on a canvas now behaves the same whether you copy it with Ctrl-drag or move it, and flow diagrams no longer lose a connector when you drop its end on empty space.
Auto tags: skip unfinished filters instead of failing the whole field — Auto tag rules keep working even if one of their filters was left unfinished.
Files: names with #, %, ? or spaces open correctly — Files whose names contain # or % or ? now open instead of showing an error.
Pick the section tool and drag to draw a section the size you want. Sections are shaded blue by default so they read at a glance, and the last color you picked is used for the next one. Pick the arrow tool and drag anywhere to draw an arrow — it can start or end on empty canvas, or snap to a sticky, text, shape, section or card. Drag an arrow's end to move, attach or detach it.
This update brings together 4 smaller changes across Bidlo Lite.
New version banner: centered text, buttons pinned right — The "new version available" notice is centered, with Refresh pinned to the right.
Chat: auto tag tools — You can now ask the chat to set up or change a field's auto tag rules.
Side panel: closing on the way somewhere lands there, not back — Opening a chat full screen from a side panel now takes you to the chat instead of just closing the panel.
Chat: add GPT-6 Astra and Astra Fast to the model picker — You can now pick OpenAI's new GPT-6 Astra model in the chat model picker, including a faster (pricier) version.
This update improves how you create and organize work in Notes.
Images: one full-screen viewer for notes and chat — Click any image in a note or chat to open a full-screen viewer with zoom, next/previous arrows, and download.
Page tabs: the Content tab gets the same pill menu as custom tabs — You can now rename, change the icon of, duplicate, and delete the Content tab on a page, just like any other tab.
Comments block: quiet inline styling on pages — The Comments block on a page is quieter: an empty thread is just one "Add a comment..." line.
This update makes custom apps easier to build, share, and use.
Custom apps: HTML apps saved from chat render again — Apps built as a single HTML page from chat now open instead of sitting on "Building your app".
Chat: one way to build apps — build_app hands off to the app builder — Asking the assistant for a new app now opens it straight in the app builder, with the same preview and tools you get from "New app".
This update improves how you create and organize work in Notes.
Map: pins and new facilities stay on the page instead of vanishing — Things you save to a map, like a travel range or a facility you add by right-clicking, now stay on the map instead of disappearing a moment later.
Chats: a Share button in the same place every other page has one — Sharing a chat now works from the same Share button as every other page.
Fields: deletes made elsewhere disappear without a refresh — Fields deleted by the assistant or by a teammate now disappear from your field list right away, instead of sticking around until you refresh the page.
This update brings together 6 smaller changes across Bidlo Lite.
Grouped views: stop the facet query nested-looping 371M row pairs — Pages that group projects by owner or another tag now open in about a second instead of making you wait fifteen.
Notes: pasting from Notion keeps callouts, headings and bold instead of raw tags — Pasting from Notion now keeps callouts, headings and bold text instead of showing raw tags and blank lines.
Field search: menus find fields by their AKA names, like the Glossary does — Searching for a field now finds it by its AKA names too, not just its exact name.
Card preview picker: drop the "Content" hint line — The card preview picker reads a little cleaner.
Popovers: side-anchored menus slide back onto the screen instead of off the edge — Menus that open beside a panel now stay on screen in narrow windows.
Build mode bar: quieter chrome and a chat history button — The Build mode bar above the chat box is cleaner, and you can jump straight to your earlier build chats from it.
Turn labels off in the layout editor's title settings and the row shows just the values, with each field's name on hover. Handy when the values speak for themselves.
Open the layout editor for a collection and add the Comments block from the "+" menu. It lands in the main column, under the notes, and every page in that collection picks it up.
The Details, Comments and Activity tabs are gone from the top of the sidebar. Open a page's menu and pick Comments or Activity, and the sidebar shows it in place. The sidebar button in the header brings the details back, and closing and reopening always returns to details.
Notify me on a page now offers three choices instead of two. Comments & notes tells you when someone writes on the page, including edits to its notes. Field changes covers the page's fields. All changes covers both.
· Views and data, Access and alerts, Custom apps, Notes, Other
This update brings together 4 smaller changes across Bidlo Lite.
Team invites: quieter support section, correct invite column label — The People settings tuck Bidlo support staff into a collapsed section so your own team is what you see first.
Page tabs: remembered per collection, drag reorder reaches the page, + only in the layout builder — Page tabs now remember which tab you were on across projects and reloads, drag to reorder sticks, and an empty Views section opens with the same start screen as a new page.
Page tabs: the Content tab sorts with the rest — You can now drag the Content tab anywhere in a page's tab strip, and put other tabs in front of it.
Chat views: the assistant can build feeds, and reaches the rest of the layout settings — Ask the assistant for a feed and you get a feed, plus it can now set card previews, map location fields, board colors, and timeline phasing for you.
Page tabs now work like view tabs: right-click to rename, duplicate, or delete a tab, drag to reorder, and a new Views section starts by asking what you want to see.
Right-click any tab on a page (or click the tab you're on) to rename it, change whether it shows an icon, duplicate it, delete it, or jump into the layout editor on that tab.
Open a tab and use "Add to this tab" to drop in notes, a set of views, the record's files, or its fields. Add as many as you want, in any order. The same blocks are available from the page layout editor, where each one shows as a card you can drag to reorder or remove.
A views block remembers the views you set up on the tab it lives on, so an Estimation tab and a Project Management tab can show completely different things. Removing a tab or a block sends the views it held to Trash, where you can restore them.
Every pending invite has a Resend button next to it. One click sends the invitation email again, so someone who lost it or never saw it can be nudged without you starting over.
Invited the wrong person, or someone who changed their mind? Open the role dropdown on their row and choose Remove invite. The invite disappears and the link stops working.
Sending another invite to someone who already has one no longer adds a second entry to the list. It resends their existing invitation and tells you so. If they are already on your team, it says that instead.
The People list now shows only people who actually use the current platform. Bidlo support staff appear in their own section at the bottom and never count against your team's seats.
This update makes custom apps easier to build, share, and use.
App builder: builder controls move to a hump under the chat input — Building an app now shows a "Builder mode" bar under the chat box with the publish status and the version-history and settings buttons.
App builder: a write the dev server missed no longer leaves a stale preview — The app preview now reliably shows your latest change instead of occasionally sticking on the previous version.
This update makes custom apps easier to build, share, and use.
App builder: default to GPT-5.6 Sol on high, and remember the model you pick — The app builder now starts on a stronger model and remembers the model you picked last time.
App builder: the preview keeps the live sandbox, and a switch into editing carries the request — The app preview now shows the assistant's changes right away, and asking any chat to change an app just does it.
This update makes views clearer and more reliable when you review project data.
Custom apps: readable 400s for bad filters, and a builder tool that runs the app's real data request — When a custom app asks for data the wrong way, it now gets a plain-English error naming the field and the fix instead of a blank "failed" message, and the app builder can test its data requests before it ships them.
App kit: ship CSS in chunks, hide test seams, let collection rows take any shape — The app builder can now show live collection data as cards, lists, or charts, not only as a table.
Timeline: carry table columns on layout switch, fix grouping, dependency handle, side-table editing — Timeline views now carry your table columns into the side table, group calculations show under each group, and resizing a bar no longer starts a dependency by accident.
Open an app and click Edit (or tell any chat "I want to change this app"). The chat bar switches into building that app, and the buttons you need sit in its header: History, Settings, a new chat, and Close.
Every change the assistant makes is published in the background. A small status next to the header shows Publishing, then Live. If a publish fails, one click asks the assistant to fix it.
The History panel lists every version newest first, with who made it and when. Click a version to look at it, or restore it and it goes live again. A Graph tab shows branches.
This update brings together two smaller changes across Bidlo Lite.
Stop canvas cursor broadcasts from killing the realtime socket — Canvas views no longer stutter and reload themselves over and over while you move around the board.
Add GLM 5.3 to the model picker — You can now pick GLM 5.3 as your chat model.
This update improves how you create and organize work in Notes.
Stop a new chat's page from claiming it couldn't be found — Starting a chat from the search bar no longer flashes "This page couldn't be found" before the chat opens.
Toast when a chat finishes while you are on another page — When an AI chat finishes while you're on another page, a pop-up now lets you know and takes you straight back to it.
Grab the handle beside the pencil in a row's name column, or pick up a card anywhere on it, and drop it where you want. The order sticks for everyone on the team, and it holds when you reload the page. It works the same on a table, a list, a board, a gallery, and a calendar, whether you are looking at a full page, a tab inside a record, or a view inside an app.
Drag a row or card into a different group and it takes that group's value. Move a card to the No Bid column and the project becomes No Bid. On a calendar, dropping an item on another day moves its date.
If a view is sorted by a column, dropping a row asks whether you want to switch to manual order first. Keep the sort and nothing moves; switch and the order you see now is kept, with your row in its new spot.
This update brings together 6 smaller changes across Bidlo Lite.
Show the team logo when it is stored as an icon blob — Your team logo now shows correctly in Settings and in the morning briefing email.
Link every synced estimate item to a Project Item and fill formulas on new records — Estimate items synced from HeavyBid now always link to a Project Item, and formulas on newly synced records fill in right away instead of staying blank.
Fail a view-tab save that wrote nothing, and stop apps on pages losing their data — Adding a view tab now warns you if it could not be saved instead of quietly disappearing later, and apps placed on pages load their data reliably.
Count every flow run, not just the page on screen — The Runs list now shows how many runs are queued, running, and finished, so you can tell at a glance whether a flow is still working.
Refresh the chat model list to the newest model from every provider — The model picker now offers the newest model from each AI provider, including Claude Opus 5, Claude Fable 5.1, and Gemini 3.8 Flash.
Stop the chat agent waiting on a permission that does not exist — The AI assistant now makes the change you asked for instead of saying it is waiting for permission.
Every color menu ends with a + chip. Click it to open a picker with a hex field and a saturation square. Your last eight custom picks appear under the hex field so you can reuse them.
Custom colors work on tag options, page and agent icons, note text and highlights, note table cells, conditional formatting rules, map pins, board and chart colors, and PDF exports.
This update makes views clearer and more reliable when you review project data.
Keep table rows visible after closing the side panel — Opening a record from a table in the side panel and then closing it no longer leaves that row looking empty.
Tell people when a view change could not be saved — You now get told when a view change could not be saved, instead of it quietly disappearing.
Stop a new page view from silently vanishing when its save fails — Views you add to a page no longer disappear if the save doesn't go through — you'll see a clear error and can try again.
When you refresh a page or open it in full from the side panel, the Views tab you were on stays selected and the page keeps your scroll spot instead of jumping back to the top.
Adding a file no longer starts with a blank document. A view of the Files collection now opens your file picker when you click New, and a file document with nothing attached asks for a file instead of showing an empty page.
Clicking New anywhere on a files view — the header button, the add row at the bottom of a table, the add card on a board or gallery, the timeline, the calendar — opens your file picker instead of creating an untitled row. Pick one file or several; each becomes its own file document and uploads in the background. Every file inherits the values a new row would have inherited, so a file added from a board column lands in that column, and the first one opens in the side panel.
A file document with nothing attached now shows an "Add a file" card where the blank preview used to be. Choose a file, or drag one onto the card, and it uploads into that same document — the preview takes over as soon as it lands. People with view-only access see that no file is attached rather than an upload prompt.
A view in an app tab, a page section or a dashboard card now keeps up with the rest of the team. When someone hides a column, regroups the rows or switches the layout, everyone looking at that view sees it within a couple of seconds, with no refresh. Coming back to a tab you had left sitting in the background refreshes it too.
Two people changing different things about one view now both keep their change. Before, whoever saved last quietly replaced the others' work and nobody was told, so several people could sit on the same tab overriding each other without realising it. Your own filters and sorts still stay yours until you pick "Save for everyone".
Selecting rows deep in a long table now brings the bulk action bar to you instead of leaving it behind at the top of the page, and the tab strip above an embedded view follows you down the table rather than scrolling out of sight.
Select rows anywhere in a view — including at the very bottom of a table with thousands of rows — and the bulk action bar appears immediately at the top of what you can see. The bar is now sized to the visible width of the table rather than its full scrolling width, so the field buttons and the More menu stay reachable however far right you have scrolled. Dragging a scrollbar no longer counts as a click on the page, so your selection survives the scroll.
In the Views app the tab strip and its search, sort and filter controls stay with you as you move down a table. They slide away as you scroll down and come straight back the moment you scroll up, and the table's column headers pin directly beneath them instead of hiding behind them.
This update brings together 3 smaller changes across Bidlo Lite.
Explain invite-only access in the welcome dialog — New sign-ins that aren't yet part of a team now see a clearer explanation of how Bidlo access works: we open it in small batches to a select group of contractors, so the teams using it keep an edge. The dialog invites them to start a conversation with us instead of asking for a consultation call.
Stop deleted documents and lock timeouts from poisoning the formula queue — Formula cells now update reliably after you delete rows or run a large import.
Show plain-English blurbs in the What's new card, ranked by priority — The What's new panel now shows a short, plain-English summary of each change — and only the changes worth your attention.
Estimates synced from HCSS HeavyBid now always connect to the project items they price, so a project imported from HCSS shows its line items instead of an empty list. Until now an estimate item only linked when a matching pay item already existed in Bidlo, and roughly 60% of them never found one.
When an estimate prices work that the project has no line item for, the sync now creates that project item — carrying the pay-item code, description, takeoff quantity, unit and material — and links the estimate item to it. Existing project items are still matched first by pay-item code, so a project that already has a bid schedule is untouched.
The import's finishing pass now sweeps every estimate item still missing its project item and fills the link in, so projects brought in before this change heal without being re-imported.
This update brings together two smaller changes across Bidlo Lite.
Keep team invites alive when the invite email fails to send — Inviting a teammate now succeeds even if the invitation email can't be delivered right away — the invite still appears for them when they sign in with that address, and the dialog tells you the email didn't go out instead of showing a generic error. Re-inviting the same address no longer creates duplicate pending invites.
Fix menus opened inside a popover ignoring outside clicks — Menus inside a settings panel now close when you click away from them. Choosing a sort order on a dashboard chart card, for instance, used to leave the menu stuck open: Escape was the only way out, and the settings panel behind it stayed unreachable until you pressed it.
This update brings together 3 smaller changes across Bidlo Lite.
Show relation names instead of raw UUIDs in the Bidlo digest — Cards in your Bidlo digest email now show the real names of linked records — owner, agency, related projects — where some rows previously showed a string of internal ids.
Show "Show fields" extras beside relation chips in views and document pages — Relation chips can now show more than just the name. Pick extra fields under "Show fields" in a relation field's settings — for example a contractor's tag — and every chip in that relation shows those values next to the name, in tables, boards, galleries, calendars, timelines, maps, and on document pages.
Editable PDFs v3: bake edits on the server for large files — Editing very large PDFs (100MB and up) is now reliable on any machine. Form fills and text annotations on big plan sets save as a small list of edits that Bidlo applies on the server, so the browser never has to rebuild the whole file — no more failed saves or frozen tabs on 200MB+ documents. Search inside an edited PDF also picks up the new text after a save.
This update brings together two smaller changes across Bidlo Lite.
Fix dead "New chat" button on narrow screens — The "New chat" button in the chat window now works on narrow screens. Pressing it previously re-opened the conversation you were already looking at, so it seemed dead; it now clears the window and starts a fresh chat, matching how it behaves on a full-width display.
Redesign integration authentication: company vs. personal account cards — Connecting an app is now one decision, not three clicks. Installing an app takes you straight to its Authentication page, where you choose how to connect: a Company account — one login an admin sets up that everyone on the team can use — or Your account, your own sign-in that only you can use. Box now supports both. Picking "Your account" opens the provider's sign-in immediately, with no extra Install or Connect buttons in between. Connections settings also now work properly on phones and small windows.
This update makes views clearer and more reliable when you review project data.
Place undated rows on the timeline from a phantom bar — Rows that aren't on the timeline yet can now be put there without opening anything. Hover a row with no bar and a phantom block follows your cursor across the canvas; click to drop it on that day, or drag to place a range. The row's date field fills in as if you'd typed it, and the bar is live immediately — draggable, resizable, and connectable like any other.
Keep a label on every chart category — Bar and column charts no longer hide category labels. Every bar keeps its own label, shortened to fit when the name is long — hover to see the full name. On very crowded charts labels now thin out evenly instead of dropping whichever names happened to be longest.
Group the mobile "Not in table" fields into one card — On a phone, the fields left out of a view now sit together in a single grouped card in view settings, matching every other section of the sheet instead of stacking as separate floating rows.
This update brings together 4 smaller changes across Bidlo Lite.
Make every relation reader honor masks; scope ingestion deletes to global rows — Relation fields are now consistent everywhere: when you remove a linked record from a relation, it stays removed in the link picker, import matching, and notification counts - a few places previously still showed it.
Fix unclickable to-do checkboxes in notes — To-do checkboxes in notes now toggle when you click them.
Clicking a to-do checkbox in a note only registered on a sliver of its left edge, so most clicks landed on the box and did nothing. The whole checkbox is clickable now, in notes on any page and in note previews.
Let the active sidebar tab's label shrink instead of vanishing — The sidebar's active tab now keeps its name — Home, Chats or Flows — instead of collapsing to a bare icon at ordinary sidebar widths. Narrow the sidebar and the name trims a letter at a time rather than disappearing all at once.
Make Connections settings scroll, show real logos, and lead with estimating — The Connections page in Settings now scrolls all the way through the catalog, so every app Bidlo works with is reachable again. Each connection shows its real brand logo in both light and dark mode, and the list now leads with the estimating tools — HCSS, PipelineSuite, B2W, Viewpoint Spectrum, Procore — followed by the CRM and file-storage apps teams use most.
This update brings together 3 smaller changes across Bidlo Lite.
Give dashboard rows a little more air and hide card chrome until hover — Dashboards feel calmer. Rows sit at a more even distance from each other, and the search and settings controls on each card now stay out of sight until you move your cursor over that card — so a dashboard you're just reading shows you its data, not its buttons. Everything is still one hover away, and stays put while you're using it: settings keeps its icon visible while the menu is open, and search stays visible whenever a card is filtered by a search term. In edit mode all the controls remain on screen as before.
Fix profile photo uploads failing on Next's 1 MB Server Action limit — Profile photos save again. Uploading a picture from your phone or camera used to silently fail or snap back to your initials a moment later; images are now resized in the browser before upload, so any photo works, and iPhone HEIC pictures display everywhere instead of only in Safari. The same fix applies to team icons.
Use the shared prompt input on the empty-flow state — Starting a new flow now uses the same prompt box as the rest of Bidlo. The "What would you like to build?" input on an empty flow gains dictation, file attachments, "@" references to your docs and records, and "/" skills — the suggestion chips and "Start from scratch" work exactly as before.
The connection flow shows the collections and fields HCSS needs, including relation, status, and multi-tag targets, before Bidlo provisions or writes data.
Map HCSS values to compatible existing fields or choose a new field when needed. Bidlo keeps the review honest by showing skipped, declined, and accepted mappings distinctly.
Canceled and failed imports keep their review state, surface the real error, and offer retry controls. Reconnects preserve the backfill fingerprint so completed work is not repeated.
Closing a menu inside a dialog no longer closes the dialog with it. Opening the ⋯ menu on a running import and clicking away now just dismisses the menu, leaving the connection settings open where you left them — the same fix applies to every menu that lives inside a dialog.
Choose a number field in Phasing and Bidlo lays its value across the visible timeline period. The cells follow the timeline zoom, so daily, weekly, and monthly planning stays readable.
Edit a day directly with the keyboard or pointer. Bidlo keeps manual overrides pinned and redistributes the remainder across untouched days; auto-total can keep the parent field synchronized with those phased values.
A sticky calculation row summarizes the visible periods with sum, average, median, minimum, maximum, or range so teams can spot over- and underruns without leaving the timeline.
This update makes views clearer and more reliable when you review project data.
Let the HCSS review target existing multi-tag fields, pick fields clearly, and truly decline — The HCSS connected-fields review now sees every field it can write to. When the check maps your HeavyBid data onto Projects, it matches existing fields by name — including multi-tag fields — instead of proposing duplicates, and the field picker lists all of your Projects fields with their type icons. Creating a new field from the review now lets you choose whether it holds tags or text. Choosing "Don't sync" now actually turns connected fields off and leaves you a clean way to turn them back on later, without affecting the AI connector.
Give a canceled HCSS import a way back on — Canceling the one-time HCSS import no longer leaves Connected fields stuck. The page now offers to turn syncing back on; choosing that re-checks your HCSS data, links back to the collections that already exist, and finishes the import after you approve.
Projects that span several counties — combo lettings especially — show all of them instead of silently keeping one. Counties display as chips you can filter and colour, the same way districts do.
Recent is per-team now. Opening a team shows only what you looked at in that team — a new or freshly joined team starts empty instead of showing documents carried over from somewhere else.
Flows can be documented in place. Drop sticky notes, text, shapes and pen marks straight onto a flow to explain what a branch does or flag work in progress — they live with the flow, save as you go, and undo like anything else.
Pick a tool from the tray in the bottom-left corner, then click the canvas to place it. Sticky notes remember your last colour, the pen remembers its colour and weight, and Escape puts you back in Select.
Click any connection to open its style bar: switch between elbow, straight and curved routes, change colour, weight and dashes, add or remove arrowheads on either end, and give it a label. Drag a segment to bend the line around a card, or double-click a bend to straighten it out again.
A record shows the same icon everywhere it appears -- in a table, in a relation cell, in a picker. Items in collections that use icons, like Project Items and Bid Items, show that icon rather than a color assigned at import.
Values you type into a table cell or a field now save when you click away from them, instead of snapping back to the previous value. Previously only Enter, Tab, or clicking straight into another cell would keep the edit. Press Escape to discard an edit in progress, as before.
Opening "New auto tag" now leads with the values you already have, so picking one is a single click. A "New option" row sits underneath for anything missing.
A tag field with no values yet opens straight into the name box. Type a value, press Enter, and you land on that auto tag's filters instead of having to go find it.
Assistant conversations no longer get stuck, and building automations with the assistant is quicker and steadier.
#Conversations keep going after a skipped approval
When the assistant asks permission to change your data and you reply with a new message instead of clicking Approve or Reject, the conversation now carries on and treats the request as declined. Before, the chat could get permanently stuck on an error with no way to continue it. Conversations already in that state recover by themselves the next time you send a message in them.
A malformed request from the assistant to one of its own tools no longer ends the turn with a red error. The assistant sees what went wrong, corrects it, and keeps working.
The assistant now sees each automation step's real settings before it writes them, so new flows work sooner instead of failing on their first test run. Save conflicts that used to interrupt the assistant while it edited its own flow are gone, and the test-fix-retest cycle is no longer cut short partway through.
changelog:small — Cleaner agent responses: when the agent edits the same flow, view, or document several times in one reply, you now see a single card showing its latest state instead of a stack of duplicates. Flow cards are also more compact — click anywhere on the card to open the flow or run.
Cards can now show what's inside a document. A new "Content" card preview option shows a thumbnail of a file's first page (PDFs), the image itself for image files, or the first lines of a page's notes — so galleries and boards read at a glance. The Card preview setting has also been reorganized: pick None, Cover, Content, Icon, or a location field with a Street view / Map location style.
Sub-items can now carry their own colors. Open a table view's Sub-items settings and pick Conditional color to set rules that read the sub-item's own fields — not the parent row's — so a child can stand out even when its parent looks fine.
The field picker lists the sub-item collection's fields. A rule can paint the entire sub-item row or just one of its columns, and the colors show up in PDF exports too. Nested sub-item levels each get their own set.
Drag from a timeline bar to another item to preview a dependency. A valid connection becomes a pending edge that the Dependencies setting confirms and stores.
The timeline side table now uses the same field order, sizing, calculations, conditional color, and header controls as the main table, so dates and project details stay useful while dependencies are visible.
The assistant can set, change, and clear the icon on any document, and its edits no longer overwrite anything else stored on that record. If it picks an icon name that doesn't exist, it's told so and corrects itself instead of saving something that renders as a blank page glyph.
This update makes views clearer and more reliable when you review project data.
Show long formulas in the formula editor — Opening a long formula in the formula editor now shows the formula. Formulas past roughly a hundred words, quotes, and brackets used to open into an empty editor even though the formula was saved and still calculating. Nothing was ever lost — the editor just could not draw them, and now it can.
Match the date filter preview calendar to the filter itself — Date filter previews now highlight the days the filter actually matches. Picking "This week" or "Past 3 weeks" shows a range in the little calendar that lines up with the records you get back, with weeks starting on Monday.
Describing a new page now routes to what you asked for.
Typing what you want into a new blank page — "something like a kanban", "meeting notes for tomorrow", "a calculator for concrete costs" — sent almost everything to the page-building assistant instead of opening the board, the notes page, or the app it should have. Descriptions now land on the right surface.
Chat requests do less work before answering: the assistant no longer re-reads the whole conversation dozens of times per message, skips preparing tools it cannot use in the current mode, and no longer starts a sandbox for chats that have nothing to run in it.
A chat started as an app builder, page builder, or agent conversation stays that way. A timing issue could previously turn one back into a general chat, losing its tools and instructions for good. Page builder chats now target the page you started from, and a failed start tells you instead of silently continuing as a general chat.
Describing a new page routes more predictably: the router retries a timeout within a fixed budget instead of falling back early, loads its options while you type, and no longer creates a duplicate chat when a retry races the original.
This update brings together 6 smaller changes across Bidlo Lite.
Make views sorted by two fields load instantly — Views sorted by two fields now load in a fraction of a second instead of a second and a half.
Fold the testing method and shipping procedure into the runbook
Correct the runbook: the fossil purge is a no-op on dev
Document the phase 3/4 apply runbook
Close the parity and state gaps the independent review found
Speed up short-list and notification views, carefully — Views built from a saved list of documents, and the notification counts that go with them, now load noticeably faster.
This update makes views clearer and more reliable when you review project data.
Stop view queries from failing when the planner goes parallel — Fixed an intermittent error that could make grouped and filtered views fail to load.
Retire the dead formula strategies
Make formula health signals see terminal failures
Show formula failures instead of endless loading skeletons — Formula cells that failed to calculate now show a clear error with retry status instead of loading forever, and cells waiting on another formula show their loading state instead of appearing empty.
Compile relation aggregates inside larger formulas to set-based SQL — Formulas that mix related-record totals with other math — like a weighted sum divided by another field, or a progress ratio that falls back when a record has no line items — now calculate on the database fast path instead of stalling behind row-by-row recalculation.
Compile string, date, and numeric built-ins to set-based SQL — Formulas using text functions (lower, contains, substring, concat, replaceAll with plain text), date math (datedif, today()), and rounding (round, toNumber) now calculate on the database fast path, so they finish in minutes on large collections instead of trickling through row-by-row recalculation.
Write formula meta.type even when inference yields any
Compile first(relation.field) inside arithmetic to set-based SQL — Formulas that combine a related record's value with arithmetic — like price / first(Items.Unit Price) - 1 — now calculate in bulk on the database fast path, so large collections finish in minutes instead of stalling behind row-by-row recalculation.
This update makes views clearer and more reliable when you review project data.
Sync round-2 view RPC perf work into the repo — Large views load much faster. The slowest cases - date filters, filters on related items, and sorted views over big collections - now come back in under a second where they used to take four to sixteen seconds, and filtered, sorted, and grouped views are quicker across the board.
Make filtered and sorted views answer in milliseconds — Views with filters and sorts now load dramatically faster. Views sorted by a date field answer in tens of milliseconds instead of seconds, and grouped views, relation/tag/location/formula sorts, sub-item views, and view calculations are 1.4-2.3x faster across the board.
Bring back fast multi-pattern text search in views — Views that filter text across several search terms at once are about twice as fast again, and a few filtered and grouped views got faster along with them.
Describe the page you want in plain language and Bidlo builds it. Typing "kanban board" opens a board straight away; "a table of my vendors with phone and email" hands the page to the agent, which picks the dataset, adds the columns and names the page.
The prompt on a new page now reads what you asked for. Named layouts and page kinds open instantly, close matches land on a template or a note, and anything that needs building goes to the agent with the page already in hand.
The agent can now choose or change a page's dataset while it builds, so a blank page can go from empty to a working view in a single request.
#An empty state that matches your complexity level
Simple mode opens on three choices — view data, build app, write notes. Medium keeps the layout grid with the rest a click away. Advanced shows every layout up front.
This update makes views clearer and more reliable when you review project data.
Stop new formula fields from saving before they exist — Creating a field and immediately writing its formula now works. The formula waits for the field to finish saving, and if creating the field fails you get a clear message and a retry instead of a formula that silently never computes.
Stop infrastructure blips from poisoning formula cells — Cells no longer get stuck showing an error after a temporary database or network hiccup. Formula work now retries transient failures and reserves permanent failures for problems that retrying cannot fix, such as a formula pointing at a deleted field.
Build a dashboard card the way you build a page — A new dashboard card now opens on the same empty state a new page does: describe the card and let the agent build it, pick a layout, or start from a template. Describing it hands the request to the agent bound to the dashboard the card belongs to, so the card is added in place rather than becoming a page of its own.
Dashboard is left out of a card's layout choices — a dashboard inside a dashboard isn't a thing — and the placeholder card is taken away when the agent takes over, so you're never left with an empty card stuck mid-setup.
The view toolbar's separate "Convert to dashboard" button is gone; that action lives in the layout menu with every other layout.
Picking a layout for a new page now opens settings on the Dataset page rather than the settings home, so the next thing you're asked is the next thing you need to answer. Choosing one takes you back to the name field.
While no dataset has been chosen, the panel is titled "Select a Dataset" and leads with the search over your datasets. The selected-dataset header — the rename row, Copy Dataset ID and Import — stays out of the way until there is a real dataset to act on, instead of presenting an empty rename row and a second Import button above the picker.
Choosing a layout on a new page now gives you that layout's genuine empty state — an empty board with its columns, an empty chart with its axes, an empty gallery ready for its first item — instead of a half-built table with nowhere to put anything. A new page no longer silently attaches itself to the Projects dataset either: the page starts with a real, empty dataset of its own, named after the page.
While the dataset is still the page's own new one, renaming the page renames it too. Swapping in an existing dataset afterwards stops that — previously, renaming the page after a swap would quietly rename the shared dataset for everyone using it.
Pressing "+" now lands you on the new page's empty state right away — in about a tenth of a second, instead of waiting a second or two for the page to be created first. The screen you land on is the real one: type a description, pick a layout, or choose a template, and nothing you do is lost while the page finishes being created behind you.
The empty state is held open across the page's creation rather than being torn down and rebuilt, so focus stays in the prompt field and text typed in the first moment survives. Work that needs the page to exist — creating a note, importing a file, cancelling — now waits for it rather than being dropped on the floor.
Chat now answers noticeably faster. The assistant starts replying in about half the time it used to, and the message box frees up as soon as the last word lands instead of waiting on background bookkeeping.
Everyday questions start streaming in roughly two seconds instead of five. The speedup comes from a lighter default reasoning setting and from reusing the cached parts of a conversation between turns, so follow-up questions in a long thread no longer pay to re-read everything that came before.
#Faster follow-ups when the assistant is working with files
When the assistant sets up a workspace to write or run files, later turns in that conversation now reconnect to the workspace that is already running rather than rebuilding it from scratch. Reconnecting takes under half a second, where a cold rebuild took up to three.
Turns that genuinely need more time now have room to finish, and a turn that does run out of time says so plainly and offers a retry instead of ending without explanation.
The assistant now sees the fields of related collections, including relations reached through a single-document link, so it can write formulas that reference them instead of asking you for a field id.
Formulas that reference two other fields — the most common kind — now recalculate with set-based queries instead of one lookup per row. On a 66,000-row collection this is the difference between timing out and finishing in well under a second.
#No more formulas stuck behind someone else's backlog
Recalculation work is now shared fairly across formulas. Previously a single large backlog could hold the queue and leave every other formula waiting indefinitely.
#Correct values when formulas are edited in quick succession
Editing a formula that others depend on no longer leaves a mix of old and new values behind; dependent formulas recalculate against a single consistent version.
The new-page screen now offers a short row of suggested starting points built from how you and your team actually use each collection — the fields you edit, the filters and sorts your team's views already share, and the layout that fits. Suggestions are private to you, capped at three, and you can dismiss any one you do not want to see again.
Alongside the saved templates, a Suggested row proposes views assembled for the collection you are starting from: the fields that matter, a layout, and sorts or filters when your team's existing views agree on them. A filter value is only pre-filled when it is the same across most of your team's views, and date filters use rolling ranges rather than a fixed date. Searching filters suggestions the same way it filters templates.
A nightly job distills each team's views and each person's editing history into a habit profile per collection, and suggestions are assembled from that profile when the screen loads. Collections your team has not built views in can still suggest something when your own editing signal is strong enough, and those suggestions stay deliberately plain. Applying a suggestion records what it was built from.
Building an app from a page is now a single flow with a single identity: the page is the app. Picking App on a new page drops you straight into the builder prompt, and the app you build shares the page's name, icon, and sidebar entry instead of creating a second document beside it. Apps that already live in the Apps collection keep working exactly as they do today.
Choosing App on the new-page screen goes directly to the builder prompt — no "Choose an app" card and no settings popover in between. Under the prompt, a gallery of your team's existing apps gives you two ways in: fork a copy to use as a starting point, or embed the existing app as-is.
Renaming the page renames the app, because they are the same document. When the agent creates an app on an untitled page, it names the page too. Edit app moves into the page's own header, so the way in is the same whether you come from the header or the settings menu.
Connecting HCSS creates an Estimates collection (if your team doesn't have one) with the HeavyBid fields already mapped, plus a flow that pulls changed estimates every 10 minutes. Both are ordinary Bidlo objects afterwards — open the flow to change the schedule, pause it, or add steps. The Connected fields screen shows how often the sync runs and links straight to it.
Each estimate links to the project its code matches. Matching ignores differences in spacing and punctuation, and when an estimate references a project you don't have yet, that project is created with its contract ID and agency filled in. Estimate owners resolve to the Agencies collection the same way, so "TXDOT", "TxDOT" and "Tx DOT" all land on one agency rather than three.
This update makes views clearer and more reliable when you review project data.
Keep a sidebar page from nesting into itself — Dragging a page onto itself in the sidebar no longer makes it disappear. Pages could previously be dropped onto their own row — most easily from the "More" list, which shows the same pages as the sidebar — or onto one of their own sub-pages, which left the page parented under itself and hid it and everything inside it. Those drops now do nothing, and releasing a drag on any invalid target leaves the page where it was instead of quietly moving it to the top level.
Record and self-heal formula dispatch incidents
Stop formula backfills from starving each other — Saving a formula on a large collection now starts filling in right away, even when other formulas are already recalculating. Previously a new formula's backfill could stall behind an in-progress one with no error and no progress, leaving the column blank until the older one finished.
Give relation and generic formula runs real parallelism — Formulas that reference linked records, and formulas without a SQL shortcut, now recalculate several times faster on large collections.
The notifications popover is now a single stream instead of two stacked lists. Page activity and the notifications people send you sit together in one column, split into New and Older, with the time each one arrived on the right.
Activity rows and notification rows share a layout: the page's icon or the sender's avatar in the same slot, the title on the first line, and the count or timestamp under it. Nothing reads as a different kind of thing anymore.
Every row has an Archive button on hover, and the popover header has an Archive all for clearing the whole inbox at once. Archiving a row also marks it read, so nothing you've archived can keep counting toward the badge. Clearing a page's activity is the same as visiting it — the unread count goes to zero.
The filter menu switches between All, Unread, and Archived. The archive is a full history you can go back to, and anything in it can be unarchived back into the inbox. Mark all as read moved into that menu.
This update brings together 3 smaller changes across Bidlo Lite.
Put duplicated pages back where they belong — Duplicating a page from the sidebar now keeps the copy where the original lives. Copies of shared pages stay shared and sit directly under the same parent instead of dropping into your private pages at the top level, and duplicating one page while a different one is open no longer copies the open page's filters onto the copy.
Duplicating is also more reliable: several unrelated steps could report "Failed to duplicate document" for a page that had in fact been copied. When a duplicate genuinely does fail, the message now says why.
Keep the menu button reachable while the sidebar peeks — The menu button now stays put when the collapsed sidebar slides open, so you can click it to pin the sidebar back in place.
Hovering the button still peeks the sidebar out for a quick look, and the button itself stays visible and clickable the whole time — it turns into a pin control on hover, and clicking it locks the sidebar open. Cmd/Ctrl+B does the same thing from the keyboard.
Tell the two AI plan tools apart — The PDF tool tray now spells out how its two AI tools differ: Ask AI snapshots a region and waits for your question, while AI measure snapshots a region and measures it for you.
A file that has been parsed is marked as AI ready, so you know Ask AI and search can actually read it. A file still being processed shows its progress and flips over on its own when it finishes.
Files that were never queued get a Parse for AI action in the header. Files whose parsing failed can be sent back through, which previously needed manual intervention.
Measured areas and lengths now hold their shape. Dragging a polygon, moving a vertex, or zooming after an edit keeps the geometry you drew, and shapes stay responsive on dense sheets.
The shape under your cursor tracks it live instead of catching up later, so a polygon no longer appears to jump or flatten the moment you zoom in. Vertices stay inside the page, and a drag interrupted by a gesture or context menu ends cleanly rather than continuing to deform the shape.
Polygons drawn while zoomed out keep every point you clicked. Previously a zoom-scaled tolerance could quietly merge nearby vertices, and a shape that lost too many was discarded without warning.
Opening a large PDF now tells you what it's doing instead of sitting on a spinner. The viewer reports download progress as a share of the file, then switches to preparing pages while the document is read.
Plan sets stream in with a progress bar and a running "X MB of Y MB" readout, so a multi-hundred-megabyte file reads as moving rather than stuck. Files whose size the server doesn't report fall back to an indeterminate bar.
The viewer shows a spinner from the moment a PDF is opened, covering the stretch that used to render as an empty panel. Pages you scroll to sit under a soft placeholder until their content is drawn.
This update makes views clearer and more reliable when you review project data.
Dictate and attach files to the formula assistant — The formula assistant now takes dictation and attachments. Hold the dictation shortcut to speak a formula instead of typing it, or paste screenshots and files — up to five, 20MB each — straight into the prompt when it is easier to show the assistant what you mean than to describe it.
Keep the whole formula editor on screen from a cell — Opening a formula from a cell now shows the whole editor — the expression, its preview and the function browser — wherever the cell sits in the table. It used to be cut off just below the AI prompt for any row near the middle of the screen, and in a short window it now shrinks the function list instead of dropping it.
Keep relation filter operators on one line — Filter options for relation columns no longer wrap onto a second line in the column header menu.
Keep note table controls behind the floating chat — The floating chat window now stays on top of the page behind it. Hovering a note's table while the chat is open no longer pokes the table's add-row and add-column controls through the chat panel.
Linking to another page from a note no longer asks for an ID. The /page block command now searches your pages the same way @ mentions do, and the page you pick lands in the note as a preview card showing its icon, name and the start of its content.
Type /page block and a search box opens at your cursor with your recent pages already listed. Type to search everything, or scope it to one collection with a prefix like Projects: — the same results the @ menu returns.
The inserted block is a card rather than a bare link: the page's icon and name, the collection it belongs to, and a scaled-down view of the page's own notes. Click anywhere on it to open that page in the side panel. Page blocks added before today become cards too.
Sharing a page with specific people is now a first-class state, not a footnote on a private page — and the same button that hands a page to a teammate also publishes it to the web.
Every page you own has a Share button beside the favorite star. Search for teammates by name or email, and give each person Can edit or Can view. Anyone you invite gets the page immediately; removing them takes it back just as fast. If the address belongs to nobody yet, invite them to the team from the same field.
The moment a page has someone on it, it moves out of Private into a Shared section between Public and Private — the same place your teammates see it. Unshare everyone and it slides back to Private. Sharing a page that was Public moves it into Shared too, so a page is only ever in one place.
Drag a shared page into Public and Bidlo asks before opening it to the whole team; drag it into Private and it tells you exactly who is about to lose access. Nothing changes until you confirm.
The Publish tab holds the publish-as-a-website flow that used to sit three levels into view settings — publish, copy the site link, change who can view, or unpublish. A published page shows a pulsing dot on its Share button.
Filters and sorts on a document page's Views tabs now behave the way they do on a shared page: they change only your own screen until you publish them to the team. Applies to the Views block on every collection — projects, contractors, facilities and the rest.
Adding, editing or removing a filter or sort on a Views tab now stays with you. Reset and Save for everyone appear beside the tab's controls, and the pills you touched are highlighted so it is clear which are yours. Reset puts the tab back to the team's version; Save for everyone publishes your filters and sorts to it. Unpublished changes survive a reload, follow the tab from one record to the next, and undo with Cmd+Z.
People with the viewer role can now sort and filter these tabs at all — previously their changes were dropped on reload. Their edits are personal and persist like anyone else's, so they get Reset but never Save for everyone.
Flows are automations you build once and let run. Open Automations in the sidebar, describe what you want in plain language, and the assistant assembles the steps on a canvas beside you — or start from scratch and pick a trigger yourself.
Start a flow on a schedule down to the minute, from an incoming webhook with a URL you can copy and a log of what it received, or whenever data in a collection changes and matches a filter you set. You can also run one by hand to try it out.
Drag steps onto the canvas and connect them: query or create documents, edit fields, call an HTTP API, ask the assistant a question, send a notification, branch with a condition or a switch, wait for a delay, merge paths back together, or run your own code. Each step opens a config panel beside the canvas, and expressions like {{ steps.previous.output }} carry values through.
Store API keys and tokens once under Credentials and reference them by name. They are encrypted at rest and only ever decrypted inside the step that runs.
Every run is recorded with its steps in order, how long each took, and the output or error it produced, readable as a copyable log. Team-wide flow activity lives in Settings, a flow with a failing budget stops rather than retrying forever, and old runs age out on their own.
This update improves how you create and organize work in Notes.
Give returned files a real document card in chat — Files the assistant creates or edits now come back as a document card: a cropped page thumbnail, the filename, and its type and size. Click it to open the file in the side panel, where Download lives.
Replaces the old icon-plus-two-buttons block. The card is ported from the marketing site's chat mockup, so the two now match.
Always paint the dialog backdrop — Dialogs always dim the page behind them. Some confirmation dialogs previously appeared over a fully lit page, making it unclear the rest was inert.
Open Edit team for teams that have no contractor — Creating a team without choosing a contractor now works instead of failing after the team is made, and teams with no contractor set open in the team editor again rather than showing an error screen.
This update makes custom apps easier to build, share, and use.
Fix the sign-in link on a shared app's page — Opening a shared app link while signed out now takes you to sign-in instead of an error page. Apps shared with you show the team that shared them.
Read an app's name and icon from one place — Renaming an app or changing its icon now updates its published site, the sidebar and the Teams page together, instead of leaving the old name behind.
Give shared apps the same card as recently visited — Shared apps on the Teams page now use the same card as "Recently visited", with the app's banner, icon and a last-edited line.
This update makes views clearer and more reliable when you review project data.
Sort groups by item count or a calculated value — Grouped views can now be ordered by what's in each group, not just the group's name. In a view's Group settings, the new "Sort by" option ranks groups by Item count — the biggest (or smallest) groups first — or by a calculation such as Sum or Average of a numeric column, with the usual High to low / Low to high direction. Dragging groups still takes over with a manual order, and "No value" stays pinned last.
Convert a view to a dashboard from the layout menu — Switching a view to a dashboard now happens in the layout menu, alongside every other layout, instead of a separate button in the page header.
Pick the group sort calculation in two steps — Sorting groups by a calculation now works like chart settings: choose Calculation, then the field and the calculation to run on it. Any numeric field can back the order, not just ones already showing a footer total, and the choice sticks after a reload.
Keep a wide note table's controls inside the note — Tables in notes keep their row and column controls inside the note. Scrolling a table wider than the page no longer paints its handles across the side panel.
Formulas that build on other formulas now calculate on the fast path, and a recalculation that runs into trouble picks itself back up instead of leaving a column half-filled.
A formula like average({Items}.{% Complete}) — one that averages, sums, or counts another formula's results across a relation — now computes in a single database pass instead of row by row. On large collections this is the difference between seconds and hours, and it always reads the current version of the column it depends on, so the numbers agree with what the source column shows.
Filters over calculated columns work the same way, so sum(filter({Items}.{Cost}, at({Items}.{Status}, index) == "Approved")) stays on the fast path when Status is itself a formula.
Editing a formula while another one is still recalculating no longer risks either of them failing. Recalculations for a team now take turns, a formula that depends on another waits for it to finish first, and a run interrupted by a slow patch resumes from where it stopped rather than starting over or stopping for good.
A row that references an unusually large number of related records now shows an error on just that row; the rest of the column still calculates.
The progress indicator distinguishes a formula that is waiting its turn, one waiting on a column it depends on, and one that paused and is resuming, instead of showing a generic failure.
The floating chat window is now yours to place. Drag it by its header to anywhere on the page, resize it from any edge or corner, and it stays where you left it the next time you open it. You can also pull the chat straight out of the sidebar and drop it back in when you're done.
Grab the window's header and drag it anywhere on screen. Every edge and corner resizes, and the window always stays fully on screen — including when you resize the browser. Double-click any edge to send it back to its default spot in the bottom-right corner. However small you make it, the chat keeps its compact layout so the composer and the new-chat starters stay readable.
Drag the chat bar's header out of the sidebar and the chat detaches into the floating window right where you drop it. To re-dock, drag the floating window toward the right edge of the screen — a "Snap to sidebar" outline previews where it will land, and releasing puts the chat back in the sidebar at its usual width.
Bidlo now works on a phone. Opening the app on a small screen gives you a layout built for one thumb and one column: a bottom bar you navigate from, overlays that arrive as sheets from the bottom edge instead of popovers pinned to a cursor, and touch-sized targets throughout. Everything you can reach on a phone does the same work it does on a desktop — the same chat composer, the same cell editors, the same side panel — in a frame measured for the screen it's on.
The phone gets its own shell. The sidebar becomes a drawer you pull up from a Menu button, search gets its own surface, and page navigation moves off the chrome the desktop spreads across the top. The Back chevron counts the shell's own history rather than the browser's, so it stops offering to walk you out of the app after a sign-in redirect.
The bottom bar is the chat composer. Tapping the Ask AI pill expands it into the real thing — mentions, skills, attachments, model and effort pickers, web search and stop — over whatever page you're on, so the page stays readable while you write about it and one tap puts the composer away. On a chat page the bar continues that conversation; anywhere else it starts a new one, and sending turns it into a chat page. There is no second, lookalike input anymore.
Every overlay in the app — popovers, dropdown menus, dialogs, selects, context menus — comes up as a sheet from the bottom edge, capped at 85% of the screen and dismissed with a downward flick or a tap above it. Inside a sheet, a run of adjacent rows reads as one rounded card with inset hairlines, section labels sit above their card as headings, and rows are sized and spaced for a thumb rather than a cursor. Surfaces whose whole point is the anchor — the "@" and "/" caret menus — stay anchored.
Tapping a table row, a relation, a search hit or "Open in side panel" used to navigate the phone away from the page you were on and lose your scroll position with it. The side panel is back as a sheet that stops short of the top, so the page you came from is still behind it, and it carries the document's own header actions, close, and "open in full page".
Tapping a relation, date or tag cell opens the editor as a full-width sheet instead of a desktop picker wedged half off the screen. The editors are the same ones the desktop uses, re-measured for the sheet: the calendar divides the width the phone actually has, option lists drop the width cap they wore to fit beside a trigger, and the field's name goes at the top because the sheet covers the cell that would otherwise say what you're editing. The sheet also sits on the keyboard's ceiling rather than under it.
The view header collapses search, sort, filter, layout and New into icons, with create on its own compact surface. Drag-to-select is off on touch, where that same drag is a scroll — so tables, galleries, boards, the calendar and the sidebar no longer arm a lasso that competes with the gestures you navigate by. And a field, filter or search box no longer drags the keyboard up just by appearing; the keyboard comes when you ask to type.
The view settings drawer — filters, sorts, group, fields — reads as grouped cards the whole way down, including where a reorderable list ends and the next control begins. Reset and Save for everyone join into one pill on the phone, since the header row has space for one control there and they are one decision anyway.
The apps sidebar lists apps newest edit first, bucketed into the same date groups the chats sidebar uses, instead of alphabetically.
Conflict resolution, for the record — main had moved a long way under this branch:
share-app-popover.tsx, teams.tsx: took main's. Both carry work this branch also has, but main's is further along — the branch's outside-share commits landed on main as rebased copies and then grew the invite-link flow, and main replaced the Teams page titles this branch only hid on phones with a real Apps tab. Nothing from the branch is lost. - tools/feature-video-pipeline/*, scripts/changelog/*, docs/*: took main's. The branch's copies were an earlier snapshot of the same untracked files. - title.tsx, global-filters-popover.tsx: kept both sides — main's view-lock and draft-filter work plus this branch's mobile imports, with the title's autofocus now resolveAutoFocus(!readOnlyTitle && …). - tsconfig.json: comment text only.
Open the view's settings and choose Lock view. Lock setup freezes columns, layout, grouping, saved filters, and the view name while people continue editing data. Lock everything also makes every cell read-only. A padlock chip shows which lock is active and who turned it on.
People can still filter and sort a locked view. Those changes become their personal view instead of changing the shared setup, and Reset returns to the team's version.
Lock one column from its menu without locking the rest of the view. Typing, pasting, and fill handles leave that column unchanged while the rest of the table stays editable.
Open a column's menu and choose Conditional color to add rules there. The same rules appear in the view's Conditional color settings, including rules created in earlier versions of the column menu.
Each rule can color only that column's cell or the whole row when the condition matches. Reordering rules for one column leaves the rest of the view's rules in place.
Sharing an app outside your team no longer stops to ask you for anything. If the app has never been saved, Continue saves a version, checks it, and shares that — you just pick who gets it.
Sharing an app outside your team no longer waits on anyone. Click Share, type an outside address, and a step explains who's getting what: Continue runs the security check, sends the invite, and tells you exactly which data that person can now reach through the app.
The check works out what the app reads and locks the invite to just that. It now understands the way apps are actually written, so apps that previously had to be reworked before they could be shared are ready as they are.
If a screen picks its data while running, we can't bound what an outsider would see — so instead of a dead end, the step names the file and line that's in the way, and offers to open the app agent right there. Nothing is shared until it's clear.
Dashboard filters now work like filters elsewhere in Bidlo. On a shared page, changes to global filters or an individual card's filters stay personal until you publish them.
Add, edit, or clear global and card filters freely. An orange dot marks filters you changed but have not published, and the dashboard filter bar includes Reset and Save for everyone.
Save for everyone publishes your filter changes to the team. Reset returns to the published filters—from the page filter bar for the full dashboard, or from a card's filter menu for that card.
Signing in to Bidlo is reliable again. Sign-ins that stalled after the sign-in page was left open now recover automatically, and brief connection problems no longer end the session.
Start typing a name or email address in Share. Teammates appear as suggestions, and an address outside your team can be invited to the app—or to the team if you are an owner or admin.
Outside collaborators can view or edit the app. Revoke a person at any time, and use the app's People tab to review the owner, teammates, outside collaborators, and public-link status.
Tabs embedded in the Views app can be published from their action menu. Page-based filters resolve against the record the tab came from, so the public site shows the same slice of data.
Notifications and email updates now show the right content, clearer details, and useful links.
Product updates use the right email — Weekly product updates now arrive with the product-update layout and follow the Product updates email preference.
Digests show what changed — Daily and weekly digests list the changed pages and readable details instead of empty counts or stray values.
Subscriber links work without an account — Email footers take public subscribers to bidlo.ai and a preference page they can open without signing in. Research emails also avoid repeating the headline.
Push notifications name the pages — Push alerts identify the pages that changed instead of showing only an update count.
Paste a grid from a spreadsheet and continue editing it in place. Text and background colors help separate headers, totals, and items that need attention.
Bidlo Lite can now be installed like an app, with a touch-friendly mobile layout and push notifications for views you follow—even when the browser is closed.
Ask Bidlo Lite to build a dashboard, tracker, or other workflow. The build starts from the main chat bar, and the preview appears in the same workspace.
Previous build conversations remain available when you come back to an app. You can continue a line of work or review how an earlier decision shaped the current version.
Open the glossary to see what a field represents and the kind of value it contains. Examples make similarly named fields easier to distinguish when the source system is unfamiliar.
The model picker groups options by provider, supports search, and shows reasoning controls where they apply, making speed-versus-depth choices easier to understand.
Choose Deep Research and describe the company, market, owner, or project you want to understand. A specific question gives the research a clear target.
Open an app, choose Share, and select the audience that should have access. Role-specific estimating or operations tools can stay focused on the people who need them.
Open Fields, choose New field, and select the field type you need. For a formula, the editor shows the available project fields and examples beside your calculation.
Search now finds records, documents, and common actions in one place. You can open the right project or start a task without moving through several menus.
Open Search from the sidebar and type a project, record, or document name. Results appear in the same palette, ready to open from the page you are already using.