Sync schedules and workflows
Two things keep a workspace current: a schedule per source, and what Mari learns from the runs it observes.
Schedules
Every connected source carries its own cadence, set on Sources under Sync schedule. The options run from Manual only through every 10 minutes, every 15 minutes, every hour, every 6 hours, every day, and every week.
Daily is a reasonable default for anything without webhooks. Pick a tight cadence for a source people edit all day, and leave a slow-moving archive on manual.
A schedule only appears for a source whose current setting the server reports, so the control is never a guess about what is configured.
Re-syncing something that has not moved is close to free. Each chunk is hashed, and only the chunks whose hash changed are embedded again.
Webhooks
GitHub does not wait for a schedule. Set the payload URL and signing secret under Destinations, Bots, and a push re-syncs the moment it lands. See Destinations for the setup.
Scheduled tasks
Source syncs are not the only thing that runs on a clock. Workflows that can run on a schedule, the fact scan among them, live on Scheduled tasks in the sidebar. Each row shows the cadence, the last run, and when the next one is due.
The cadence runs from Manual only through hourly, every 6 hours, daily, and weekly. Pausing a task keeps its cadence, so resuming picks up where it left off. Run now starts a run outside the schedule, and Remove takes the task off the clock entirely, after a confirm.
Connector syncs run on a schedule too, so they are listed here as well, at whatever cadence Sources gave them. Sources stays the natural place to manage a source's cadence next to its connection.
Workflows
Workflows is what Mari did while it worked, in two tabs.
Observed is every run the agent harvested out of a chat turn: the tools it called, the documents it leaned on, and the outcome. Open a run to read the steps in order. A run worth keeping can be codified into a named workflow, which turns the traced steps into something Mari can follow again, or promoted straight into an answer.
Approved answers is the library those promotions land in. An answer carries the run it came from, so you can always read the working behind the wording.
How an approved answer gets served
When a question comes in on a chat destination or a bot, Mari checks the approved answers first. A match is served verbatim and cited as an approved answer rather than sent through retrieval and generation again. Everything else goes to hybrid search over the documents.
An answer is only served this way where the destination has the Approved answers tool enabled, so a chat surface can be scoped to documents alone.
In the background
The server runs a scheduler pass every 30 seconds and starts the sources that are due. A run left behind by an unclean shutdown is marked failed at startup, with a note saying so, rather than blocking its schedule forever. A run that is waiting on review keeps waiting, and if the workflow gained a stage while it waited, the run picks the new stage up instead of starting over.
Dismissing a finished run hides it for you, and it stays hidden across reloads. It does not hide the run from anyone else, and the run itself is kept.
The digest on Home is regenerated from what changed, which makes it the fastest way to find out whether Mari read what you expected it to read.