Contact details, traveller profiles and conversation context stay connected instead of being copied between tools.
One shared record behind every enquiry and trip.
AgencyOS is our modular platform direction for travel businesses that have outgrown disconnected chats, spreadsheets and documents. It connects the work without taking the customer relationship away from the agency.
The journey is the centre—not the software module.
A lead should not become a new spreadsheet row, a separate PDF, an unexplained bank alert and another WhatsApp thread. AgencyOS is designed to keep those moments connected.
The quote, payment schedule, supplier records, documents and tasks point back to the same journey.
Owners can see what changed, who acted and what needs attention next.
From first message to travel-ready trip.
WhatsApp can remain an important conversation channel. The difference is that the enquiry, decisions and follow-up also become structured work the whole team can see.
Explore sample workspaceSee what needs attention without creating another spreadsheet.
The Operational Command Centre turns the agency's existing saved records into a focused view for active pilot members. It helps a team review the current workload; it does not change a record, contact a customer or automate an operational decision.
Review enquiry and quote states derived from the agency's shared records.
See bounded lists of saved follow-ups and operations tasks that may need review.
Compare accepted quote value, recorded payments, refunds and balance within each currency.
Currency groups are never combined. Voided entries are excluded from active totals. Every amount depends on manually entered, unverified records and is not revenue, settlement, a bank balance or an accounting statement.
Return to the matching draft shortcut after each section.
Each existing return now names and focuses its exact section or Check and save shortcut without activating it.
Six fixed return destinations keep each field section and the Check and save area paired with its existing navigator shortcut.
The matching shortcut shows its latest row count, required-value progress and first-missing destination after accepted edits.
Returning focuses the shortcut but never activates it, re-enters a section, runs Check or saves the draft.
Return navigation changes no draft value and saves nothing. Use fictional or masked planning details only; real customer data is not approved.
Check what belongs in every pilot field before saving.
One expandable guide now stays above every signed-in workspace section and separates safe pilot planning inputs from information that must never be entered.
Use only fictional or masked trip planning. Never enter real traveller contact, passport, identity, health or confidential document information.
Use fictional tasks, references and planning amounts. Never enter card, bank, payment, supplier credential, real booking or settlement information.
Use approved pilot teammate account emails and non-sensitive internal defaults. Never paste customer records, supplier logins or confidential documents.
The guide does not inspect, redact, retain or delete entries and adds no API, storage, detection service, analytics or external action. It advances data-handling guidance, but it is not a comprehensive approved data map or go-live approval. The Core Pilot remains not ready for real customer data.
Go directly to the first missing value in any draft section.
Each existing section shortcut now names and focuses its first missing required input when one is present.
Fixed wording identifies the first missing field and current row without repeating entered values, currencies or internal keys.
Labels and stable targets update together after additions, duplication, reordering, removal, Undo and revision-mode changes.
Completed or empty sections still open at their heading, and every other section entry path keeps its established destination.
Section navigation changes no draft value and saves nothing. Use fictional or masked planning details only; real customer data is not approved.
Know where the first-missing shortcut will take you.
The existing shortcut now names its current section, row when relevant, and field before you select it.
Fixed interface wording identifies the exact field without repeating entered titles, notes, currencies or other draft text.
Current row positions update after accepted additions, duplication, reordering, removal, Undo and revision-mode changes.
The same ordered descriptor and stable row key still control the existing explicit focus action and its safety guards.
The label contains no entered value and saves nothing. Use fictional or masked planning details only; real customer data is not approved.
See which draft sections still need required values.
Each existing section shortcut now shows a current filled-of-total required-value summary, while existing entry counts remain unchanged.
Quote details, manual rates, price items, itinerary and the revision-only explanation are grouped by their rendered section.
The section totals use the same descriptors as the overall count and first-missing shortcut across every accepted draft change.
A nonblank value counts as present, not valid. Check draft, Save and server verification keep every existing rule.
The summaries are passive and save nothing. Use fictional or masked planning details only; real customer data is not approved.
Reach the first missing required input without running a check.
One explicit shortcut now connects the current required-value summary with the first empty required input in draft order.
Accepted additions, copies, reordering, removal, Undo and revision mode all update the destination through stable current row keys.
Whitespace is missing, while a nonblank invalid value remains for Check draft and Save to assess through their existing rules.
The shortcut moves focus only after an explicit click. It does not edit, validate, save, request or publish anything.
Use fictional or masked planning details only. This navigation aid is not save approval, and real customer data is not approved.
See required-value progress without mistaking it for validation.
A current filled-of-total summary now reflects the required inputs actually rendered in each unsaved quote draft.
Manual rates, price items, itinerary entries and the revision-only explanation update the count as their required inputs change.
A nonblank value counts as present, not valid. Check draft and Save still apply every format, relationship, timing and range rule.
The summary is derived from the current unsaved draft, repeats no entered wording and creates no saved progress record.
Use fictional or masked planning details only. This progress summary is not save approval, and real customer data is not approved.
See every required quote input before checking.
One visible key and consistent field markers now match the quote draft rules that Check and Save already apply.
Manual-rate value, source and observed time plus every item quantity now use the same clear asterisk convention.
Native required semantics expose the field state without making screen readers repeat each decorative asterisk.
Optional inputs stay optional, and the existing Check, Save and server rules keep their order and exact behavior.
No value is inserted or saved automatically. Use fictional or masked planning details only; real customer data is not approved.
Catch guaranteed calculation-range failures before saving.
Check draft and Save preparation now apply the existing calculation bounds before a request is prepared, without displaying a quote total.
Exact rational conversion and running-subtotal bounds follow the same deterministic arithmetic as the server.
Guidance leads to the first crossing price item, or to markup, service fee or rounding when that later step exceeds the range.
Draft values and valid payloads stay unchanged. Save still performs the authoritative total calculation and final verification.
A range failure stops before clock reads, save evidence or requests. Use fictional or masked planning details only; real customer data is not approved.
Catch expired quotes and future rate times before saving.
Check draft and Save preparation now compare time-bound quote fields after every existing static check passes.
Valid until must be today's UTC date or later.
An Observed at time may be up to exactly five minutes ahead of the sampled current time.
Guidance returns to the exact field without rewriting it. The server independently verifies time again when saving.
The browser time sample is used only for the local check; it is not stored or shared. Use fictional or masked planning details only; real customer data is not approved.
Catch unsupported pricing values before saving.
Check draft now applies the same existing value limits as the server to manual rates, source costs, service fees and rounding choices.
Rates keep up to nine whole and six decimal digits. Source costs and service fees stay within the supported amount range.
Clear guidance and Go to field lead back to the exact rate row, price item, service fee or rounding choice that needs attention.
Your draft is never rewritten automatically. The server still verifies the request and calculates every saved quote total.
Checking does not save or approve a quote. Use fictional or masked planning details only; real customer data is not approved.
See which currency rates your quote uses.
Each manual rate shows how many price items reference its currency. Check draft flags unused rates before you try to save.
Counts follow current price-item currencies as you edit, duplicate or remove entries. They describe references, not rate validity.
Go to field returns to the exact source-currency input. Use that currency for a price item or remove the rate yourself.
Rates are never removed or converted automatically. Existing Undo remains available, and the server still calculates saved totals.
Checking does not save or replace final server verification. Use fictional or masked planning details only; real customer data is not approved.
Catch calendar mistakes before saving.
Check draft now flags impossible expiry dates and invalid itinerary dates, with a shortcut to the exact field that needs attention.
Local checks catch invalid days and months, including leap-year mistakes. Your entered dates are never corrected automatically.
Itinerary dates may stay blank. Repeated dates and your chosen entry order are preserved, without sorting or shifting the plan.
Go to field takes you to the relevant date input. Checking does not save, and the server still verifies expiry when you save.
Calendar checks do not approve quote expiry or rate-observation time. Use fictional or masked planning details only; real customer data is not approved.
Find overlong text before you save.
Check draft now flags titles, summaries, descriptions and notes that exceed the existing saved-text limits, with a shortcut to the exact field.
Local checks compare normalized text with the current save rules. Character counters continue to show the separate input allowance.
Feedback identifies the field or current entry to revise. Go to field takes you there while keeping your draft intact.
Nothing is shortened or rewritten automatically. Check draft does not save; valid text retains its existing save preparation.
Save still verifies server rules and the current quote. Use fictional or masked planning details only; real customer data is not approved.
Catch note-list limits before saving.
Check draft now identifies inclusion and exclusion lists that exceed the existing saved-line limits, with a route back to the right field.
Keep up to 20 distinct non-empty lines, with up to 240 saved-text characters per line. Blank and repeated trimmed lines do not inflate the count.
An overlong-line message names its original line number. Go to field returns directly to Inclusions or Exclusions.
Checks do not shorten or rewrite your draft. Valid notes retain their existing save preparation, and Check never saves a record.
Save still verifies server rules and the current quote. Use fictional or masked planning details only; real customer data is not approved.
See your text allowance while you write.
Quiet character counts beside quote fields help you keep titles, service descriptions, itinerary details and notes within their input allowance.
See current length alongside each allowance, with clear wording when the allowance is reached or an existing value exceeds it.
The summary field now allows 1,000 characters, matching the existing save rule. Existing draft text is never shortened.
Counts do not check or save a quote. Inclusions and exclusions also explain their separate saved-line limits.
Editing, wording review, Undo and Save retain their existing roles. Use fictional or masked planning details only; real customer data is not approved.
Move from wording to editing, and back.
Review a service or itinerary entry, jump to its exact fields, then return directly to the wording you are working on.
Each service and itinerary entry has its own Edit button. Section-level links remain available for broader changes.
Review wording opens the existing review at the matching entry, including after you reorder or duplicate entries.
Navigation preserves search, removal Undo and check guidance. Editing, checking and saving remain separate actions.
This remains an internal unsaved review, not a shareable quote. Use fictional or masked planning details only; real customer data is not approved.
Read the plan together before saving.
Open Review draft wording at Check and save to read your current services, itinerary and client-facing notes in one place.
See accepted edits and entry order immediately. Text and dates stay as entered, with clear placeholders for blank fields.
Edit links lead back to quote details, price items, itinerary or client-facing notes without changing your draft.
Pricing fields, totals and internal revision notes are omitted. Free text is not redacted; this is not a saved or shareable quote.
Opening the review does not check, calculate or save anything. Use fictional or masked planning details only; real customer data is not approved.
Reach Check and Save without the long scroll.
Jump from the draft navigator, a local-check result or a save error to the existing actions at the end of your quote.
Check and save joins the five field-section shortcuts. All entries stay visible and your draft remains unchanged.
Read the local result, then go directly to the actions. Return to Draft sections whenever you need to keep editing.
The shortcut moves focus to a heading. It does not run a check, activate Save or consume your removal Undo.
Local checking and saving remain separate actions. Nothing is sent, booked or charged. Use fictional or masked planning details only; real customer data is not approved.
Bring back a rate removed by mistake.
Manual exchange rates now share the draft's existing Undo flow, so you can recover a removed rate without retyping it.
Recover the currency, value, source and observed time in their original position, including unfinished inputs.
Undo the latest rate, price-item or itinerary removal before your next edit or Save, even after removing the last rate.
Removing a rate leaves price items unchanged. Check and Save still identify a missing rate needed by those items.
Undo changes only the unsaved draft; it does not fetch rates or calculate totals. Use fictional or masked planning details only; real customer data is not approved.
Add an entry and start filling it in.
Adding a rate, price item or itinerary entry now takes you straight to its first useful field, even in a longer draft.
Choose the source currency for a new rate, or enter the title of a new price item or itinerary entry.
Existing entries and search wording stay in place. New rows use the same defaults and limits as before.
Adding is an unsaved edit. It ends the previous removal Undo opportunity and clears local checks so you can review again.
No entry is saved, sent, booked or charged by Add. Use fictional or masked planning details only; real customer data is not approved.
Find the right entry in a longer draft.
Find draft entry searches the quote you are editing, so you can jump straight to a price item or itinerary entry.
Find price-item titles and descriptions, or itinerary titles, locations, details and dates. No saved-record search is involved.
Results show each matching entry once, with its current position and title. Similar titles still lead to separate entries.
Every field stays visible. Search follows your latest draft without changing its contents, Undo opportunity or local check result.
Search text stays in the current editor and is not saved or sent. Use fictional or masked planning details only; real customer data is not approved.
Check your draft without saving it.
Use Check draft to run the existing local input checks while you work. Save remains a separate, explicit action.
Local check failures point to the relevant field or section. The check does not fill in or change any of your entries.
Checking preserves the current removal Undo opportunity. Editing clears the result so you can check the updated draft.
A local pass does not guarantee a save. Save still verifies the current quote, checks server rules and calculates totals.
Nothing is saved by Check draft, and earlier save errors remain visible. Use fictional or masked planning details only; real customer data is not approved.
Go straight to the detail that needs attention.
When a quote fails its existing input checks, the message now offers a shortcut to the relevant field or section.
Read the familiar error message, then choose Go to field or Go to section. Nothing changes or saves automatically.
Rate, price-item and itinerary guidance identifies the entry that failed the check, even when several entries share a title.
An edit clears the shortcut and field marker. Save again to run the existing checks; saved records and recovery rules stay unchanged.
Use fictional or masked planning details only. These shortcuts are not approval to use real customer data, send proposals, book or charge.
Move around longer quotes with less scrolling.
Jump straight to the part of your quote draft you need, from pricing rules and service items to itinerary details and notes.
Section shortcuts focus the relevant heading. Empty sections remain available when you are ready to add their first entry.
Current rate, price-item and itinerary counts follow your edits. They describe entries in the draft, not completed checks or approval.
Each section has a way back to the navigator. Your unsaved details and current Undo removal stay intact; saving remains your choice.
Use fictional or masked planning details only. Navigation sends nothing, books nothing and charges nothing; real customer data remains blocked.
Recover an entry removed by mistake.
Undo your most recent price-item or itinerary removal while you are still working in the same quote draft.
The entry returns to its original position with the same details, costs and dates. Focus follows the restored entry for easy review.
One removal can be undone at a time. A later removal replaces the opportunity; another edit or Save attempt ends it.
Undo only changes the unsaved draft. Existing limits, discard confirmation and save recovery continue to apply.
Use fictional or masked planning details only. Undo sends nothing, books nothing and charges nothing; real customer data remains blocked.
Reuse an entry, then make it your own.
Duplicate a price item or itinerary entry inside your quote draft to prepare similar services or trip details without retyping them.
A separate copy appears immediately after the original. Edit, move or remove the copy independently, with focus following the new entry.
Quantities, source costs and dates are copied exactly. Dates do not advance automatically, and copied price lines count again when saved.
Copies stay in your unsaved draft until you save the quote. Existing item limits, discard confirmation and save recovery still apply.
Use fictional or masked planning details only. Copying sends nothing, books nothing and charges nothing; real customer data remains blocked.
Arrange your quote without retyping it.
Move price items and itinerary entries up or down while you draft a quote, keeping each entry's contents together.
Put services and itinerary entries in the order you want to show. Dates, quantities, currencies and source costs stay unchanged.
Keyboard focus follows the moved entry to its new numbered heading. The first and last entries clearly show when a move is unavailable.
Moves are unsaved edits until you save the quote. Existing save recovery and discard confirmation still apply.
Use fictional or masked planning details only. Reordering sends nothing, books nothing and charges nothing; real customer data remains blocked.
More room for the proposals you are reviewing.
Secondary panel controls now sit inside Review tools and reset, ready when you need them without crowding the main reading path.
Search, revision scope, filters, result counts and navigation stay outside the compact tools panel, including no-result recovery.
Open or close groups of sections and change reviews, or reset the review. The panel summary shows the currently available counts.
Opening or closing the tools leaves your review choices and loaded proposals unchanged. Reset keeps its own tools panel open.
This is a presentation change to existing local controls. It adds no record action, sharing, publication or approval to use real customer data.
Open the shown change reviews together.
Review differences across your loaded proposals without opening each wording, list or entry-review panel separately.
Open every change review in the sections shown by your current search and filters. Each review opens its section too.
Close the inner reviews without closing their sections. Both complete original proposals remain available to read.
Hidden panels, entry filters, search scope and your search-highlight position stay unchanged. Reset remains a separate choice.
Counts describe available review panels, not individual changes or approvals. These local controls change no records and do not approve real customer data.
Start a fresh review of the same two proposals.
Reset proposal review restores the default view without losing your loaded comparison or changing saved records.
Clear search, search both revisions, show all six sections and restore every entry-review row, including rows in previously hidden sections.
Start with section and review panels closed. The comparison stays open, and the search-highlight position and shortcut list are cleared.
Both original proposals, their open and reference roles, and your revision-history choices remain unchanged. No reload is needed.
Reset changes the local review view only. It does not refresh or delete records, publish proposals or approve real customer data.
Jump straight to a section's search matches.
Open the compact Search matches by section list, choose a revision and start at its first highlighted passage in that section.
Each matching section lists the open or reference revision and its highlighted-passage count, following your current search scope.
Jump directly to the first match, including matches in later fields or saved entries. Only the destination section opens.
Previous and Next continue from your new position. Both originals and your existing review filters stay intact.
These shortcuts use already-loaded search highlights. They change no records, make no request and do not approve real customer data.
Search the proposal revision you need.
Find wording in both loaded proposals, only the open revision or only the reference, while keeping both originals available for comparison.
The search selector names the actual open and reference revision numbers. Matching sections and highlights follow your choice.
Both originals stay complete in each shown section. The unsearched side stays unmarked, so you can still compare its wording and saved entries.
Changing scope restarts highlight navigation without clearing your phrase, changed-only choice, section disclosures or entry-review filters.
Search stays within the two already-loaded proposals. It changes no records, makes no request and does not approve real customer data.
Move through proposal search highlights, one passage at a time.
Use Previous and Next to reach matching text in the shown original proposals, without scrolling through every section.
Visit the open revision, then the reference, within each shown section. Only the destination section opens; navigation stops at each end.
See the last-visited position, section and revision. Counts describe highlighted passages; adjacent matches can form one passage.
Return to the search controls from either original proposal. Your section disclosures and entry-review filters stay intact when the search changes.
Navigation uses only already-loaded content. Search highlights are not changes or approval, and real customer data remains blocked.
Check an entry in its original proposal, then return.
Move directly from an entry review to the matching saved position in the loaded reference or open proposal, without searching through long lists.
Matched rows offer both sources. Each shortcut uses the revision side and saved position, so repeated titles do not point to the wrong entry.
Go back to the corresponding review row. If its exact match is hidden, return to the review heading while keeping your filter choice.
Original text, search highlights and saved positions remain intact, including larger entries that are shown without alignment.
These shortcuts move within already-loaded proposals. They make no request, change no records and do not approve real customer data.
Focus on the proposal entries that differ.
Hide exact matches in a service, itinerary, inclusion or exclusion review, while keeping both complete original proposals available.
Start with every row visible. Hide exact matches in one review without changing the others, then uncheck to restore its full saved order.
Clear counts show visible and hidden alignment rows. A matched row can represent entries from both revisions; these are not unique-item totals.
Larger lists and fields still show every source-labelled row. The filter is unavailable when exact alignment has not been performed.
These temporary view choices change no saved proposals and send nothing. Filtering is not approval; real customer data remains blocked.
Compare the service and itinerary details.
Review exact proposal entries from the fixed reference and open revision, with both complete original proposals still available below.
Service descriptions and itinerary details align only when all their proposal fields match. Pricing and internal notes are excluded.
Repeated entries keep their place in each revision. Changed or moved content can appear separately; matching titles do not establish identity.
Larger lists and fields keep every projected entry with source labels, without alignment or a claim that every entry changed.
This optional local comparison is not an editing history or review approval. It changes no saved records, sends nothing and does not permit real customer data.
Review changes to what is included and excluded.
Compare the exact inclusion and exclusion entries in two loaded proposals, with both complete original lists still available below.
Clear labels identify exact wording matches and entries added or removed when comparing the fixed reference with the open revision.
Each entry keeps its saved position in the relevant revision. Repeated wording is preserved and is not treated as a stable item identity.
Larger lists are shown completely with source labels, without entry alignment or a claim that every entry has changed.
This optional local review changes no saved proposals and sends nothing. Real customer data remains blocked.
See what changed in the proposal wording.
Open a focused wording review for a changed client summary or client notes, while keeping both complete saved versions in view.
Underlined additions and struck-through removals show exact wording changes from the fixed reference to the open revision, including case and punctuation.
Clear labels explain the comparison direction. Wording changes stay separate from the yellow search matches in the original proposal text.
Nothing is shortened or rewritten. Larger fields show complete removed and added text with an explanation instead of word-level alignment.
This local review covers client summaries and client notes only. It changes no records, sends nothing and does not approve real customer data.
Move through long proposals without losing your place.
Jump straight to a shown comparison section and return to its place in the section list after reviewing either revision.
A compact index follows your current search and changed-only filter. Choose a section to open it and move to its heading.
Each proposal side includes a return to its own section in the list, including after long service lists and itineraries.
Your search, filter and other open sections stay as they are. No saved wording, selected revision or comparison reference changes.
Navigation stays within the loaded comparison and sends or saves nothing. Real customer data remains blocked.
Spot the matching words inside each proposal.
Search matches now stand out within services, itinerary entries and notes, while both complete proposal sections remain side by side.
Matching words are highlighted inside each searchable field, including displayed service categories and itinerary dates.
Original wording, capitalization and line breaks stay unchanged. Highlights disappear when you clear the search without resetting your other filter.
A highlight identifies search text, not a change between revisions. The existing changed-section labels and revision-match labels keep their meaning.
These local highlights do not change saved proposals, make a request or share content. Real customer data remains blocked.
Find the detail inside the compared proposals.
Search for a service, destination or note within the two loaded proposals. Matching sections keep both revisions side by side for review.
Find a case-insensitive phrase within a content field. Pricing, internal notes, identifiers and other quote history remain outside this search.
Section labels identify a match in the open revision, reference revision or both. The full section stays intact so you can read each proposal in context.
Use search with changed sections only. Clear the query without losing the filter or your opened sections; hidden counts explain each filtering step.
Search is local to this verified comparison pair and resets with a new pair. It makes no request and saves or shares nothing. Real customer data remains blocked.
Open the shown proposal sections together.
Open or close the sections in your current comparison view with one action. Review the content side by side without opening each section separately.
Each control names its section count and respects the changed-only filter. When nothing is shown, both controls are unavailable until you clear the filter.
Hidden unchanged sections keep their open or closed state. Clearing the filter brings them back without resetting your earlier review choices.
Every section can still be opened or closed separately. The controls affect only this comparison, without changing its saved content or revision pair.
These local controls make no request and save, send or share nothing. They do not change Find, history, preview mode or real-customer-data approval.
Focus on the proposal sections that changed.
Filter the saved side-by-side comparison to changed sections, then clear the filter to return to the full view. Your saved proposals stay untouched.
All six sections appear by default. Show changed sections only keeps the existing revision pair and tells you how many unchanged sections are hidden.
Clearing the filter restores sections in their saved order and preserves opened disclosures. A new comparison pair starts with all sections again.
No proposal-content differences does not mean the entire quote is unchanged. Pricing, quantities and internal revision notes remain outside this view.
This local filter makes no extra request and saves or shares nothing. Find, history and preview mode stay unchanged. Real customer data remains blocked.
See what changed beyond the quote total.
After a successful comparison swap, open the saved proposal-content review to compare services, itinerary and notes side by side. No extra request is made.
Review client summary, proposed services, itinerary, inclusions, exclusions and client notes, even when the quote totals have not changed.
Both revision numbers and their ordered content remain visible. Section changes do not imply that individual services or itinerary items were matched.
The retained comparison snapshot excludes source costs, quantities, rates, pricing rules and internal revision notes in both preview modes.
This internal review uses the already-loaded swap pair, not a fresh read. Exact retry keeps the captured source; changing context, reference or revision clears the comparison. Nothing is saved, sent or shared. Real customer data remains blocked.
See both proposals without rebuilding the comparison.
Open your fixed reference's full preview and compare back to the proposal you were reviewing. Your search and chosen preview mode stay in place.
Open reference and compare back exchanges the two loaded revisions only after the requested full detail loads successfully.
The previously open revision becomes the fixed reference. Existing amount, date and status differences reverse, with different currencies kept separate.
A failed load leaves the original pair intact. Exact retry remembers the same two revisions; Find, preview mode and loaded history remain unchanged.
This action is available for fixed-reference comparisons and uses the existing exact-revision read. It saves or sends nothing and adds no endpoint, storage, permission or real-customer-data approval. Real customer data remains blocked.
Compare against the proposal that matters.
Choose an already-loaded revision as your fixed reference, then review other quotes against it. Your search and chosen preview mode stay in place.
Automatic current follows the quote. A numbered reference stays fixed while you open other revisions, including when you review the current quote.
Compare the same five saved summary fields from the open revision to your reference. Different currencies remain separate, with no conversion.
A missing reference stays selected and is marked unavailable. An identical reference asks you to choose another; neither starts a history lookup.
Reference selection is local to the current viewer and enquiry. It makes no request or saved change and adds no endpoint, storage, permission or real-customer-data approval. Real customer data remains blocked.
Review the next matching quote right beside its preview.
Open a newer or earlier shown match without returning to the search list each time. Your search, result page and chosen preview mode stay in place.
Each action names its exact target. Your match position and result page stay visible, and review stops at the first or last match on that page.
One deliberate action opens that revision through the existing checked path, then returns focus to its preview. A failed open can retry the same revision.
No result page changes or earlier-history loads happen automatically. The separate return to loaded Find results remains available when review is absent.
Review uses the current shown matches and existing exact quote requests. It adds no endpoint, storage, schema, write, permission or real-customer-data approval. Real customer data remains blocked.
Move between your search and the open quote.
Go directly from loaded search results to the quote preview already open, then return without losing your place. Your chosen preview mode stays in place too.
A named shortcut leads to the exact open revision, after the comparison and before its pricing or internal client preview.
The return brings you back to the Find status without changing the query, filters or result page, even when the open revision is not a shown match.
Both shortcuts move focus only. They do not reload quotes or history, and they are unavailable while the required preview is missing, loading or being edited.
Navigation uses only the existing loaded quote and Find context. It adds no state, request, endpoint, storage, schema, write, permission or real-customer-data approval. Real customer data remains blocked.
Return to your open quote without losing the search.
Find the exact loaded result for the quote already open, even after browsing to another result page. Your search and filters stay exactly as you left them.
See its exact match position and result page within the filtered, loaded summaries. Revision numbers are not treated as page positions.
One named action shows and focuses that summary. It changes only the local result page when needed, leaving the quote and recovery details untouched.
The interface tells you when filters exclude the open revision or its summary has not been loaded. It does not clear filters or fetch history automatically.
This return uses only the existing loaded summaries and guarded interface focus. It adds no request, endpoint, storage, schema, write, permission or real-customer-data approval. Real customer data remains blocked.
Browse every loaded match, eight at a time.
A long quote search no longer stops at the first eight matches. Move through the results already loaded while keeping your open quote and search context intact.
See the shown match range and result-page position within the loaded search, without implying a complete history total.
Previous and next result pages change only the shown list. Opening a quote or loading earlier history remains a separate deliberate action.
Paging preserves filters, the open quote and recovery context. Changed filters and successful history replacement start at page one; earlier append does not.
Result pages use only summaries already loaded in this browser. They add no request, endpoint, storage, schema, write, permission or real-customer-data approval. Real customer data remains blocked.
Review matching quotes without losing your place.
Move between matching saved quotes with your search, filters and loaded history intact. Each step names the exact revision it will open.
See your position among the matches currently shown, not an all-history total. Review stops at either end of the bounded result list.
Open the adjacent newer or earlier match through the existing guarded detail path. Nothing opens or loads in the background.
Successful Find opens and their exact retries return focus to the confirmed review position, with the Find status as a fallback.
Review navigation uses only the first eight shown matches and appears when at least two are shown and the open revision is among them. It adds no endpoint, automatic request, storage, schema, write, permission or real-customer-data approval.
Retry the exact saved revision without losing your review.
A failed saved-revision open now keeps one clearly named recovery path for that exact revision while loaded history and Find context remain in place.
The alert and retry action identify the revision that did not open.
Retry reuses the existing exact-detail path once without refreshing history or starting an automatic attempt.
Progress receives focus and is announced, repeat failure returns to the alert, and verified success returns focus to the loaded revision selector.
Exact revision retry preserves the previously open quote, loaded summaries, Find filters and comparison until a verified response arrives. It adds no endpoint, schema, storage, write, permission, message, booking, payment or real-customer-data approval.
Continue a loaded-only search one bounded page at a time.
An active quote revision Find can now deliberately add one earlier summary page without losing its query, filters, open quote or comparison context.
The existing guarded cursor path appends one bounded earlier page per click.
The query, filters, previously loaded results and selected revision remain in place while the loaded result set expands.
The continuation action keeps focus while another page remains; the Find status receives focus when continuation ends, while retry keeps the exact cursor.
Find continuation never scans automatically and disappears at the eight-result cap. It adds no endpoint, schema, storage, write, permission, message, booking, payment or real-customer-data approval.
Continue a comparison from exactly where it becomes incomplete.
A missing-current comparison now offers one deliberate earlier-page step beside the comparison, without losing the historical quote or loaded-only Find context.
The existing guarded cursor path appends one bounded earlier page per click.
The open historical revision, Find filters and loaded summaries are preserved.
Focus returns to the ready comparison, the next step or the honest end state.
Comparison continuation never scans automatically and adds no endpoint, schema, storage, write, permission, message, booking, payment or real-customer-data approval.
See the commercial movement between two loaded quote revisions.
A ready loaded comparison now states exact selected-to-current movement for the quote total, valid-until date and lifecycle status without opening another record.
Same-currency totals show higher, lower or unchanged from saved minor units.
A currency change is named, but no amount is converted or subtracted.
Whole calendar days and the selected-to-current status transition stay explicit.
Decision deltas use only two summaries already loaded in the browser. Expiry remains a point-in-time state. The release adds no request, endpoint, storage, schema, write, conversion source, permission or real-customer-data approval.
Find the right revision inside the history already loaded.
Operational users can now combine one bounded local search with fixed status and validity filters before deliberately opening a matching loaded revision.
Matches and counts cover only summaries already present in the browser.
Status and validity choices compose with revision, title, date and total search.
Every result reuses the existing exact-detail and unsaved-work protections.
Find & Open is transient and viewer-local. It adds no automatic page load, endpoint, storage, schema, write, message, booking, payment, permission or real-customer-data approval.
Compare a loaded historical quote with the current revision.
A read-only panel now turns the bounded summaries already loaded in the browser into a clear five-field comparison before an operational user returns to the current quote.
Title, status, total and currency, validity date and expiry are compared.
Every field names both revisions and makes its comparison result explicit.
An earlier-page summary must be loaded deliberately; no comparison read starts automatically.
The comparison is viewer-local and read-only. It adds no endpoint, storage, schema, write, message, booking, payment, permission or real-customer-data approval.
Preview every approval phase before returning.
The existing Back to approval sequence description now previews the complete phase order, including the two middle phases between Define and Approve.
The visible description states Define → Control → Operate → Approve.
The preview joins the four established ordered phase labels.
Routes, positions, statuses, evidence and approvals remain unchanged.
The visible description creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know where the approval sequence ends.
The existing Back to approval sequence description now names the final phase and its exact register range before the user returns.
The visible description states Ends with Approve.
The same line states Gate 7 of 7 from the final phase entry.
Routes, positions, statuses, evidence and approvals remain unchanged.
The visible description creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know where the approval sequence begins.
The existing Back to approval sequence description now names the first phase and its exact register range before the user returns.
The visible description states Starts with Define.
The same line states Gates 1–2 of 7 from the first phase entry.
Routes, positions, statuses, evidence and approvals remain unchanged.
The visible description creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See the sequence size before returning.
The existing Back to approval sequence route now names its fixed destination as four approval phases and seven gates.
The visible route context states 4 approval phases and 7 gates.
Both values come from the established phase and gate collections.
Routes, positions, statuses, evidence and approvals remain unchanged.
The visible description creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Return to the approval sequence after reviewing status.
The named gate status guide now includes one native route to the existing approval sequence below, completing the reciprocal path between both explanations.
The fixed Back to approval sequence label moves without script or new state.
Header clearance and a target outline keep the sequence visible.
Routes, positions, statuses, evidence and approvals remain unchanged.
The native link creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Return directly to the gate status guide.
The approval-sequence Status definition now includes one native link back to the existing named guide that explains every fixed gate status.
The fixed Review status guide label moves without script or new state.
Header clearance and a target outline keep the destination visible.
Routes, positions, statuses, evidence and approvals remain unchanged.
The native link creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Separate gate status from every sequence position.
The approval-sequence guide now explains that Status means a gate's current evidence and approval state, as defined in the existing status guide above.
Status now separates current review state from every position label.
All seven sequence destinations keep the same shared accessible explanation.
Routes, positions, statuses, evidence and approvals remain unchanged.
The added definition creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Define full-register position before comparing phase and gate positions.
The approval-sequence guide now explains that Register position means where a destination or phase range sits in the fixed seven-gate readiness register.
Register position now separates full-register context from phase context.
All seven sequence destinations keep the same shared accessible explanation.
Routes, positions, statuses, evidence and approvals remain unchanged.
The added definition creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Define approval-phase position before comparing gate positions.
The approval-sequence guide now explains that Approval phase means where a phase sits in the fixed four-phase approval sequence.
Approval phase now sits beside Phase gate, Remaining gate and Position meaning.
All seven sequence destinations keep the same shared accessible explanation.
Routes, positions, statuses, evidence and approvals remain unchanged.
The added definition creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep every approval-sequence gate inside its parent phase.
The three continuing gate links now show Phase N of 4 beside their established global position, within-phase position, remaining position and status.
Each continuing destination now names its parent phase's sequence position.
Phase-start and continuing links now share the same four-phase orientation.
Routes, positions, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep the parent approval phase visible while moving gate to gate.
All 12 previous-gate and next-gate links now show Phase N of 4 beside their established named phase, global gate position, within-phase position and status.
Every adjacent destination now names its parent phase's sequence position.
Each visible and accessible value comes from the same four approval phases.
Routes, directions, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See the parent approval phase in every status-matched gate.
All seven status-grouped Matching gates links now show Phase N of 4 beside their established named phase, global gate position, within-phase position and status.
Every status-matched destination now names its parent phase's sequence position.
Each visible and accessible value comes from the same four approval phases.
Routes, counts, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See the parent approval phase before jumping to a gate.
All seven gate-index links now show Phase N of 4 beside their established named phase, global gate position, within-phase position and status.
Every Jump to gate destination now names its parent phase's sequence position.
Each visible and accessible value comes from the same four approval phases.
Routes, gate positions, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep the parent approval phase visible inside every gate.
All seven detailed gates now show Phase N of 4 beside their established named phase, global gate position and within-phase gate position.
Every detailed gate now names its parent phase's place in the sequence.
Each value comes from the same four approval phases used by the overview.
Gate positions, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know exactly where each approval phase sits in the sequence.
Define, Control, Operate and Approve now show Phase N of 4 beside their established full-register gate ranges.
Each phase card now names its exact place in the approval sequence.
The visible position and exact accessible name share one derived value.
Ranges, routes, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See every approval phase inside the full readiness register.
Define, Control, Operate and Approve now show their exact Gate N–N of 7 or Gate N of 7 range from the same fixed phase groups that supply their destinations.
Every phase range now names its first and last place in the seven-gate register.
Singular and plural ranges come from the established phase records.
Routes, positions, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Follow every approval-sequence destination in the full register.
Every phase-start and continuing-gate destination now carries its exact Gate N of 7 position beside the established phase and remaining-gate positions.
All seven approval-sequence destinations now show their full-register place.
Every visible cue and exact accessible name uses the same register position.
Routes, phases, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep each adjacent gate's full-register position in view.
Every previous-gate and next-gate destination now carries its exact Gate N of 7 position beside the established title, phase position and current status.
Each previous and next destination now shows its place across all seven gates.
The visible direction label and exact accessible name use the same position.
Routes, phases, statuses, evidence and approvals remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See every matching gate's place in the full register.
Every status-grouped Matching gates destination now carries its exact Gate N of 7 position beside the established title, phase position and current status.
Each matching destination now shows its position across all seven gates.
Visible and accessible destination context use the same derived total.
All status groups, destinations and approval decisions remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See every gate's place in the full register before jumping.
Every Jump to gate destination now carries its exact Gate N of 7 position beside the established title, phase position and current status.
Each fixed destination now shows its position across all seven gates.
Visible and accessible destination context use the same derived total.
All seven destinations, statuses and approval decisions remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep phase position visible while moving gate to gate.
Every previous-gate and next-gate destination now carries its exact position within the full phase beside the established phase name and current status.
All six previous and six next destinations now show Phase gate position.
Visible and accessible destination context use the same derived position.
All 12 destinations, statuses and approval decisions remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See each matching gate's position inside its phase.
Every status-grouped readiness destination now carries its exact position within the full phase beside the established phase name and current status.
Each Matching gates destination now shows its Phase gate position.
Visible and accessible destination context use the same derived position.
All seven destinations, statuses and approval decisions remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know each gate's phase position before jumping.
Every compact readiness destination now carries its exact position within the full phase beside the established phase name and current status.
Each Jump to gate destination now shows its Phase gate position.
Visible and accessible destination context use the same derived position.
All seven destinations, statuses and approval decisions remain unchanged.
The added orientation creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep phase position visible inside every gate.
Each detailed readiness gate now carries its exact position within the full phase beside the established phase name.
Every detailed gate now shows its exact Phase gate position.
The established Gate N of 7 label stays visible and unchanged.
All seven routes, statuses, records and approval decisions remain unchanged.
The added context creates no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See where every readiness destination sits.
Later gate destinations now show their position within the full phase as well as their order within the remaining list.
Each later destination now includes its exact Phase gate position.
The established Remaining gate position stays visible beside it.
All seven routes, labels, statuses and gate records remain unchanged.
The position clarification adds no review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Scan every readiness position meaning.
The existing position guide now presents each fixed term and meaning as a concise semantic definition.
Phase gate, Remaining gate and Position meaning are clearly separated.
Each term keeps one concise explanation of its established scope.
Every start and continuing destination remains unchanged.
The definitions add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Understand what each readiness position means.
One visible guide now explains the scope of both established position labels in the approval sequence.
Shows where a starting destination sits within its full fixed phase.
Shows the order of later destinations listed for that phase.
A position is register order, not completion or approval.
The guide adds no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See where every phase begins.
Every approval-phase start destination now shows its exact place within the full fixed phase group.
Define starts at phase gate 1 of 2, while Control starts at 1 of 3.
Operate and Approve each identify their start as phase gate 1 of 1.
Visible and accessible positions use the same fixed phase-group count.
The positions add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See where each remaining gate sits.
Every continuing-gate destination now shows its exact place within the fixed remaining sequence for its Define or Control phase.
Gate 2 is the first and only remaining Define gate.
Gates 4 and 5 are shown as the first and second of two remaining gates.
Visible and accessible positions use the same fixed group index and length.
The positions add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know how many gates remain before continuing.
Each multi-gate continuation heading now pairs its fixed Define or Control phase name with the exact number of later gates in that phase.
Define shows one remaining gate and Control shows two.
One derived label uses gate or gates to match the fixed count.
The three continuing destinations remain Gates 2, 4 and 5.
The counts add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Keep each continuing gate attached to its phase.
The two multi-gate continuation panels now visibly name Define or Control instead of relying on one generic phase heading.
Each continuation heading states the exact phase it belongs to.
The visible heading and accessible panel name use the same phase wording.
Three continuing routes still cover Gates 2, 4 and 5 exactly once.
The labels add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See the exact gate before starting a readiness phase.
Every approval-phase start card now names its first gate beneath the established gate number, phase range and current Status.
Each start cue shows the exact title of the gate it opens.
The visible title and exact accessible name use the same fixed gate record.
Four start routes and three continuing routes still cover all seven gates.
The titles add no route, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Move directly to every gate in a readiness phase.
Each approval-phase start card now names its starting gate's current Status. Multi-gate phases also expose their remaining gates directly beneath that card.
Every phase card names the current status of the gate it opens first.
Define and Control provide direct status-labelled routes to their later gates.
Four start routes and three continuing routes cover all seven fixed gates.
The links add no gate, review action, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Know the next gate's phase before moving.
Previous-gate and next-gate controls now pair the destination's fixed Phase with its current Status beneath the established number and title.
Backward review names the preceding gate's place in the approval sequence.
Forward review names the following gate's place in the approval sequence.
Visible Phase and Status fields match each exact accessible destination name.
The labels add no route, script, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See each matching gate's full readiness context.
Every Matching gates destination now names its fixed Phase and current Status beneath the established gate number and title.
Each destination identifies its Define, Control, Operate or Approve phase.
Each destination repeats its current shared In progress or Open status.
Visible metadata and exact accessible names use the same field wording.
The labels add no route, script, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
See an adjacent gate's status before moving.
Previous-gate and next-gate controls now show the destination's current Status beside its established number and title.
Backward review shows the preceding gate's current shared status value.
Forward review shows the following gate's current shared status value.
Visible status and exact accessible destination names use the same field wording.
The labels add no route, script, request, persistence, permission or approval. The Core Pilot remains not ready for real customer data.
Read every detailed gate with the same field names.
Every gate header now visibly prefixes its shared phase and linked status values, matching the established readiness-index wording.
Each gate names Phase before its Define, Control, Operate or Approve value.
Each definition route names Status before its current In progress or Open value.
Gate headers, definition links and index destinations now share field wording.
The labels add no script, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Scan each gate's phase and status without guessing.
Every readiness-index destination now visibly prefixes its shared values with Phase and Status, and its accessible name follows the same wording.
Each destination names Phase before its Define, Control, Operate or Approve value.
Each destination names Status before its current In progress or Open value.
Visible metadata and exact accessible names now use the same field wording.
The labels add no script, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Know what phase and status mean before choosing a gate.
The readiness index now explains that phase shows sequence position, while status shows the gate's current evidence and approval state.
Phase places each gate within Define, Control, Operate or Approve.
Status reports the existing evidence and approval condition for that gate.
The explanation orients a review; it does not evaluate or approve a gate.
The guide adds no script, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
See each gate's phase before you jump.
Every readiness-index destination now pairs its current status with the same Define, Control, Operate or Approve phase used throughout the register.
Each fixed gate destination now names the phase that opens at that route.
Accessible names retain gate and status details while adding the shared phase.
The compact labels add orientation without changing navigation or approval.
Index phase labels add no script, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Keep phase context visible inside every gate.
Each gate now carries the same Define, Control, Operate or Approve language used by the existing approval sequence.
Every fixed gate header now identifies its current approval phase.
The sequence overview and gate detail derive from the same fixed labels.
A phase label provides orientation; it does not approve or skip a gate.
Gate-phase labels add no script, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Start each readiness phase at its first gate.
The existing Define, Control, Operate and Approve sequence cards now open the exact first gate in that phase.
Each fixed sequence card is now one direct native route into the register.
Every link names the phase, gate range, first gate number and gate title.
Opening a phase starts review; it does not skip or approve any gate.
Phase links add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Move from every gate back to its status definition.
Each fixed gate header now provides one direct route to the definition behind its current public status.
Every current gate links to its matching established status definition.
The gate header names the destination before the native fragment link is used.
The links preserve three In progress gates, four Open gates and zero Approved.
Gate-status links add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Move from a status definition to every matching gate.
Non-empty status cards now identify and open the exact gates behind their shared current count.
Every current gate appears once beneath its matching fixed status definition.
Each native link shows the established gate number and destination title.
The zero-count Approved definition remains count-only.
Matching-gate links add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Keep the current gate total with every status definition.
Each fixed definition now repeats its current aggregate from the same seven-gate register used by the summary.
Definition counts reuse the same In progress, Open and Approved totals.
Each selected card confirms its current gate count beside the status label.
The register still reports zero of seven gates approved.
Definition counts add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Return to the blocked decision after any status definition.
Every fixed status definition now provides a nearby native route back to the unchanged readiness summary.
In progress, Open and Approved each end with the same clear return cue.
Each accessible name identifies the status definition the reader is leaving.
Every link returns to the summary showing zero of seven gates approved.
Return links add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Move from each status count to its definition.
Every readiness summary count now identifies and opens the matching fixed status definition without changing the register decision.
Each count includes one visible Definition cue and an exact accessible name.
Native fragments land on the same In progress, Open and Approved guide cards.
The register still reports zero of seven gates approved.
Definition links add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Know what every readiness status means.
A fixed guide now explains In progress, Open and Approved without changing any gate or mistaking evidence for approval.
Evidence is advancing, but the stated pass condition remains unmet.
Required work remains and no gate approval has been recorded.
The pass condition and accountable approval must both be recorded.
The status guide adds no gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Keep your place in the seven-gate review.
Every gate card now names its exact position in the complete review beneath the existing two-digit marker.
Each card shows Gate N of 7 before its established status and title.
The label reuses the mapped gate number and the seven-record register length.
The register still reports zero of seven gates approved.
Position labels add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Know every gate before you jump.
The seven-link readiness index now shows each destination's gate number, title and current status instead of asking readers to remember numbered circles.
Every index link shows its established gate number, title and status.
Seven wide-screen columns reflow to four and then two as space narrows.
The register still reports zero of seven gates approved.
Visible index details add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
See each gate destination before moving.
Every previous- and next-gate control now pairs its direction and gate number with the visible title of the exact gate it opens.
All twelve adjacent-gate controls show the title beneath their gate number.
Each control still names and opens the same fixed preceding or following gate.
The register still reports zero of seven gates approved.
Visible destination labels add no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
See exactly where each readiness link lands.
The readiness summary and every gate card now receive one clear static outline when native fragment navigation makes that section the current destination.
The same amber outline identifies the summary and all seven gate cards.
The offset outline changes no border, spacing or content position.
The register still reports zero of seven gates approved.
Destination highlighting adds no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Move backward without leaving the seven-gate review.
Gates 2 through 7 now provide one native route to the immediately preceding gate, completing the existing summary and forward review paths.
Each link names the preceding fixed gate number, title and current status.
Gate 1 remains the start with no circular previous-gate route.
The register still reports zero of seven gates approved.
Previous-gate navigation adds no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Continue directly through the seven-gate review.
Gates 1 through 6 now provide one native route to the immediately following gate, while every gate keeps its existing return to the readiness summary.
Each link names the following fixed gate number, title and current status.
Gate 7 remains the final decision with no circular next-gate route.
The register still reports zero of seven gates approved.
Sequential navigation adds no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Return to the readiness decision after every gate.
Each long gate now ends with one clear native link back to the fixed readiness summary, keeping review navigation close to the evidence just read.
Every link names its originating gate number and established title.
All seven links return to the same summary with sticky-header clearance.
The register still reports zero of seven gates approved.
Return navigation adds no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Keep every selected gate below the site header.
Each readiness jump now leaves enough fixed space above its destination for the sticky public header, so the selected gate starts fully in view.
Every gate uses one 100-pixel anchor clearance above its existing card.
All seven links, labels, order and fragment destinations stay fixed.
The register still reports zero of seven gates approved.
Anchor clearance adds no script, gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Hear every gate name and status before jumping.
Each compact numbered readiness link now carries its exact gate title and current status while preserving the existing destination.
Every link names its fixed number, established title and current status.
Visible numbers, gate order, fragment targets and responsive controls stay fixed.
The register still reports zero of seven gates approved.
Navigation labels add no gate state, request, persistence, data field, permission or approval. The Core Pilot remains not ready for real customer data.
Expose the exact destination behind every return action.
Each existing Back to export controls action now carries the same fixed controls heading destination that it already scrolls to and focuses.
Records, Accountability and Lifecycle evidence all reference one fixed heading.
Exact labels, group visibility, scrolling, focus and active scope stay unchanged.
Filters, results, cards, files and all 17 owner downloads remain unchanged.
Destination association adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the current catalogue context when navigating by centre region.
The Owner Export Centre region now carries its existing visible result count and, when filtered, the fixed active scope that produced those results.
The existing shown-of-total owner-download count describes every centre scope.
Purpose, File format and Quick Find state are included without entered text.
The disclosure, controls, results, cards and all 17 downloads stay unchanged.
Centre region context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear complete context when navigating by result region.
Each owner export result region now carries its existing visible group context and, when filtered, the fixed active scope that produced those results.
The existing group label, shown-of-total count and summary describe the region.
Purpose, File format and Quick Find state are included without entered text.
Region names, visibility, shortcuts, cards and all 17 downloads stay unchanged.
Group region context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the active scope after jumping to a result group.
When the catalogue is filtered, each focused group heading now also carries the existing visible fixed scope summary that produced its shown results.
The active scope is included only while at least one catalogue filter is active.
Purpose, File format and Quick Find state are named without repeating query text.
All three shortcuts retain their existing visible target and focus behaviour.
Group destination scope context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the complete group context after jumping.
Each focused Records, Accountability and Lifecycle destination now carries the existing visible group label, shown count and summary already beside it.
The destination keeps the fixed Records, Accountability or Lifecycle identity.
Its existing shown-of-total badge provides the same local result context.
The visible coverage sentence completes orientation without adding new copy.
Group destination context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear how many downloads remain shown after returning.
The focused controls heading now also carries the existing visible shown-of-total result count in every catalogue scope.
The return destination includes the existing x-of-17 owner-download count.
Unfiltered and filtered catalogues receive the same fixed count context.
The existing visible count is reused without adding another live announcement.
Return count context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the active scope after returning to export controls.
When the catalogue is filtered, the focused controls heading now also carries the visible fixed scope summary the owner was reviewing.
The fixed scope summary is included only while at least one filter is active.
Purpose, File format and Quick Find state are named without repeating query text.
All three actions keep the same heading target and preserve every selection.
Return scope context adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the existing guidance after returning to export controls.
The focused controls heading now carries the two visible orientation paragraphs already shown beneath it, so the return destination keeps its full context.
All three return actions still focus the same fixed catalogue heading.
Catalogue-use and file-boundary copy remain visible and unchanged.
Purpose, File format and Quick Find remain exactly as the owner left them.
Destination guidance adds no copy, state, live announcement, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know which result group you are leaving.
Every return-to-controls button now names its fixed originating result group in visible text, matching the established accessible name.
Records, Accountability and Lifecycle evidence are named without abbreviation.
Sighted and assistive-technology users receive the same exact button wording.
Each action still focuses the catalogue heading and preserves every filter.
Exact return labels add no state, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know the exact scope before jumping to a result group.
Group-navigation help now names the active Purpose, File format and Quick Find state instead of referring only to the results currently shown.
All 24 fixed scope combinations use their established display labels.
Quick Find stays Active or Not used; entered search text is never repeated.
Shortcut visibility, counts, targets and keyboard focus remain unchanged.
Exact navigation guidance adds no state, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear the exact scope in every live export count.
The polite shown-of-scope count now names the active Purpose, File format and Quick Find state instead of compressing that context.
All 24 fixed scope combinations use their established display labels.
The scope total stays separate from the Quick Find result count.
Only Active or Not used is announced; entered search text stays excluded.
Exact live context adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name every active filter in empty-result recovery.
Recovery guidance now names the active Purpose, File format and/or Quick Find while retaining the exact active-filter count.
One, two or three active dimensions are listed in fixed control order.
Quick Find is named without repeating the entered search text.
All four actions, their associations and the polite status stay intact.
Exact fixed guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact filters behind an empty owner-download result.
A filter-only empty heading now names the active Purpose and File format instead of referring generically to those filters.
The heading names both fixed selections behind the empty result.
Search-only and scoped-search empty headings remain unchanged.
Live status, count guidance and all four recovery actions stay intact.
Exact fixed context adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact scope behind an empty owner-download search.
An empty search heading now names the active Purpose and File format instead of a generic selected-scope reference.
The heading names both fixed selections constraining the empty search.
The entered Quick Find text remains excluded from the heading.
Live status, count guidance and all four recovery actions stay intact.
Exact fixed context adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact scope represented by the owner-download results.
Results help now names the active Purpose, File format and whether Quick Find is active instead of referring generically to current choices.
The visible help names both fixed selections shaping the current results.
Quick Find is shown only as Active or Not used; entered text stays excluded.
Counts, cards, recovery, availability and downloads remain unchanged.
Exact fixed guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact scope constraining every Quick Find result.
Quick Find help now names the active Purpose and File format instead of a generic selected-scope reference.
The visible help names both fixed selections constraining current results.
Entered Quick Find text remains only in the existing search field.
Clearing Quick Find restores the exact named Purpose and format scope.
Exact fixed guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact scope behind every visible Quick Pick count.
Quick Picks help now names the active Purpose and File format instead of a generic selected-scope reference.
The visible help names the active fixed Purpose behind each count.
The same help names All formats, CSV or JSON as the active format.
The unavailable and active zero-count explanation remains intact.
Exact fixed guidance exposes no entered query or record content and adds no state, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Explain why zero-count Quick Picks are unavailable.
The visible Quick Picks help now names both the unavailable state and its active clearing exception.
A 0-count unselected pick is unavailable within the selected fixed scope.
An active pick remains available at 0 so it can still be cleared.
Counts, pressed states, focus return, filtering and downloads stay intact.
Quick Pick guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Explain why zero-count filter choices stay available.
Both reciprocal filter-help lines now explain the established zero-result path.
A 0-count Purpose remains available so File format can still be adjusted.
A 0-count File format remains available so Purpose can still be adjusted.
Existing empty-result guidance and every recovery action stay intact.
Zero-count guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact selection behind every filter count.
Purpose help now names the active File format, while File format help names the active Purpose.
Purpose guidance names All formats, CSV or JSON.
File format guidance names the active fixed Purpose label.
Every count, filter, result, recovery path and download stays intact.
Exact reciprocal context adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Explain what scopes every filter count.
Purpose and File format help now name the other fixed selection that scopes each contextual count.
Visible help states that Purpose counts reflect the selected File format.
Visible help states that File format counts reflect the selected Purpose.
Every fixed choice, count, action, result and download stays intact.
Reciprocal guidance adds no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep every Purpose count inside the selected file format.
Purpose choices now show how many downloads remain inside All formats, CSV or JSON.
Every visible Purpose count responds to the active File format.
Accessible labels name the same fixed format that scopes each count.
All four Purpose actions, result filters and recovery paths stay intact.
Contextual counts add no state, live region, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact scope in every Quick Pick count.
Each Quick Pick now identifies the fixed Purpose and File format that scope its contextual match count.
Accessible counts use the current fixed Purpose label.
Each count also names All formats, CSV or JSON.
Visible labels, counts, states, handlers, filtering and results stay intact.
The scope context adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the exact purpose in every file-format count.
Each file-format option now identifies whether its count applies to all downloads, Records, Accountability or Lifecycle evidence.
Accessible counts use the current fixed Purpose label instead of a generic cue.
All three format totals still derive from the same selected-purpose catalogue.
Visible labels, pressed states, handlers, filtering and results stay intact.
The purpose context adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Use the full file-format name on every matching clear action.
Both selected-format clear actions now say Clear file format, matching the fixed filter heading and active-scope summary.
Active-scope adjustment and empty recovery use the same exact wording.
Each action still names the same selected CSV or JSON value.
Conditions, handlers, focus return, reset-all recovery and results stay intact.
The clear-label alignment adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Use one exact file-format label across the export scope.
The active owner export scope summary now says File format, matching the fixed filter heading already used throughout the export centre.
The filter heading and active scope use the same exact visible term.
Adjustment and empty-recovery controls retain the same scope summary.
Selected values, clear actions, reset-all recovery and focus return stay intact.
The label alignment adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep empty recovery connected to the current filter scope.
Zero-result recovery now shares its result guidance and the fixed Purpose, File format and Quick Find selections already visible above it.
Recovery controls now identify both the empty result and its active scope.
Quick Find remains only Active or Not used; entered text is never repeated.
Clear actions, reset-all recovery, focus return and announcements stay intact.
The association reuses existing stable identifiers and adds no visible copy, state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep filter adjustments connected to the current scope.
The active-filter adjustment group is now described by both its visible scope title and the fixed Purpose, File format and Quick Find selection summary beside it.
Visible and assistive context now identify the same current selections.
Quick Find remains only Active or Not used; entered text is never repeated.
All individual clear actions, reset-all recovery and focus return stay intact.
The association adds one stable summary identifier and no visible copy, state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep recovery controls connected to their visible guidance.
The empty-result action group is now described by both its result heading and the exact count-aware recovery instruction already shown beside it.
Visible and assistive guidance now identify the same recovery path.
The existing one-, two- or three-filter wording describes the action group.
The established polite empty-result announcement remains unchanged.
The association adds one stable instruction identifier and no visible copy, state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name how many active filters can restore owner downloads.
Zero-result recovery now uses singular guidance for one active filter and names the exact count when Purpose, File format or Quick Find filters are combined.
The recovery message uses clear singular wording.
Two or three active filters receive their exact local count.
Whitespace-only Quick Find input is not counted as an active filter.
The wording derives only from existing local filter state and never repeats entered text. It adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Show the inline clear action only for an effective query.
The search-area clear button now follows the same existing normalized query state as the catalogue scope and recovery actions.
No inactive-search clear action appears beside an unchanged catalogue.
The existing Clear Quick Find action remains immediately available.
All clear surfaces now follow the same effective-query boolean.
The alignment reuses existing normalization, matching, handler and focus behavior. It adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Use one exact Quick Find clear label everywhere.
The inline search, active scope and zero-result recovery now use the same fixed “Clear Quick Find” action name.
The search-area button now uses the shared capitalization.
Its programmatic name now matches the complete visible label.
The same exact fixed name remains available without query text.
The clarification changes only fixed labels. It adds no state, live region, control, handler, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name the fixed selection each clear action removes.
Purpose and File format clear actions now show their exact fixed selection in the active scope summary and zero-result recovery.
Owners can see the fixed purpose or format before clearing it.
Each programmatic name matches the complete visible action label.
Quick Find keeps its fixed label and never repeats entered text.
The clarification reuses existing fixed labels, conditions, handlers and focus return. It adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Explain where an empty Quick Find was evaluated.
An empty search now distinguishes the full fixed catalogue from a search constrained by the selected Purpose or File format.
Search-only recovery keeps its familiar exact heading.
Combined search and scope filters now name that boundary directly.
The heading never repeats entered Quick Find content.
The clarification uses only existing local filter state. It adds no saved state, live region, control, handler, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep every visible group count self-contained.
The Records, Accountability and Lifecycle evidence badges now name owner downloads directly instead of showing an unexplained count fragment.
Each badge now reads as a complete shown-of-total download count.
The same catalogue-derived visible and group totals remain in use.
Existing detailed accessible descriptions retain each group name.
This is a visible wording clarification only. It adds no state, live region, control, handler, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Name what every result-group shortcut counts.
Existing jump-button descriptions now say one download shown or multiple downloads shown instead of leaving the counted item unstated.
A one-result group receives an exact singular shortcut description.
Larger visible groups retain the familiar plural noun.
Every shortcut keeps its existing visible count and focus target.
The noun derives only from the existing local visible-group count. The change adds no state, live region, control, handler, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep every owner-export count grammatically exact.
Existing button descriptions and the polite scope status now use the correct noun for one download, one match, zero items and multiple items.
Single-item format scopes no longer describe themselves as downloads.
Quick Picks use the singular noun when the fixed catalogue finds one item.
Every other existing count keeps the familiar plural wording.
The noun derives only from the existing local catalogue count. The change adds no state, live region, control, handler, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep the result count clear wherever owners encounter it.
The existing shown-of-total badge now names the fixed owner-download catalogue in its visible wording and in the description of the result region.
The badge identifies both the shown count and what those results represent.
Purpose, format and search choices still derive one unchanged catalogue result.
Quick Find keeps the count update; availability and empty results stay separate.
The fixed wording reuses the existing badge, count and result-region description. It adds no state, live region, handler, request, record count, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Explain every download state where owners review results.
The existing results help now explains ready, paused, preparing, confirmed, failed and interaction states before an owner chooses a download.
Owners can distinguish an available file from one paused by current work.
Warm preparation and green or red outcomes are explained in the same guide.
Hover, press and keyboard focus identify only the action currently in use.
The fixed copy extends only the existing results help and adds no state, live region, control, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep every available download clear across its whole card.
Every existing owner-download card now receives one restrained ready context while its unchanged non-busy download action is enabled.
A subtle green-teal surface keeps each available download easy to identify.
File-format and data-coverage labels share the same available state.
Result, interaction, paused and preparing treatments retain their priority.
The treatment derives only from the existing card, labels, non-busy wrapper and enabled action state and changes no label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep file preparation clear across its whole card.
Every existing owner-download card now receives one restrained warm context while its unchanged file-preparation state is active.
A warm surface keeps the download currently being prepared easy to identify.
File-format and data-coverage labels share the same active preparing state.
The disabled action, Preparing label, wait cursor and focus ring remain.
The treatment derives only from the existing card, labels and busy wrapper state and changes no progress rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep a failed download clear across its whole card.
Every existing owner-download card now receives one restrained failure context whenever its unchanged complete local alert is active.
A calm red-tinted surface keeps the affected download easy to identify.
File-format and data-coverage labels share the same failed state.
The complete alert, exact retry cue and established interaction feedback remain.
The treatment derives only from the existing card, labels and local live-region error state and changes no alert, retry action, rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep a confirmed download visible across its whole card.
Every existing owner-download card now receives one restrained success context after its validated browser file handoff completes.
A calm green-teal surface keeps the completed download easy to identify.
File-format and data-coverage labels share the same confirmed state.
Hover, active press and visible keyboard focus keep their established cues.
The treatment derives only from the existing card, labels and local live-region success state and changes no confirmation, action rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep the whole download card connected to active press.
Every existing owner-download card now receives one restrained matching context while its enabled action is actively pressed.
A deeper teal card surface acknowledges the active pointer press.
File-format and data-coverage labels share the same pressed treatment.
The established focused-card context and solid button ring remain strongest.
The treatment derives only from the existing card, labels and enabled browser-active state and changes no action rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep the whole download card connected to pointer hover.
Every existing owner-download card now receives one restrained matching context while its enabled action is hovered.
A very light teal card surface follows the enabled action under the pointer.
File-format and data-coverage labels share the same hovered treatment.
The established focused-card context and solid button ring remain primary.
The treatment derives only from the existing card, labels and enabled browser-hover state and changes no action rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep the whole download card connected to keyboard focus.
Every existing owner-download card now receives one restrained matching context when its enabled action has visible keyboard focus.
A soft teal card surface follows the action that currently holds focus.
File-format and data-coverage labels share the same focused treatment.
The established solid button ring remains visible and unobscured.
The treatment derives only from the existing card, labels and visible keyboard-focus state and changes no focus rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See when an owner download is being pressed.
Every existing enabled owner-download action now receives one restrained visual cue for the duration of activation without changing what the action does.
A deeper teal surface and inset cue appear only while the action is pressed.
Ready, retry and repeat-download labels share the same pressed feedback.
Preparing stays warm, paused stays muted and keyboard focus keeps its ring.
The feedback derives only from the existing non-busy enabled relationship and browser press state and changes no rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Recognise when an owner download is ready to run.
Every existing non-busy enabled owner-download action now receives one restrained teal treatment and pointer cue without changing what the action does.
A soft teal surface distinguishes an enabled download from the card around it.
Ready, retry and repeat-download labels share the same enabled treatment.
Preparing stays warm, paused stays muted and keyboard focus keeps its ring.
The treatment derives only from the existing non-busy enabled relationship and changes no rule, label, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Keep every owner download easy to track from the keyboard.
Every existing enabled owner-download action now receives one dedicated solid focus ring when keyboard focus is visibly present.
A solid teal ring sits outside the action without covering its label.
Ready, retry and repeat-download labels share the same focus treatment.
Paused and preparing actions remain natively disabled and unfocusable.
The treatment derives only from the existing action class and visible keyboard-focus state and changes no rule, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Recognise a paused owner download across the whole card.
Every existing non-busy disabled owner download now receives one restrained full-card treatment that remains visible without relying on pointer feedback.
A neutral surface and inset marker identify the unavailable download.
The fixed file-format and coverage labels share the same paused treatment.
An active file preparation keeps its established warm state and wait cue.
The treatment derives only from existing non-busy and disabled attributes and changes no rule, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Distinguish a paused download from one already in progress.
Every existing owner download now gives busy and non-busy disabled actions distinct pointer feedback while preserving the established visible status and labels.
A muted non-busy action uses a not-allowed cursor without changing its reason.
The warm active treatment retains its established wait cursor and exact label.
The existing availability status remains the explanation for every pause.
The distinction derives only from existing disabled and busy attributes and changes no rule, message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See when an owner download is being prepared.
Every existing owner download now gives its unchanged disabled Preparing action a clear warm in-progress treatment while that file is being assembled.
The active control stays fully readable instead of fading with ordinary pauses.
The established Preparing CSV or Preparing JSON action name remains unchanged.
Idle, success, error and non-busy disabled presentations remain distinct.
The treatment derives only from the existing local busy state and adds no message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See a failed download clearly and recover with confidence.
Every existing owner download now presents its unchanged complete alert in one calm, readable full-width failure panel whenever that card's error is active.
The failure message receives a clear red-tinted panel that remains easy to scan.
The existing alert role, live text and error precedence remain unchanged.
The exact established Retry action remains available without a second control.
The panel derives only from the existing local error state and adds no message, request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Recover from a failed download without guessing.
Every existing owner download now turns its established action into one exact retry cue whenever that card's current error alert is visible.
The button keeps the download name and clearly prefixes it with Retry.
The complete existing alert remains visible beside the recovery cue.
Retry uses the existing button, handler, permissions and file contract.
The cue derives only from the existing local error state and adds no request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Make the next safe action unmistakable.
After a successful browser file handoff, every existing owner download clearly offers the same deliberate action again.
The successful action label keeps its exact download name and adds “again”.
The complete count-and-filename confirmation remains visible beside it.
Preparing, idle and failed attempts keep their established action labels.
The cue derives only from the existing local success state and changes no request, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See a completed download at a glance.
Every existing owner download now presents its unchanged count-and-filename confirmation in one clear success state after file handoff.
Completed feedback receives a calm, readable full-width presentation.
The existing count summary and exact fixed filename remain visible and live.
The existing red alert remains separate and wins whenever an error exists.
The state derives only from existing local status and error text, sends no request and changes no message, file, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Confirm which file was handed to your browser.
Every existing owner download keeps its current success summary and now confirms the exact fixed filename after the validated file handoff.
The existing live status names the file after the download action succeeds.
The confirmation reuses the constant that names and validates the download.
Current record and count feedback remains before the fixed filename.
The appended text contains only a fixed contract filename, sends no additional request and changes no file, error path, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know the exact file name before downloading.
Every existing owner download card now shows the same fixed filename its contract already enforces.
The visible name comes from the existing fixed download contract.
The same constant names the browser download and validates the private response.
Long fixed names wrap inside their card without changing the action.
Filename previews contain no entered or record data, send no additional request and change no file, filter, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear complete context on every download action.
Every existing owner download button now includes the same visible format and coverage labels before its detailed help and live status.
The action identifies whether the existing download is CSV or JSON.
The action includes the card's same fixed current, complete or inventory label.
The detailed download explanation and live success or error status remain connected to the same button.
This accessibility-only release sends no additional request and changes no filter, disabled state, visual layout, download or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Hear each download card as one complete choice.
Every existing owner download card is now a named group described by the same visible format and coverage labels.
Each group name comes from the same fixed 17-item export catalogue.
Stable local references connect the group to its visible file-format and data-coverage labels.
Card order, filters, disabled states, responsive layout and downloads remain exactly as before.
This accessibility-only release sends no request and changes no card action, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know why owner downloads are paused.
One visible status now reflects the existing workspace conditions that already pause owner download actions.
All owner downloads show as paused while a workspace change is being saved.
Some owner downloads show as paused until the owner saves or discards existing workspace changes.
The status confirms when workspace changes are not pausing downloads; every existing card check still applies.
This interface-only release sends no request and changes no disabled state, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Understand each download card before choosing it.
Complete visible guidance now explains the two fixed labels shown before every existing owner download action.
Each card identifies the existing CSV or JSON file it prepares.
Each card states the fixed record or evidence coverage of that download.
Labels are informational; the owner must still choose the existing download action deliberately.
This interface-only release sends no request, starts no download and changes no card, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Carry each downloaded pilot file responsibly.
Complete visible guidance now covers the owner's responsibility before and after using any existing download action.
The owner first confirms that the file is intended for authorised fictional or masked pilot use.
The existing responsibilities remain clear: secure the copy, share it only with authorised people and delete it when no longer needed.
AgencyOS does not manage the downloaded copy after the browser saves it.
This interface-only release sends no request, records no download and changes no export, file-handling or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know what happens before choosing a download.
Complete visible orientation now separates narrowing the fixed catalogue from the deliberate download action on one matching card.
Purpose, File format, Quick Picks and Quick Find change only which fixed cards are shown.
Filtering never starts a file; the owner must still choose the existing download action on one matching card.
Every card retains its original scope, capacity, access check and file-handling boundary.
This interface-only release sends no request, starts no download and changes no filter, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know how Quick Find changes the catalogue.
Complete visible guidance now explains the existing local search, its selected scope and how to return to that scope safely.
Fixed export names and coverage continue to update immediately without sending a request or starting a download.
Results stay inside the selected Purpose and File format, while clearing Quick Find restores that same selected scope.
The field is for fixed catalogue terms, not customer, traveller or other business-record information.
This interface-only release sends no request, saves no query and changes no search, filter, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Understand each Quick Pick before using it.
The visible Quick Pick guidance now explains the complete existing toggle behavior and how each count relates to the current catalogue scope.
Choosing Quotes, Tasks, History or Inventory places that fixed catalogue term in the existing Quick Find field.
Choosing the already active Quick Pick removes only that fixed search and restores the unsearched scope.
Every existing count continues to reflect the selected Purpose and File format, including an unavailable zero-result choice.
This interface-only release sends no request, saves no preference and changes no Quick Pick, filter, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know what each result-group shortcut will do.
A visible heading and help line now explain that the existing result-group shortcuts move directly to groups already shown below.
Owners can understand the Records, Accountability and Lifecycle evidence shortcuts before choosing one.
Guidance and shortcuts remain absent when no download is visible, while each available button keeps its exact shown count.
Every shortcut still moves only to its fixed visible heading without changing a filter, URL or download.
This interface-only release sends no request, saves no preference and changes no shortcut, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See the current result set before opening a download.
One persistent summary now names the owner-download result area and reports how many of the fixed 17 catalogue items remain after the current local choices.
Available owner downloads stays visible for complete, filtered and zero-result catalogue scopes.
The shown count derives from the existing filtered catalogue and compares with the same fixed 17-item total.
The existing result area is associated with the visible heading, guidance and count without adding a second live announcement.
This interface-only release sends no request, saves no preference and changes no filter, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Understand each catalogue filter before choosing it.
Purpose and File format now have visible fixed guidance associated with their existing local controls, making each choice clearer before the owner filters the catalogue.
Purpose explains that its four fixed choices change which download group is shown.
File format distinguishes every format, spreadsheet-ready CSV and structured JSON.
Choices, counts, selected states, catalogue order and existing downloads remain unchanged.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Recover immediately when no owner downloads match.
A zero-result catalogue now places precise local recovery actions beside the empty explanation, so the owner does not need to search for the active controls.
Clear purpose, Clear format and Clear Quick Find appear only for the dimensions currently narrowing the empty result.
Reset all filters remains available beside every empty result and restores the fixed 17-download catalogue.
Every action reuses the existing local filter and focus behavior without changing catalogue order, URL state or a download.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Clear one catalogue filter without losing the others.
The active scope summary now offers a precise local adjustment for each purpose, format or Quick Find dimension currently in use.
Clear purpose, Clear format and Clear Quick Find appear only while their matching dimension is active.
Each action clears one dimension, preserves the other filters and returns focus to the matching catalogue control.
Reset all filters is still available, and no action changes catalogue order, URL state or any existing download.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Return to catalogue controls after reviewing any export group.
Each visible group now ends with one fixed local action that returns the owner to the start of the existing catalogue controls.
Records, Accountability and Lifecycle evidence expose the action only when their existing section is already visible.
Choosing the action scrolls to and focuses the visible catalogue heading before the fixed controls.
Purpose, format, Quick Find, catalogue order, URL and every existing download remain unchanged.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Move directly to any export group still in view.
Three fixed local shortcuts now help the owner reach Records, Accountability or Lifecycle evidence without changing the current catalogue scope.
A shortcut appears only while its group has a current match and repeats the same visible-card count.
Choosing a shortcut scrolls to and focuses the matching heading, leaving a clear visual position for the next action.
Purpose, format, Quick Find, catalogue order, URL and every existing download remain exactly as they were.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See how much of each export group remains in view.
Every visible group heading now compares its matching cards with the fixed total for that part of the owner export catalogue.
Records and Accountability each compare against seven cards, while Lifecycle evidence compares against three.
Shown counts follow the same purpose, format and Quick Find result that controls card and group visibility.
The labels contain no record content and cannot run, inspect or change an existing download.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Reach common owner exports without typing a search.
Four fixed Quick Picks now set or clear the existing local Quick Find inside the selected purpose and file format.
Quotes, Tasks, History and Inventory cover common catalogue searches without accepting customer information as a shortcut.
Every choice shows its exact match count inside the selected purpose and file format, and unavailable choices cannot create a dead-end search.
Selecting a choice fills Quick Find, selecting it again clears the query, and no download begins until its existing export control is deliberately used.
This interface-only release sends no request, saves no preference and changes no export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Understand what each owner download covers before choosing it.
Every fixed Owner Export Centre card now pairs its file type with a concise coverage label drawn from the same local catalogue.
Fixed labels distinguish current summaries, complete saved families, reviewed activity, current responsibility, complete histories and inventory-only evidence.
Quick Find now matches those fixed coverage labels as well as the established export names, purpose and file-format terms.
Labels contain no record content and read the existing fixed catalogue; they do not inspect a file or create a second export rule.
This interface-only release adds no request, saved preference, data field, role, permission, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Review the pilot handling boundary before any owner download.
One visible note now keeps the permitted pilot-data boundary and the owner's downloaded-file responsibilities beside the fixed Owner Export Centre catalogue.
The notice says to export fictional or masked, non-sensitive pilot data only before an owner chooses a purpose, format, search result or download.
It reminds the owner to secure the downloaded file, share it only with authorised people and delete it when it is no longer needed.
The static note contains no customer or business-record content and starts, blocks, inspects or records no download.
This interface-only release adds no request, state, data field, role, permission, export contract, automated enforcement or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Know the file type before choosing an owner download.
Every fixed Owner Export Centre card now displays a visible CSV or JSON file label derived from the same catalogue used by its search and format controls.
The Pipeline summary is labelled CSV file, while the other 16 agency-wide cards are labelled JSON file before an owner starts any download.
Labels read the established fixed catalogue instead of creating a second mapping that could drift from Quick Find or the format controls.
The non-interactive labels stay with mounted cards while filtering changes only visibility; they start, cancel or alter no download.
This interface-only release adds no request, state, data field, role, permission, export contract or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See the complete owner-export scope before choosing a file.
Whenever the fixed catalogue is narrowed, the current agency owner sees the selected purpose, file format and Quick Find state together in one compact summary.
Fixed labels show the selected purpose and format and whether Quick Find is active, without repeating any entered search text.
One keyboard-sized action restores All downloads, All formats and an empty Quick Find, then returns focus to the search field.
The summary uses only existing local filter state, disappears at the default scope and starts or cancels no mounted download.
This interface-only release adds no request, preference, export action, data field, role, permission or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Choose the file format before starting an owner download.
The current agency owner can narrow the fixed 17-item catalogue to All formats, CSV or JSON while keeping the selected purpose and Quick Find query in effect.
Every keyboard-sized format button shows the exact number available inside the current purpose, including an honest zero where no CSV download exists.
Purpose, format and literal Quick Find compose without changing catalogue order, and the status reports exactly how many downloads remain in that scope.
Empty searches keep their clear action; an empty purpose-and-format combination offers one reset that restores the complete catalogue and Quick Find focus.
This interface-only release writes no preference and starts no download. It changes no export contract, role, permission, collection purpose or lifecycle decision. The lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Browse owner downloads by purpose before searching.
The current agency owner can switch the fixed 17-item catalogue among All, Records, Accountability and Lifecycle evidence without running a download.
Every keyboard-sized purpose button shows its fixed catalogue count and a clear selected state, with a two-column arrangement on narrow screens.
Search narrows only the selected purpose while the interface reports the exact number shown out of that view's complete fixed count.
Purpose selection stays in the current workspace view, writes no preference and starts or cancels no mounted export control.
This interface-only release changes no export contract, role, permission, data collection or external action. It adds no lifecycle decision, the lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Reach one owner download by name, purpose or file type.
The current agency owner can locally narrow the fixed 17-item Owner Export Centre catalogue while every existing download keeps its established boundary.
Literal search tokens match the documented download names, purposes and CSV or JSON formats, preserve order and report the exact visible count.
The query sends no request and is not written to a database, browser storage, cookie, URL, analytics or telemetry.
Empty results explain useful terms and provide a keyboard-sized clear action; hidden cards remain mounted, so filtering starts or cancels no download.
This interface-only release changes no export endpoint, scope, capacity, role, access check, response validation or file handoff. It adds no data collection or external action, the lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
Find the right owner-only download without scanning every export.
The current agency owner can open one compact centre above Pipeline filters and choose among all 17 existing agency-wide downloads grouped by purpose.
A keyboard-operable disclosure keeps the Pipeline heading concise and clearly labels the complete catalogue as owner only.
Record exports, Operations and work-history evidence, and lifecycle inventories remain easy to distinguish on desktop and narrow screens.
Opening the centre runs nothing; each existing action retains its own scope, capacity, access checks, disabled state and transient file handoff.
This interface-only release adds no API, data field, database object, role, permission, persistence, analytics or external action. It changes no retention or deletion rule, the lifecycle gate remains open, and the Core Pilot is not ready for real customer data.
See every saved history action without exposing event content.
The current agency owner can deliberately download one content-minimized JSON inventory with exact zero-inclusive counts for all 25 valid saved actions across Team, Agency settings and enquiry activity histories.
Ten Team actions, one settings-change category and fourteen enquiry-activity actions appear in fixed order, including actions with no saved events.
Every action has an exact event count and, when non-empty, coherent oldest and newest event times; each family total must match its complete valid-action set.
The inventory contains no event details, summaries, changed fields, identities or business content and does not set retention or trigger a lifecycle action.
One owner-and-tenant-scoped read and a final role check protect this private, fixed-name download. It is saved-history evidence, not a disposition decision, and adds no database, storage, role or permission surface. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
See every current record state before lifecycle decisions are made.
The current agency owner can deliberately download one content-minimized JSON inventory with exact zero-inclusive counts for all 25 valid current states in six stateful AgencyOS record families.
Team access, enquiries, quotes, quote revisions, Operations tasks and manual payment records appear in fixed order, including states with no current records.
Every state has an exact count and, when non-empty, coherent oldest and newest creation anchors; each family total must match the complete valid-state set.
The inventory contains no business-record content or identity and does not set retention, decide archive eligibility, delete, place a hold or close an agency.
One owner-and-tenant-scoped read and a final role check protect this private, fixed-name download. It is current-state evidence, not a disposition decision, and adds no database, storage, role or permission surface. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
See every saved record family before a retention schedule is approved.
The current agency owner can deliberately download one content-minimized JSON inventory with exact counts and retention-anchor ages for all 14 saved AgencyOS record families.
Agency settings, Team records and events, enquiries and activity, quotes and their saved detail, Operations, tasks and manual payment records each receive one fixed inventory row.
Every row keeps only an exact count, its explicit timestamp basis and coherent oldest and newest anchors; empty families remain visible with null anchors.
The inventory contains no customer, trip, quote, payment, task or activity content and does not set a retention period, archive, delete or place a hold.
One owner-and-tenant-scoped read and a final role check protect this private, fixed-name download. It is evidence for retention review, not an approved schedule or lifecycle action, and adds no database, storage, role or permission surface. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved work-status transition into one controlled history register.
The current agency owner can deliberately download the complete saved initial status state and status-change history for up to 500 enquiries, 25,000 Operations tasks and 50,000 events as one structured JSON file from Pipeline.
Every event keeps its prior and next saved status, current work titles and the approved pilot staff email already recorded for its actor.
Existing indexes scope one owner-only read, prove one initial state per current record and match every continuous transition to the current saved status.
Notes, budgets, pricing, payments, responsibility identities, non-status activity, Team history and internal identifiers stay omitted.
This twenty-five-megabyte private download contains approved pilot staff emails and must be secured after download; all business context remains fictional or masked. It is an internal accountability record, not a notification, instruction, booking or delivery record. It completes one bounded work-status-history relationship family, not every remaining record family or a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved responsibility handoff into one controlled history register.
The current agency owner can deliberately download the complete saved initial responsibility state and responsibility-change history for up to 500 enquiries, 25,000 Operations tasks and 50,000 events as one structured JSON file from Pipeline.
Prior and next responsibility map to stored approved pilot staff email, while unassigned state remains explicit and each saved actor is represented by email.
Existing indexes scope one owner-only read, prove one initial state for every current enquiry and task, and order all validated changes from oldest to newest.
Current work titles provide context while notes, budgets, pricing, payments, non-responsibility activity, Team history and internal identifiers stay omitted.
This twenty-five-megabyte private download contains approved pilot staff emails and must be secured after download; all business context remains fictional or masked. It is an internal accountability record, not a notification, instruction, booking or delivery record. It completes one bounded responsibility-history relationship family, not every remaining record family or a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take current enquiry and task responsibility into one controlled register.
The current agency owner can deliberately download the complete current responsibility state for up to 500 enquiries, 500 Operations records and 25,000 saved Operations tasks as one structured JSON file from Pipeline.
Assigned work maps to the stored approved pilot staff email and an explicit available or needs-reassignment state; unassigned work stays explicit.
Existing indexes scope the owner-only batched reads, validate every current enquiry and task relationship and preserve Operations whose task list is empty.
Minimized titles, states and dates provide context while notes, budgets, pricing, payments, creator identities, activity history and internal identifiers stay omitted.
This twenty-five-megabyte private download contains approved pilot staff emails and must be secured after download; all business context remains fictional or masked. It is a current internal work-allocation snapshot, not a notification, instruction, booking or delivery record. It completes one bounded current responsibility relationship family, not prior responsibility identity, every remaining record family or a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved Operations manual payment record into one controlled register.
The current agency owner can deliberately download up to 500 Operations records and 50,000 complete saved manual payment and refund records across the agency as one structured JSON file from Pipeline.
Every record keeps its kind, amount, currency, occurrence date, method, optional reference and notes, recorded-or-voided state, timestamps and optional void reason beside minimized enquiry and accepted-quote context.
Existing Operations-family indexes scope one owner-only read, validate every manual-record family and preserve an Operations record whose record list is empty.
Recorded and voided outcomes remain useful while record-creator and void-actor identities, Operations tasks, activity history and internal identifiers stay omitted.
This twenty-five-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. These entries are manual internal planning records, not money movement, settlement, receipts, invoices or accounting evidence. It completes one bounded Operations-payment-record child family, not every remaining record family and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved Operations task into one controlled register.
The current agency owner can deliberately download up to 500 Operations records and 25,000 complete saved tasks across the agency as one structured JSON file from Pipeline.
Every task keeps its title, category, status, optional due date, optional notes, assignment state and timestamps beside minimized enquiry and accepted-quote context.
Existing Operations-family indexes scope one owner-only read, validate every task family and preserve an Operations record whose task list is empty.
Assigned-or-unassigned state remains useful while assignee and creator identities, manual payment details, activity history and internal identifiers stay omitted.
This twenty-five-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Tasks are manual internal planning records, not bookings, confirmed fulfilment, supplier instructions or delivery evidence. It completes one bounded Operations-task child family, not the separate manual-payment detail family and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved quote itinerary day into one controlled register.
The current agency owner can deliberately download up to 500 quotes, 500 revisions and 15,000 complete saved itinerary days across the agency as one structured JSON file from Pipeline.
Every day keeps its position, optional date, title, optional location and optional details beside minimized quote and revision context.
Existing quote-family indexes scope one owner-only read, validate complete history and sequential days, and preserve a revision whose itinerary is empty.
Priced lines, rate snapshots, pricing rules, staff identities, activity history, Operations and internal identifiers stay omitted.
This twenty-five-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Itineraries are manual planning records, not bookings, confirmed supplier schedules, visa guidance or fulfilment evidence. It completes one bounded itinerary-day child family, not every remaining record family and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved priced quote line into one controlled register.
The current agency owner can deliberately download up to 500 quotes, 500 revisions and 12,500 complete saved priced line items across the agency as one structured JSON file from Pipeline.
Every item keeps its category, description, quantity, source-unit amount and currency, derived source-line amount and saved converted line amount beside minimized quote and revision context.
Existing quote-family indexes scope one owner-only read, verify each conversion against its saved rate and each revision subtotal, and produce no partial file above capacity.
Rate-snapshot details, itinerary days, client pricing rules, staff identities, activity history and internal identifiers stay omitted.
This twenty-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Amounts are manual planning records, not supplier quotes, invoices or accounting evidence. It completes one bounded priced-line-item child family, not the separate itinerary-day or other required record families and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take every saved quote rate snapshot into one controlled register.
The current agency owner can deliberately download up to 500 quotes, 500 revisions and 3,500 complete saved rate snapshots across the agency as one structured JSON file from Pipeline.
Every snapshot keeps its currencies, exact stored ratio, readable rate, source label and capture time beside minimized quote and revision context.
Existing quote, enquiry, revision and rate indexes scope one owner-only read, validate every complete rate family and produce no partial file above capacity.
Priced line items, itinerary days, client content, staff identities, activity history and internal identifiers stay omitted for separate lifecycle work.
This ten-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Saved rates are manual planning snapshots, not live market rates, settlement instructions or accounting evidence. It completes one bounded rate-snapshot child family, not the separate priced-line-item or itinerary-day families and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take the agency's complete saved quote revisions into one controlled register.
The current agency owner can deliberately download up to 500 quotes and 500 complete saved quote revisions across the agency as one structured JSON file from Pipeline.
Each revision keeps its client summary, lifecycle, validity, pricing settings and totals, inclusions, exclusions and saved notes.
Existing quote, enquiry and revision indexes scope one owner-only read, validate saved history and pricing, and produce no partial file above either record limit.
Line items, rate snapshots, itinerary days, staff identities, activity history and internal identifiers stay omitted for separate lifecycle work.
This ten-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Its totals are manual planning records; the file is not a sent quote, booking, invoice or accounting record. It completes one bounded saved quote-revision-level family, not the separate line-item, rate-snapshot or itinerary-day families and not a retention, archive, verified-deletion or closure programme. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take the agency's complete saved enquiry briefs into one controlled register.
The current agency owner can deliberately download up to 500 complete saved enquiry briefs across the agency as one structured JSON file from Pipeline.
Each record includes title, source, destination, planning dates, budget, next action, saved notes, status and record timestamps.
The existing newest-first enquiry index scopes one owner-only read, and record or file capacity overflow produces no partial download.
Staff and account identities, responsibility, activity, quotes, Operations, payments, concurrency versions and internal identifiers stay omitted.
This five-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. It is not a booking, customer communication or fulfilment record. Completing one bounded current enquiry-brief family is not a full agency export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take the agency's current quote position into one controlled register.
The current agency owner can deliberately download a bounded agency-wide register of current quote and current-revision summaries as one structured JSON file from Pipeline.
Up to 500 records show enquiry title, quote reference, overall status, accepted revision number and quote timestamps.
Each summary includes the current revision's number, status, title, currency, validity date, manual grand total and lifecycle timestamps.
Itinerary, pricing lines, rates, client summaries and notes, staff identities and internal identifiers stay omitted, and capacity overflow produces no partial file.
This two-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Its totals are manual planning records; the file is not a sent quote, booking, invoice or accounting record. It is an agency-wide summary of one bounded family, not a full-detail export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take the agency's current Operations position into one controlled register.
The current agency owner can deliberately download a bounded agency-wide register of current manual Operations summaries as one structured JSON file from Pipeline.
Up to 500 records show enquiry title, accepted quote reference, revision, currency, accepted total and the latest Operations update time.
Each summary includes task-status counts plus non-void manual payment and refund totals, net recorded value and the calculated manual balance.
Task and payment details, staff identities and internal identifiers stay omitted, and more than 500 Operations records produce no partial file.
This two-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. Its figures are manual planning records, not booking, settlement or accounting evidence. It is an agency-wide summary of one bounded family, not a full-detail export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take current agency setup and its reviewed history into one controlled ledger.
The current agency owner can deliberately download the current agency identity, saved new-record defaults and reviewed settings history as one structured JSON file from Agency setup.
The file records the agency name, primary and accent colours, default currency, default quote-validity period and latest saved update time.
Up to 500 newest-first settings events contain their time, staff actor email and changed field names, then stop without a partial file above that capacity.
Internal identifiers stay omitted, and the ledger does not invent historical setting values that the current audit model does not store.
This one-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. It is one bounded Agency settings record family, not a complete agency export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take current Team access and its reviewed history into one controlled ledger.
The current agency owner can deliberately download the current Team roster, live invitations and reviewed access history as one structured JSON file from Team.
Up to 11 current Team records show account email, access level, current state, relevant deadlines and any active planned-offboarding state.
Up to 500 access events reuse the owner-visible reviewed receipts in newest-first order and stop without a partial file above that capacity.
Staff and account email are included, while raw event details and internal account, membership and event identifiers stay omitted.
This two-megabyte private download remains limited to fictional or masked pilot data and must be secured after download. It is one bounded Team record family, not a complete agency export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take the agency's saved enquiry activity into one controlled ledger.
The current agency owner can deliberately download the saved activity history across the agency's enquiry ledger as one structured JSON file from the Pipeline.
The file groups up to 2,000 total saved events by enquiry title and keeps each enquiry's entries in newest-first order.
The indexed owner-and-tenant read stops without a partial file when the current agency history exceeds the fixed capacity.
Staff actor email and reviewed summaries are included, while internal identifiers, raw event details and other free-text values stay omitted.
This five-megabyte private download contains agency-internal staff and operational history, remains limited to fictional or masked pilot data, and must be secured after download. It covers one bounded record family, not a complete agency export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take one enquiry's accountable timeline into a controlled ledger.
The current agency owner can deliberately download the selected enquiry's saved activity history as a separate structured JSON file from the Activity section.
The file contains up to 500 newest-first events and stops without a partial download when that selected history exceeds the fixed limit.
Each entry contains its time, fixed action, agency staff actor email and a reviewed summary while internal identifiers and raw event details stay omitted.
The one-megabyte private response is accepted only through its fixed contract, then downloaded through a temporary browser URL that is immediately revoked.
Staff email and operational history remain agency-internal personal and business information, so this export is still limited to fictional or masked pilot data and must be secured after download. It is not an agency-wide export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take one saved enquiry family into a controlled case file.
The current agency owner can deliberately download the selected enquiry's saved details, quote history and Operations records in one structured JSON file.
The case file includes saved enquiry fields and notes, up to 50 quote revisions, each revision's bounded items and itinerary, up to 50 Operations tasks and up to 100 manual payment records.
Every bounded read proves the exact owner and tenant scope. Internal record, account and Team identifiers, responsibility and activity history are omitted.
A fixed five-megabyte JSON contract is privately downloaded through a temporary browser URL; AgencyOS stores no export copy or export analytics event.
A case file can contain saved notes and planning amounts, so it remains limited to fictional or masked, non-sensitive pilot data and must be secured after download. It is not an agency-wide export, retention rule, archive, verified-deletion or closure tool. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Take a bounded Pipeline summary into a controlled CSV.
The current agency owner can now deliberately download up to 500 current enquiry summaries without first loading every Pipeline page in the browser.
The export rechecks the exact active owner membership, agency and immutable record scope in the same statement that selects the rows.
The CSV includes current enquiry planning fields but excludes notes, internal identifiers, histories, quotes, operations, payments and Team identities.
Every cell is quoted, formula-like prefixes are neutralised, and the browser accepts only the fixed private response contract before starting the download.
This is not a complete agency export, backup, portability response, retention rule, archive, deletion or closure tool. It creates no saved export record and starts no message, booking, payment, automation or external system action. The lifecycle gate remains open and the Core Pilot is not ready for real customer data.
Show when access ended through a teammate's own action.
Owner access history now distinguishes an operational member leaving, an active summary viewer leaving and an expired viewer removing their retained Team record.
Each receipt maps one already-recorded self-service outcome instead of treating every member-revoked event as an unexplained owner removal.
Owner removal and invitation cancellation keep their existing actor, target, access-level and prior-state evidence without receiving a self-service label.
An older event without an originally recorded initiator remains visible without an exit receipt instead of receiving an inferred outcome.
This reuses existing append-only Team events and bounded owner history and adds no new action, endpoint, permission, schema change, browser storage or external action. It does not complete offboarding, recovery, succession or the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Keep both post-handoff roles with the ownership transfer.
Owner access history now confirms that the selected successor became agency owner while the former owner remained an operational member.
The receipt derives both fixed roles from the same two membership rows only after the versioned demotion, promotion and event all succeed together.
The new owner is labelled as agency owner and the former owner as an operational member, beside the existing accountable actor and target labels.
An older transfer event without both originally recorded roles remains visible without a receipt instead of receiving an inferred handoff outcome.
This reuses the existing safe transfer and bounded owner history and adds no new event, endpoint, permission, schema change, browser storage or external action. It does not provide lost-owner recovery, exceptional succession or a legal-company transfer. The Core Pilot is not ready for real customer data.
Keep the reviewed access count with each completed review.
Owner access history now shows how many current Team access records were verified when an access review completed.
The receipt uses the count stored by the winning review after the complete current roster and every submitted membership version have matched.
History returns only the 1-to-11 reviewed count. Stored membership identifiers and versions are never included in the owner-facing receipt.
An older review event without an originally recorded count remains visible without a receipt instead of receiving an inferred scope.
This adds one bounded field to the existing owner-only history and no new event, endpoint, permission, schema change, browser storage or external action. It strengthens recurring-review evidence without approving the operating programme or completing the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Keep the declined access level with the invitation outcome.
Owner access history now shows whether each newly declined invitation offered operational-member or summary-viewer access.
The existing event records the fixed access mode from the exact versioned invitation only when the membership change and receipt both succeed.
The receipt shows only the declined operational or viewer level. A declined offer never starts the separate 30-day summary-viewer access period.
An older decline event without an originally recorded role remains visible without a receipt instead of receiving an invented access level.
This reuses the existing invitation response and bounded owner history and adds no new endpoint, permission, schema change, notification or external action. It strengthens accountable invitation outcomes without completing the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Keep the removed access level beside the removal event.
Owner access history now distinguishes active access removal from a pending invitation cancellation and shows the exact fixed level involved.
The receipt uses only the prior role and state already stored with the append-only removal event. It does not infer either fact from today's roster.
An active operational member or summary viewer is labelled as removed access. A pending operational or viewer offer is labelled as a cancelled invitation.
An older removal event without an originally recorded role remains visible without a receipt instead of receiving an invented level or prior state.
This adds one bounded owner-history response field and no new event, permission, endpoint, schema change, notification or external action. It strengthens accountable revocation evidence without completing the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Keep the offered access level beside its invitation deadline.
Owner access history now shows whether each recorded invitation offered operational-member or summary-viewer access.
The receipt uses only the fixed access level already stored with the append-only invitation-created event. It does not infer a role from today's roster.
The existing invitation expiry remains the 14-day acceptance deadline. A viewer's separate 30-day access period still begins only after acceptance.
An older creation event without an originally recorded role remains visible without a receipt instead of receiving an invented access level.
This adds one bounded owner-history response field and no new event, permission, endpoint, schema change, notification or external action. It strengthens accountable join evidence without completing the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Keep the granted access level in accountable history.
Every newly accepted invitation now records whether it granted operational-member or summary-viewer access. A viewer receipt also carries the exact fixed deadline.
The existing append-only Team event is created only when the exact versioned invitation becomes active with its fixed access contract intact.
Operational access has no deadline. Summary-viewer access is shown only with a deadline exactly 30 days after acceptance.
Older acceptance events remain visible without a receipt when their original history did not record the access level or deadline.
The receipt reuses the owner-only bounded history and adds no schema migration, new endpoint, permission, notification or external action. It strengthens accountable join evidence without completing the access-lifecycle gate. The Core Pilot is not ready for real customer data.
Close every viewer window after one fixed 30-day period.
Every accepted summary-viewer invitation now receives one server-stored deadline exactly 30 days after acceptance, with no custom duration, extension or indefinite viewer access.
Expired viewers are separated from active access before any new workspace summary is returned. Protected summary reads repeat the same authority check.
Owners see the accepted viewer deadline in Team, and an open viewer workspace schedules an authoritative recheck for that exact time.
An expired viewer sees no agency summaries and may remove only their own retained Team record through a deliberate, version-checked action.
Migration 0016 normalizes existing active memberships and runtime guards enforce the fixed contract, including a required viewer deadline. The release adds no scheduler, extension action, invitation email or external action and does not complete the access- lifecycle gate. The Core Pilot is not ready for real customer data.
Share operational visibility without sharing operational control.
An owner can now invite an approved teammate as a fixed summary viewer. That person receives a separate read-only workspace instead of the operational AgencyOS surface.
Viewers can review Command Centre totals and paged Pipeline summaries, but cannot open exact records, notes, quotes, tasks, payments, activity, Team or Settings.
Viewer responses omit assignee identifiers, next actions and item-level attention detail rather than relying on the interface to hide operational data.
Viewers cannot create or change business records and cannot be selected for an enquiry, task, claim, handoff, reassignment or ownership transfer.
This is one fixed access level, not custom permissions. Viewer access keeps the same authoritative return, reconnect, restore, cross-tab and five-minute checks; the viewer may leave and the owner may revoke a zero-assignment account. Migration 0015 adds one constrained access-mode column and preserves existing memberships as operational. No invitation email or external action is sent. The Core Pilot is not ready for real customer data.
Recheck access while a workspace stays continuously visible.
An online AgencyOS workspace now schedules its next authoritative identity-and-role check five minutes after the previous access attempt settles.
One settle-then-schedule timeout starts after the current workspace opens and after each completed access attempt. It is not an overlapping interval.
Hiding the workspace or losing connectivity clears the pending cadence. Returning visible or online keeps the existing immediate check.
Cadence checks reuse the current abortable request and server decision: confirmed changes clear private state, while unverified results preserve it behind retry.
The queryless check sends no customer or work content and stores no cadence history. This release adds no endpoint, browser persistence, worker, socket or external action. The Core Pilot is not ready for real customer data.
Recheck access across every open workspace tab.
When one AgencyOS tab confirms an access change, another open tab now checks the server before deciding whether its private workspace must be cleared.
The central access-change path sends one fixed same-origin signal only after an existing protected operation or access check confirms a change.
A receiving tab reruns the current identity, agency and active-role check. The browser signal alone never clears private state.
Signal-started checks do not announce again, overlapping checks still coalesce and browsers without the channel keep the existing return and reconnect checks.
The fixed signal contains no identity, agency, role or work content and is not stored. This release adds no endpoint, polling, service worker, socket or external action. The Core Pilot is not ready for real customer data.
Recheck access after reconnection and browser restore.
AgencyOS now reuses its current identity-and-role check when a visible browser reconnects or a workspace is genuinely restored from back-forward cache.
An online signal retries the access check only while the private workspace is visible. A hidden tab waits for its normal visibility-return check.
Browser history restore triggers the check only for a genuinely cached page, so an ordinary first page load does not create a redundant request.
Resume signals share the same abortable, sequenced and viewer-scoped request as focus and visibility, including the existing clear-or-retry result handling.
This release adds no endpoint, storage, polling, service worker, socket or external action. It advances prompt-revocation responsibility without completing the access- lifecycle gate. The Core Pilot is not ready for real customer data.
Recheck access when someone returns to an open workspace.
AgencyOS now confirms the current signed-in identity and active agency role when an already-open workspace becomes visible or focused again.
Focus and visibility events share one abortable request to the existing private workspace-context endpoint. There is no interval polling or new endpoint.
Lost access, a different agency or a different role uses the central reset to abort active requests and clear cached views and local drafts before reload.
A failed or unreadable check preserves the current view and offers one retry, while every protected read and write keeps its server-side access guard.
This release adds no storage, schema, browser persistence, role, permission or external action. It advances prompt-revocation responsibility without completing the access- lifecycle gate. The Core Pilot is not ready for real customer data.
Require the handoff sequence without delaying urgent revocation.
Routine active-member removal now requires the matching assignment pause to be active. Security or policy response remains an immediate reviewed removal path.
The interface locks routine removal until the exact fixed reason has started the existing versioned pause on new assignments.
The membership update independently requires that stored reason and pause time, so an older or bypassing client cannot skip the sequence.
Security or policy response still uses the current Team version, fixed reason and exact reviewed counts, but does not wait for a handoff pause.
The request body and receipt stay unchanged. This release adds no endpoint, field, schema, storage or external action. It advances the access-lifecycle gate without completing it. The Core Pilot is not ready for real customer data.
Connect access removal to the assignment pause that came first.
When a paused teammate's access is removed, owner-only history now links the confirmed removal receipt to the exact stored assignment-pause start time.
The existing removal event keeps the pause start beside the fixed reason and exact reviewed enquiry and task counts before the membership clears its pause state.
The linked value must be a real canonical timestamp no later than removal. No work title, notes, traveller, supplier or customer content enters the receipt.
Direct removals and earlier receipts without a stored link remain valid. AgencyOS does not invent a pause time for them.
This release adds no endpoint, schema field, free-text input, message, notification or external action. It advances accountable offboarding evidence without completing the access-lifecycle or other go-live gates. The Core Pilot is not ready for real customer data.
Pause new assignments before access is removed.
The current owner can place one active teammate into a reversible planned-offboarding state after reviewing their exact open-enquiry and task counts.
The teammate keeps access to existing work for deliberate handoff, but cannot receive or claim new enquiries or tasks while the pause is active.
One Team version, fixed operational reason and two reviewed counts must still match when the pause starts. Count drift changes nothing and requires another review.
The owner can restore assignment eligibility with the exact next Team version. Start and cancellation are recorded in owner-only access history.
This release stores only a fixed reason and start time, adds no free-text field, message, notification or external action, and does not remove access automatically. Ownership recovery, exceptional succession, least privilege and other go-live gates remain open. The Core Pilot is not ready for real customer data.
Record the reason and reviewed impact behind access removal.
Active-member removal now requires one fixed operational reason and records it with the exact enquiry and task counts that passed the commit-time guard.
The owner chooses one bounded operational category. There is no free-text reason field for customer, traveller, supplier or sensitive staff details.
An uncertain removal keeps the same reason, Team version and reviewed counts. A retry cannot substitute a different decision after Check latest.
Confirmed active removal shows the reason and reviewed counts in bounded access history. It exposes no enquiry, task, customer or supplier content.
Invitation cancellation remains version-only. The release uses the existing Team event ledger and adds no table, column, index, free-text field, message or external action. It advances broader-offboarding evidence but does not complete access recovery, exceptional succession, least privilege or the access-lifecycle gate. The Core Pilot remains not ready for real customer data.
Keep the removal decision tied to the work that was reviewed.
Active access removal now commits only while the exact open-enquiry and task counts reviewed by the owner still match at the decisive membership update.
The frozen request carries one Team version and two counts. Current owner access, tenant scope, target state and both counts must match in the removal statement.
New or changed assigned work returns the owner to impact review. Neither the membership nor its accountable Team-history event changes.
An uncertain active removal can retry the same frozen action only after Check latest confirms both the Team record and reviewed assigned-work counts.
Pending invitation cancellation remains version-only. The guard records counts, not work content, and adds no table, column, index, stored review, message or external action. Review, reassignment and removal remain separate requests, broader offboarding remains incomplete, and the Core Pilot is not ready for real customer data.
Move reviewed open work before removing access.
The owner can now choose another active teammate and deliberately reassign a bounded batch from the offboarding review before making a separate access decision.
The write requires both exact Team records and the reviewed enquiry and task counts, then selects no more than 20 still-open assignments in the current agency.
Only records still assigned at their exact versions move. Every successful change advances that record and uses its existing enquiry activity history.
The confirmed response refreshes what remains. Changed or newly assigned work stays visible for another deliberate batch or the owner's removal decision.
Reassignment never removes access, and removal never silently reassigns work. The two remain separate requests rather than an atomic offboarding transaction. The response returns counts and approved staff Team records, not work content, and the release adds no schema or external action. Broader offboarding and the access-lifecycle gate remain incomplete; the Core Pilot is not ready for real customer data.
Review assigned work before removing a teammate.
The owner now sees a focused snapshot of an active teammate's current open work before deciding whether to remove access.
The owner-only read requires the selected active membership and its current version, then returns only open enquiry and operations-task counts.
The review explains that removal does not delete or reassign work. Unavailable assignments remain saved and visible in Needs an Owner.
AgencyOS checks the same snapshot again. Changed counts require a new decision; unchanged counts proceed through the existing versioned removal.
The read and removal are separate requests, not an atomic assignment lock or a reassignment workflow. The release returns no work content, adds no database field or stored review, and does not complete the access-lifecycle gate. The Core Pilot remains not ready for real customer data.
See why real customer data is still blocked.
One public evidence register now turns the existing readiness boundary into seven visible gates with current evidence, outstanding work and an explicit pass condition.
Three gates show partial evidence and four remain open. Partial work never appears as approval.
Every gate separates controls already present from legal, lifecycle, access, security, resilience or go-live work that remains outstanding.
Real data remains blocked until every gate is approved and the final decision names the first permitted data tier.
The register is a static evidence snapshot, not certification, legal advice, a security attestation or an automated compliance system. It stores no review state and adds no API, database, analytics or external action. Review the real-data readiness status.
Check the purpose and boundary of every pilot input group.
A dedicated operating map now connects each AgencyOS field group to its purpose, permitted fictional or masked entry, prohibited data and handling boundary.
Pipeline, quote, itinerary, operations, manual-record, Team, settings and search inputs are mapped in the language used by the workspace.
Each rule states why the input exists, the least information needed to test it and how a submitted or transient value is handled.
The map records the current pilot boundary; it does not approve real customer data or complete the separate legal, lifecycle, security and go-live gates.
The map adds no API, database field, storage, inspection, redaction, analytics or external action. Approval of the comprehensive data scope has not been recorded, so the Core Pilot remains not ready for real customer data. Read the field-by-field pilot map.
Keep the next owner access review visible.
The owner-only Team view now shows whether the next manual access review is current, due soon or overdue, together with the last recorded review and exact next due time.
Each period lasts 90 days. Due soon begins exactly 14 days before the deadline, using workspace creation until the first review receipt exists.
The schedule is derived at read time from the latest existing review receipt in owner-only Team history and refreshes after a successful manual review.
The interface sends no email, reminder, notification or escalation and performs no automated or external action.
This fixed in-product cadence adds no storage, schema migration or index. It is an internal operational prompt, not a legal or compliance certification, enforced organizational policy or independent evidence programme. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Record an owner review of the exact current Team roster.
The current owner can review every active account and live invitation, then use one focused confirmation to retain an internal access-history receipt without changing anyone's access.
The browser freezes only current Team identifiers and versions. The service derives and rechecks the agency, actor, record scope and owner role at the write.
One append-only event records the reviewed roster versions. Any missing, extra, stale, expired or cross-agency record makes the request write nothing.
The review changes no member, role, invitation or business record and sends no message. Uncertain outcomes require a fresh Team and history check before retry.
This is an internal access-control receipt, not a legal or compliance certification, recurring review programme or independent approval. It advances one access-lifecycle control, but the Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Hand workspace control to a trusted active teammate.
The current owner can now select exactly one active ordinary member and review the consequences before transferring AgencyOS administration. The former owner remains an active member after the handoff.
The browser sends only both current membership versions. The service derives and rechecks the agency, signed-in owner, immutable scope and both roles at the write.
One atomic winner swaps the two roles and creates one Team-history event. Stale, pending, revoked, cross-agency or competing attempts write nothing.
Success returns no private payload. Success or uncertain delivery clears cached workspace views and requires a reload before either role is relied on.
This transfers AgencyOS administration only. It does not transfer a legal company, shares, travel licence, domain, trademark, customer data or any saved business record. It does not provide recovery without a willing active successor. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Let a team member leave without deleting the agency ledger.
An ordinary member with active access can now leave the current agency through one explicit, focused confirmation. The owner cannot use this action or abandon the workspace.
The browser sends only the current membership version. The service derives and rechecks the signed-in member, agency and immutable record scope at the write.
One winning leave revokes that membership and creates one access-history event attributed to the leaving member. Stale or mismatched attempts write nothing.
Success or an uncertain delivery outcome clears cached workspace views and requires a reload before the user can continue or try again.
Leaving does not delete, transfer, archive or export the agency's saved records or histories. A new owner invitation is required to return. The owner cannot self-leave; ownership can change only through the explicit v0.54 handoff to an active member. This release advances one access-lifecycle requirement, but the Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Reduce browser exposure across every public and private response.
One response wrapper now applies the same bounded browser-safety baseline to public pages, private workspace screens, API responses and optimized images.
Responses prevent framing and MIME sniffing, restrict base URLs and embedded objects, limit referrer detail and disable unused device capabilities.
Workspace pages and APIs are explicitly private, no-store and marked noindex, nofollow and noarchive at the response boundary.
Public indexing and cache policy remain unchanged, while HTTPS responses request one year of strict transport handling.
This release changes no product field, record, permission, endpoint or business action. It is one production-readiness step, not a complete Content Security Policy, WAF, rate-limit, monitoring, backup, incident-response or penetration-test programme. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Load later attention records without losing the current focus.
The first 50 ordered records still load automatically. Load more attention appends each later page while preserving the current filters, overview metrics and record handoff already visible in this browser.
Each explicit continuation request returns no more than 50 later enquiry follow-ups or trip tasks in the existing urgency order.
The cursor stores only the snapshot date and last position. It cannot choose an agency, membership, teammate, assignee or filter.
A failed page leaves prior records and filters in place. A full refresh intentionally restarts from the latest first page.
Counts and filters describe only the attention pages loaded in this browser, not an exact complete workload. This read-only release adds no write, schema migration, browser persistence, analytics, automation or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Find the right manual attention item without changing the snapshot.
The Command Centre can now narrow its already loaded attention summaries with a viewer-local search and Work type, Responsibility and Timing filters.
Search and filters inspect no more than the 50 attention summaries already loaded for the current viewer; they do not request or imply a complete agency workload.
Saved urgency counts remain authoritative while the interface reports exactly how many loaded records match, without changing their source order.
Filter state is transient and clears with viewer or access changes. Opening a record continues through the existing guarded handoff.
This interface-only release adds no endpoint, database or browser storage, mutation, automation, analytics or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Keep working through responsibility gaps without losing your triage context.
Needs an Owner now appends later ordered pages on request while keeping the work, viewer-local filters and safe claim context already visible in this browser.
The first page loads automatically. Each explicit Load more triage work action appends no more than 50 later enquiries and trip tasks needing responsibility.
The opaque cursor records only the last ordered position. Current active access and uncovered agency responsibility are derived again for every page.
A failed next page keeps loaded work, filters and claim state unchanged. Open claims and recovery reviews lock pagination until they are resolved.
Counts and filters describe only pages loaded in this browser, not an exact agency total. An uncertain later-page claim is never retried when bounded latest checks cannot prove it. This release adds no schema migration, storage, export, automation or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Load the next assigned-work page without losing your focus.
My Work now appends later ordered pages on request while keeping the assigned items, filters and safe action context already visible in this browser.
The first page loads automatically. Each explicit Load more action appends no more than 50 later assigned follow-ups and trip tasks.
The opaque cursor records only the last ordered position. Current active access and personal responsibility are derived again for every page.
A failed next page keeps loaded work and filters unchanged. Open action forms and recovery reviews lock pagination until they are resolved.
Counts and filters describe only pages loaded in this browser, not an exact all-work total or complete inbox. This release adds no schema migration, storage, export, automation or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the saved quote before repeating an uncertain revision save.
The first quote and every later revision now freeze one exact normalized save against the currently loaded revision when delivery or confirmation is uncertain.
A direct result must contain the exact next draft, its coherent server-calculated totals and no quote-history or Activity spill before the editor announces success.
Check latest reads the current quote and, when later work exists, the exact expected revision. Revision-history pages are never used as save proof.
An unchanged baseline permits only the identical reviewed retry. A matching revision resolves without attribution; a newer mismatch permits only Use latest.
Confirmed state applies before a best-effort history refresh. Existing access, navigation, mobile Back, focus and 390-pixel guards remain in force. This release adds no API, endpoint, request field, schema migration, database, browser persistence, analytics, telemetry or external action. It sends no quote, books no travel and moves no money. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check saved Operations before repeating an uncertain start.
Starting the existing manual Operations ledger now freezes one exact empty request against the loaded accepted quote when delivery or confirmation is uncertain.
A direct result must be one coherent initial Operations record for the exact accepted revision, with no tasks or Activity spill and zero manual money totals.
Check latest uses the existing authenticated Operations read. A matching saved ledger resolves without request attribution or a synthetic Activity entry.
An unchanged eligible state permits only the same reviewed start. A coherent changed state permits only Use latest saved Operations and sends no retry.
Existing access, navigation, mobile Back, focus and 390-pixel guards remain in force. This release adds no API, endpoint, request field, schema migration, database, browser persistence, analytics, telemetry or external action. It books no travel, contacts no supplier or traveller and moves no money. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the current Team roster before repeating an uncertain removal.
Revoke access and Cancel invitation now freeze the exact Team target, versioned route and request body until the owner can confirm the saved state.
A direct result must be a coherent owner-scoped Team envelope in which the exact frozen member or invitation is absent.
Check latest uses the existing queryless Team read. It never treats access-history pages as proof or invents an access-history entry.
An unchanged target permits only the same reviewed retry. A changed target permits only Use latest Team access and sends no retry.
Existing owner access, navigation, sign-out and focus guards remain in force. This release adds no API, endpoint, schema migration, browser persistence, email, analytics, telemetry or external action. Invitation creation and the other owner controls remain separate. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Find the right assigned follow-up without leaving My Work.
Search and narrow the existing bounded personal snapshot without changing a saved enquiry or task and without sending a new request.
Search loaded assigned summaries, then narrow by work type, work state or timing. The interface always says how many loaded items remain visible.
Filters cover every page explicitly loaded for the current viewer, with no more than 50 items per page, and preserve the urgency groups and source order.
Filters lock around next-step and task-progress forms. A return handoff clears only a hiding filter before focusing the requested work.
Filter state stays in transient viewer-local memory and adds no API, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Bring urgent work to the top of each operations record.
Search and filter the existing bounded task list without changing a task or sending a new request.
Search loaded task details, then narrow by status, responsibility or timing. The interface always says how many of the loaded tasks are shown.
Active overdue, due-today and next-seven-day tasks appear before later, unscheduled, completed and cancelled work.
Filters lock around task forms and recovery reviews. A direct task handoff clears only a hiding filter before opening the requested editor.
Filters cover only the current record's loaded limit of 50 tasks. They stay in transient viewer-local memory and add no API, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Assign responsibility while adding an operations task.
Add task can now keep Responsibility unassigned or select one active teammate from the current agency's loaded Team roster.
The existing task POST rechecks the current member, agency, record scope and exact active same-agency teammate in its decisive insert.
A winner creates one assigned or unassigned task, one task-created activity and one operation timestamp change. Same-key replay creates nothing twice.
A `409 assignment_unavailable` target writes nothing and returns the draft to Unassigned. An assigned reviewed retry reloads the active Team roster before it can run.
The request and activity retain only an opaque membership reference, never a teammate email. This release reuses the existing endpoint, receipt, 50-task capacity and retry flow; it adds no schema migration, browser persistence, message, notification, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check responsibility before repeating an uncertain self-claim.
Claim for me now freezes the exact work, viewer, snapshot baseline and versioned request until the latest responsibility can be verified.
A direct result must be an exact `200` for the same work at the next version. Unreadable or incoherent confirmation never unlocks a blind repeat.
Check latest responsibility uses only the existing queryless My Work and Triage snapshots. A positive My Work match confirms saved responsibility without request attribution or a synthetic activity.
The exact unchanged Triage item permits only the identical reviewed retry. Changed, missing or out-of-window evidence permits only Use latest triage snapshot.
Both snapshots remain capped at 50, so absence never proves a claim and never enables a retry. The focused review blocks navigation and sign-out while keeping its request only in memory. This release adds no API, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the workspace entry state before repeating an uncertain invitation response.
Accept invitation and Decline invitation now freeze the exact target, action and pending workspace state until the invited user can confirm what the service saved.
A direct result must be a strict `200` proving either the exact active member workspace or that the exact declined invitation is absent.
Check latest workspace uses the existing queryless context read and resolves a matching saved result without request attribution or a synthetic Team event.
An unchanged invitation permits only the identical reviewed response. A changed invitation or workspace permits only Use latest workspace state.
The focused review blocks blind repeat, competing responses, sign-out and ordinary page navigation while keeping its exact request only in memory. This release adds no API, endpoint, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the workspace entry state before repeating an uncertain first setup.
Create pilot agency now freezes the exact reviewed name and first-time entry state until the signed-in user can confirm what the service saved.
A direct result must be a strict `201` confirmation for the exact new owner workspace at version one before the interface announces success.
Check latest workspace uses the existing queryless context read. A matching owner workspace resolves without request attribution or a synthetic Team event.
Unchanged first-time setup permits only the identical reviewed retry. A different workspace or pending invitation permits only Use latest workspace state.
The focused review blocks blind repeat, sign-out and ordinary page navigation while keeping its exact request only in memory. This release adds no API, endpoint, schema migration, browser persistence, analytics, telemetry or external action. Invitation acceptance and decline remain separate. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the saved Settings state before repeating an uncertain agency-setup save.
Save agency setup now freezes the exact changed defaults, owner-scoped Settings baseline and expected version until the owner can confirm the authoritative state.
A direct result must be a strict `200` Settings envelope with the exact submitted values, untouched defaults preserved, the next version and one matching event.
Check latest uses the existing queryless Settings read. Matching saved state resolves without request attribution or a synthetic settings-history entry.
An unchanged baseline permits only the identical reviewed retry. A changed Settings state permits only Use latest saved settings and sends no retry.
Existing owner access, navigation, sign-out, focus and 390-pixel guards remain in force. This release adds no API, endpoint, request field, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the current Team state before repeating an uncertain agency-name save.
Save agency name now freezes the exact trimmed name, owner identity, Team baseline and expected agency version until the owner can confirm the saved state.
A direct result must be a strict `200` Team envelope containing the exact requested name at the next version and a newer update time before success is announced.
Check latest uses the existing queryless Team read. Matching saved state resolves without request attribution or a synthetic access-history entry.
An unchanged baseline permits only the identical reviewed retry. A changed Team state permits only Use latest Team state and sends no rename retry.
Existing owner access, navigation, sign-out, focus and 390-pixel guards remain in force. This release adds no API, endpoint, request field, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the current Team roster before repeating an uncertain invitation.
Prepare invitation now freezes the exact approved email, owner identity and Team baseline until the owner can confirm the saved state.
A direct result must be a strict `201` Team envelope containing the exact new pending version-one member record before success is announced.
Check latest uses the existing queryless Team read. A matching pending or active record resolves without request attribution or a synthetic access-history entry.
An unchanged roster permits only the identical reviewed retry. A changed roster permits only Use latest Team state and sends no invitation retry.
Invitations still send no automated email. Existing owner access, navigation, sign-out, focus and 390-pixel guards remain in force. This release adds no API, endpoint, request field, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Move from Triage straight to the right Responsibility control.
Needs an Owner now separates immediate self-claim from a focused handoff for choosing another active teammate on the exact latest record.
Claim for me keeps the existing confirmed self-assignment flow. Assign teammate opens the latest record without assigning anyone automatically.
Enquiry follow-up opens Overview; operations work opens the exact task editor. In both cases, focus moves to Responsibility or its active-team status.
The user still chooses a teammate and saves through the existing versioned, review-safe editor. Existing navigation and recovery guards remain in force.
At 390 pixels, both Triage actions stack full width with 44-pixel targets. This release adds no API, mutation, schema migration, database, browser persistence, analytics, telemetry, notification or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Move between record sections without losing your place.
Overview, Quote & itinerary, Operations & payments and Activity now form one semantic tab set with stable matching panels and an announced active section.
Arrow keys move through adjacent sections with wrapping. Home and End move directly to the first and last section, and only the active tab sits in the normal keyboard sequence.
At 850 pixels or less, the selector remains within reach on long records, scrolls horizontally when needed and brings the active tab into view.
Existing save, dirty-draft, discard and frozen-recovery guards still decide whether a section can change. Direct task openings keep their Operations focus.
Focus remains visible and touch targets remain at least 44 pixels high. This release adds no API, endpoint, request selector, schema migration, database, browser persistence, URL or cookie state, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Find and correct every capture issue without losing the draft.
New enquiry now uses one deterministic validation model before a private request key is generated or any save is sent. A focused error summary appears before the fields and moves keyboard focus to the exact control that needs attention.
Invalid controls expose their messages through aria-invalid and aria-describedby. Correcting one field clears only that field's message.
Title and destination allow 160 characters, next action 240 and operational notes 5,000—the same limits used by the saved-record contract.
Cancel returns to + New enquiry, while mobile error-summary actions remain full-width, wrapping and at least 44 pixels high at 390 pixels.
Retry-safe capture is unchanged: uncertain outcomes remain frozen behind Check latest and any reviewed retry reuses the same request key and exact payload. This release adds no API, endpoint, schema migration, browser persistence, analytics, telemetry or external action. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Focus the loaded triage snapshot without changing it.
Needs an Owner provides viewer-local search plus Work type, Responsibility and Timing filters over only the pages already loaded in the bounded snapshot. The source order and existing saved records remain unchanged.
Search matches only the reviewed title, destination, next action, status, due date, work-type label and generic responsibility label already present in the response.
Members can narrow the loaded view to Tasks or Enquiries, Unassigned or Needs reassignment, and the existing overdue-through-unscheduled timing groups.
The screen says how many items are showing out of the loaded snapshot. It never presents that result as an exact all-work total or reveals work outside the page.
Filters stay in transient viewer-local memory, make no request and change no record or activity. Claim for me and Open latest record keep their existing guarded behaviour. This release adds no API, request selector, schema migration, browser persistence, analytics, telemetry or external action. Controls stack to one column with full-width 44-pixel actions at 390 pixels. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the saved task before repeating an uncertain edit.
The existing manual task editor now sends only normalized fields that actually changed, together with the reviewed task version. A successful response must contain the exact next-version task inside the bounded operations envelope.
Exact 400, 404 and 415 outcomes leave the draft editable. A 409, delivery uncertainty, server failure, unexpected status or incoherent success freezes one immutable viewer-, enquiry-, operation- and task-scoped attempt.
Check latest task uses the existing authenticated queryless exact-task read. An unchanged baseline permits only an explicit retry of the identical frozen request body, while a later exact match resolves without attribution or synthetic activity.
A newer mismatch can only use the latest saved task or explicitly rebase the originally changed fields for another Save. Every non-null assignee is confirmed against the current active-team roster before retry or rebase.
The frozen review blocks blind retry and ordinary navigation, follows the central 401 or 403 access-change clear, and remains keyboard, touch and 390-pixel safe. This release adds no endpoint, request field, schema migration, storage, browser persistence, analytics, telemetry or external action. It does not contact travellers or suppliers, make a booking or move money. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Check the saved quote before repeating a decision.
Present, Accept and Decline remain manual internal status records. Each action now freezes the exact viewer, enquiry, quote baseline, selected revision and request body until a strict result is confirmed or the member makes an explicit reviewed choice.
A successful response must contain the exact authoritative next-version quote and selected revision for the reviewed transition, with coherent statuses and timestamps and empty revision-history and activity arrays.
Exact 400, 404 and 415 responses are known no-write outcomes. A 409 or unknown outcome freezes the attempt. Check latest quote uses the authenticated exact selected-revision GET /api/workspace/enquiries/:id/quote?revision=R before another action is considered.
A matching saved transition resolves without attributing the uncertain browser request and without synthesizing an activity. An unchanged exact baseline permits only an explicit retry of the same frozen request body or abandonment. A newer mismatch can only use the latest saved quote; it is never applied over newer work and cannot retry or rebase the decision.
A frozen attempt blocks blind retry and ordinary record, section, workspace, refresh and sign-out navigation. Mobile Back to Pipeline list remains available after the request finishes and preserves the mounted review. Reopening the same record returns to a focusable Quote alert, with keyboard, touch and 390-pixel-safe actions. Every PATCH and Check latest 401 or 403 uses the central viewer-scoped access-change clear. This release adds no API endpoint or request field, schema migration, storage, browser persistence, analytics, telemetry or external action. It does not send a quote, verify a customer decision, make a booking or move money. The Core Pilot remains not ready for real customer data: use only fictional or masked, non-sensitive planning information.
Review uncertain progress before trying the same change again.
The existing Progress editor now sends only fields that actually changed among status, next action, next-action due date and responsibility, together with the reviewed enquiry version. Responsibility is included only when the current active-team roster is available and the selected assignment remains safe to submit.
A successful save must return the authoritative next-version enquiry and exactly one updated activity, plus one status-changed activity only when status changed. An incomplete or unexpected receipt is treated as an unknown delivery or response outcome.
Exact 400, 404 and 415 outcomes are known no-writes and leave the draft editable. A 409 or unknown outcome freezes the exact submitted fields and version. Check latest uses the authenticated, queryless exact enquiry read before any explicit reviewed retry with the same version.
A newer record matching every submitted field resolves without attributing the change and without synthesizing an activity. Only an explicit mismatch choice rebases the submitted fields over the latest record for another review.
A frozen attempt blocks blind retry and ordinary record, section and workspace navigation. Mobile Back to Pipeline list remains a presentation-only handoff and preserves the same mounted draft. Recovery preserves loaded Pipeline pages, selected detail and other open desktop or mobile drafts. An authoritative progress change clears stale agency-wide Find results while retaining the bounded query for a fresh explicit search. Every PATCH and Check latest 401 or 403 uses the central viewer-scoped access-change clear. This release adds no API endpoint or request field, schema migration, storage, browser persistence, analytics, telemetry, automation, message, notification, booking, payment, portal, export or other external action.
Owner controls prove current authority where the change commits.
The four existing owner-only administration paths now bind the exact current owner inside every decisive database statement: changing the Team agency name, changing Agency setup defaults, preparing an invitation including the existing expired-invitation replacement, and revoking a member or cancelling a pending invitation. Existing screens, request bodies and response shapes stay the same while owner access remains valid.
Each decision binds the reviewed membership ID, agency ID, signed-in user ID and immutable record scope and requires that membership to remain active with the owner role. The browser supplies no agency, owner, role or scope selector.
Preparatory reads prove current owner access before record-dependent no-write feedback about a target, capacity or version. Because no business write follows, an access change committed after that read does not retroactively replace that feedback.
Business writes and their append-only Team or Settings events are counted together. Invitation replacement separately accounts for the expired record and new invitation, so no failed request can leave an orphan row or audit event.
For a request that reaches a decisive write, if revocation or another owner-access change is ordered before that write, the action returns 403 access_changed and writes no agency name, setting, invitation, membership status or audit event. After a batch error or zero winning business changes, the service diagnoses current owner access first, ahead of the existing conflict or not-found outcome. A change that wins while owner access is valid remains committed and accountable. The existing role-aware Team or Settings envelope is the final private-response gate: when an access change commits before that gate completes, the private response is withheld and existing access-change handling runs; an authorised response completed first is not retroactively recalled. This is database ordering, not a session lock. The release adds no endpoint, schema, migration, role, permission, new business action, retry key, invitation email, retention rule, browser persistence, analytics, telemetry, automation, message, notification, booking, money movement, portal or export. Agency creation, invitation acceptance or decline, and ordinary member business writes retain their existing separate rules.
Correct the working brief without rebuilding the enquiry.
An active member can edit seven bounded fields inline: title, source, destination, departure date, return date, indicative budget with its currency, and operational notes. Status, next action, next-action due date and responsibility remain in Progress enquiry.
Required values, dates, budget and currency are normalized and validated before save. Invalid or no-change attempts create no edit or activity and keep the draft available.
The exact existing same-origin versioned PATCH /api/workspace/enquiries/:id sends only normalized changed brief fields plus the reviewed version. One winning edit advances the version once and creates one accountable updated activity with changed field names only.
Stale, conflicting and unknown outcomes preserve and freeze the draft. Check latest reconciles the existing authenticated, queryless exact enquiry read before a member explicitly reviews any retry.
Back to Pipeline list preserves an open brief draft on mobile without a request, mutation or discard; other enquiry, section, workspace and sign-out navigation stays guarded. Network or server uncertainty, a malformed response or an unexpected successful body freezes the exact normalized payload, blocks blind retry and ordinary cancel or discard, and remains transient to the current viewer and enquiry. A brief edit changes only the enquiry row, version and new field-name activity. It never rewrites quote revisions, accepted operations, fulfilment tasks, payments or refunds, totals or balances, or earlier activities. A later new quote may use the latest budget through the existing quote-default rules; saved revisions remain unchanged. The PATCH winning update proves current access, and its post-write activity hydration and final response contributor are also current-access aware. If revocation commits before the update, no edit or activity is written. If the edit commits while access is valid but access changes before response hydration completes, the accountable write remains, the private response is withheld, and the central access-change clear runs. If every response-contributing statement completes first while access is valid, that authorised response may be returned; a later revocation is not retroactive and every later access fails. There is no new endpoint, table, column, index, schema migration, binding, storage system, role, permission, external action, URL state, browser persistence, cookie, analytics or telemetry. It adds no message, notification, automation, booking, payment movement, portal or export. Use only fictional or masked traveller information; never enter passport, payment-card, bank, medical, credential or other sensitive traveller data.
Shared records prove current access in the same statement that reads them.
The nine remaining legacy read families now bind the exact active membership, agency, signed-in user and immutable record scope wherever private rows enter a response. Existing screens, response shapes and staff workflows stay the same.
Pipeline, Activity, Quote, quote-history, Operations, Command Centre, Team-roster, Team-history and Settings reads share one current-access rule.
If revocation or another access change commits before a contributing read statement, that statement returns no shared rows. The whole private response is withheld with 403 access_changed; the interface aborts in-flight work and clears viewer-scoped shared data through the central access-change path.
If every contributing read statement completes first while access remains valid, the response is an authorised completed read and may be returned. A revocation committed afterward is not retroactive and applies to every later shared read.
Every statement that can contribute private rows binds the reviewed membership ID, agency ID, signed-in user ID and immutable record scope. Owner-only pending-invitation and Team access-history statements also prove the current owner role. If access changes between statements in a multi-statement hydration, the endpoint withholds the whole response even when an earlier statement selected rows internally. As an adjacent diagnostic closure, the existing manual-payment history empty-scope fallback now rechecks current access and enquiry/operation scope in the same data statement. It remains part of the existing payment-history workflow, not a tenth shared-view family. Successful response envelopes, fields, ordering, cursor formats, pagination controls, normal empty and not-found outcomes, and user workflows remain unchanged while access is valid. Existing 25-entry pages, selected quote-detail limits, 50-task and 100-payment operation caps, 50-item Command Centre attention limit, 11-current-account Team cap and 20-event Settings history limit remain unchanged. This is database ordering, not a session lock or retroactive deletion of data already displayed. It changes no v0.24 write ordering or v0.25 retry rule and adds no table, column, index, migration, binding, role, permission, business action, browser persistence, analytics, telemetry, automation, message, notification, booking, money movement, portal, export or external action.
Operational tasks can be checked and retried without creating duplicates.
Each validated new-task attempt carries one random opaque canonical request key. The first accepted save creates one task and one accountable activity; an exact replay resolves to that same scoped task without consuming another capacity place.
The same-origin POST stores the key as the normal task ID. First save returns 201; the same canonical task replay returns 200 with no second activity or operation timestamp change.
An uncertain outcome freezes the exact request and draft. The authenticated, queryless exact-task GET must resolve a matching, missing or changed task before any reviewed same-key retry is available.
Create, replay and exact lookup return only top-level task and notice fields. Confirmation requires the selected operation, exact canonical create fields and optional responsibility at version 1 whose created and updated timestamps are equal.
Definitive invalid-request, unsupported-media, not-found, capacity, operation-not-started and assignment-unavailable POST outcomes keep the draft editable because no task was written. A generic conflict, network or server uncertainty, malformed body or unexpected success instead freezes the outcome. Retry-Safe Task Creation preserves the existing 50-task capacity and v0.24 commit-time access ordering. A new key cannot write at capacity, while an exact replay consumes no second place. Same-key changed-content, wrong-operation and cross-tenant collisions remain generic conflicts and non-disclosing. Check latest keeps the frozen state when lookup fails, confirms a coherent match, permits only an explicit same-key retry when no task exists, and never enables discard or a fresh key after a checked-missing result. A present changed task is treated as authoritative latest state with retry blocked. Viewer, enquiry, operation or access changes abort and clear the transient viewer-, enquiry- and operation-scoped attempt; blind resubmission and ordinary cancellation remain blocked, and access errors use the central access-change path. The opaque key contains no task, agency or staff data. The interface never visibly renders the request key, and it is not placed in a query parameter or address-bar page URL, browser storage, cookies, analytics or telemetry. The same-statement exact lookup re-derives active agency membership and immutable record scope and returns no wider operations, payment, activity or staff payload. This release does not claim the separate full same-statement guarantee for the nine remaining Pipeline, Activity, Quote, quote-history, Operations, Command Centre, Team-roster, Team-history and Settings read surfaces; that broader hardening remains a separate next release. It adds no table, column, index, migration, binding, storage system, task edit, deletion, paging, filter, triage, bulk assignment, automation, message, notification, booking, money movement, portal, export or external action.
Shared trip records recheck access at the instant they change.
The seven existing quote-and-fulfilment writes that previously relied on request-entry access now prove the signed-in member's active agency membership and immutable record scope again inside their winning database statement.
Each winning statement binds the reviewed membership, agency, signed-in user and record scope. The browser cannot select or widen that authority.
If revocation or another access change is ordered before the decisive batch, the action returns access_changed. Zero business or activity writes occur, and no shared record, child row, version, total or operations timestamp is changed.
A decisive batch that fully commits while access is still valid remains an accountable committed change. A later access change withholds the private response and clears the viewer-scoped workspace.
Commit-Time Shared-Record Access covers quote revision creation; manual presented, accepted or declined quote status decisions; operations start; operations task creation and editing; and manual payment or refund creation and one-way voiding. Follow-on statements remain conditional on the winning write, so a rejected request cannot leave a partial quote, operation, task, payment record or accountable activity. Successful request and response shapes, version conflicts, capacity limits and cross-tenant non-disclosure remain unchanged. When access changes only after a fully committed batch, the private response is withheld and the interface clears viewer-scoped workspace state through the central access-change path rather than displaying stale private data. This release adds no table, column, index, migration, binding or storage system; no role, permission, record type or new business action; and no automation, message, notification, booking, money movement, portal, export or other external action.
Check whether a new enquiry was saved before trying again.
Each new-enquiry attempt now carries one required random opaque request key. The first accepted save creates the enquiry, while an identical replay resolves to the same record without creating another enquiry or activity entry.
The request key is sent in the same-origin POST body and stored as the normal enquiry ID. It contains no enquiry, query or staff information.
An unknown outcome freezes the exact request and draft. Check latest must review the authenticated saved detail before a same-key retry can be chosen.
Active membership, agency record scope and the existing 500-enquiry capacity are checked again for creation and exact record access.
A first save returns the new record and one accountable activity; an identical replay returns that record without another row or activity. A different request using the same key is rejected without revealing another tenant's record. If delivery or the response is uncertain, blind retry is blocked. The browser keeps the frozen request only in transient viewer- and agency-scoped memory so Check latest and any reviewed retry reuse the same key and content. The authenticated exact-detail path and response use the key as the normal enquiry ID. The created activity references that ID through its normal enquiry relationship without copying the key into activity details. The interface never visibly renders the key. It is not placed in a query parameter or address-bar page URL, written to browser storage or cookies, or sent to analytics or telemetry. Create, exact GET and enquiry PATCH requests recheck current access; viewer, agency or access changes abort and clear the frozen attempt. This release adds no table, column, index, migration, binding, retention rule, new business action, automation, message, notification, booking, payment, portal or other external action.
Review the manual payment ledger one bounded page at a time.
Manual payment and refund history now loads separately from the operation's core record and tasks. The first page contains no more than 25 newest records.
Each tenant-scoped page has a fixed 25-record limit. The shown count describes only records loaded in this browser and is not an exact ledger total.
An explicit action appends one older page without replacing loaded records, changing the selected enquiry or discarding an open create or void draft.
Recorded payments, refunds, net and balance are calculated across all scoped records. Voided entries remain accountable but are excluded from active totals.
The cursor is a position, not authorisation; active membership and the enquiry, operation and agency record scope are checked for every page. A newer record cannot shift or duplicate an earlier-page walk. Ordinary errors preserve tasks, exact totals, loaded history, retry position and drafts, while viewer, enquiry or access changes clear the history. The existing atomic 100-record capacity includes voided records. Core operations and task responses no longer carry the full payment ledger, and a successful create or one-way void returns only the affected record with refreshed totals and capacity state. Each new-record attempt sends one random opaque record key in its POST body and the server stores it as the manual record ID. Exact replay reuses that key and creates no duplicate row or activity. Authenticated payment-page and exact-record responses return it as the row ID, and the accountable payment activity keeps it as an internal record association. While an outcome is unknown, the browser retains it only in viewer-, enquiry- and operation-scoped memory so Check latest and any reviewed retry use the same frozen request. Blind retry remains blocked until that review. The interface does not render the key, and the key contains no query, business or staff data. Reconciliation and void requests put it only in the scoped payment-record path, never in a query parameter or address-bar page URL. It is not written to browser storage or cookies or sent to analytics or telemetry. Query and draft content remain out of URLs. Migration 0011 is index-only. This release adds no table, column, retention policy, exact record total, search, filter, export, archive, deletion, new payment action, charge, refund, money movement, settlement verification, invoice, receipt, analytics, automation, message, notification or external action.
Move between the Pipeline list and one enquiry on a small screen.
At viewport widths of 850 pixels or less, the Pipeline presents one list or detail pane at a time. Wider desktop layouts keep the existing simultaneous panes.
Loaded enquiries, agency-wide results, workspace snapshots, confirmed claims and newly captured enquiries all bring the latest authoritative detail into view.
The mobile detail pane provides a clear return control. Any existing return to Command Centre, Triage or My Work remains available alongside it.
Returning preserves selected detail and drafts, loaded pages, stage, local and agency-wide Find state, result shelf, page cursor and source-return context.
Returning to the list makes no request, mutation or discard. A commit already in flight blocks the handoff until it completes. This interface-only release adds no API, schema, migration, storage, URL state, analytics, activity, automation, message, notification or external action and changes no privacy boundary.
Find one enquiry across the bounded agency Pipeline.
Find across Pipeline looks across all stages of the active agency's bounded enquiry ledger, so a member does not need to load every 25-record page before opening one known record.
Nothing is sent while the member types. Only Search all agency records sends the exact bounded query in a same-origin POST body, never in the URL.
The read transiently scans no more than 500 same-tenant summaries across all stages and compares only title, destination, source and next action.
The response shows no more than eight matches and only whether more exist. It returns no exact total and does not echo the submitted query.
Active agency access is established before the request body is inspected. Choosing a result uses the existing in-progress-save and unsaved-work guards, then fetches the latest authoritative tenant-scoped detail. It does not insert an outside result into the loaded-page cache, change the selected stage or alter loaded-only counts. Ordinary failures preserve loaded pages, selected detail and drafts; viewer or access changes clear the transient search. Queries and results are not persisted in the database, browser storage, cookies or the URL and are not sent to analytics or telemetry. This read creates no activity or mutation and adds no schema, migration, index, binding, storage system, automation, message, notification or external action.
Keep the current roster small, then load owner-only history explicitly.
Team & Access returns only the owner, active members and the owner's unexpired pending invitations. Revoked memberships and expired invitations remain accountable records without being returned as an unbounded roster.
Members receive the bounded active roster and never receive team-event history. The owner keeps the existing invitation and revocation controls.
The owner's separate history request returns the newest 25 privacy-reviewed summaries. Each action appends one earlier page, and the shown count covers loaded entries only, never an exact event total.
Active membership and the owner role are checked before a history cursor, invitation email, workspace-name change, membership identifier or version is inspected.
History summaries contain the event action, a bounded target label, recorded-by email and timestamp, plus a derived invitation expiry when applicable and a pseudonymous page-item key used only for stable loaded-list rendering. Neither that key nor its pseudonymous continuation cursor repeats a raw stored event identifier, including an account-derived legacy identifier. The key is not an agency, account or membership identifier and cannot select another record. Summaries include no raw event details or internal agency, account or membership identifiers. A newer event does not move or duplicate an in-progress earlier-page walk; refresh the newest page to see it. Ordinary history failures preserve the current roster, loaded entries and open owner form for retry. Viewer or access changes clear loaded history. Migration 0010 adds and backfills one non-business public-key column with a required unique 32-character lowercase hexadecimal value per team event while the internal primary key remains private. It rebuilds only the existing team-event table to enforce that non-business key, preserves every event's business content, and adds the timestamp-and-public-key and expiry-aware membership indexes before database optimisation. It adds no new table, binding or storage system and deletes no event. To remain Sites-parser-safe, migration 0010 contains no trigger DDL. After the rebuild, each allowed workspace entry awaits the retry-safe access-time Team-event guard installer before any workspace record is read or written. The installer restores the append-only update and delete triggers. If guard installation fails, that access fails closed and the failed cached state clears so a later request can retry. No retention rule is introduced. This release sends no invitation email and adds no export, analytics, automation, message, notification, booking, payment, portal or other external action.
Open one quote revision exactly, then load earlier summaries explicitly.
The Quote workspace keeps the current or explicitly selected revision as exact detail. Its separate history request loads the newest fixed page of no more than 25 saved revision summaries.
Opening or acting on one quote no longer requires the service to scan every saved revision. Pricing and itinerary detail load only for the requested revision.
Each action appends one fixed 25-summary page. The shown count covers loaded summaries only, never an exact revision total. Each quote retains at most 50 saved revisions.
The opaque cursor records position only. Active membership, enquiry ownership and agency record scope are derived and checked again for every request.
A newer revision does not shift or duplicate an in-progress earlier-page walk; reload the newest page to see it. A decided current revision beyond the newest page remains separately selectable as exact detail without inflating the loaded-summary count. Ordinary history failures preserve loaded summaries, selected detail and unsaved quote work for retry. Viewer, enquiry or access changes clear the loaded history. A retry-safe database trigger rejects revision inserts at the 50-record cap; no revision or activity is created and the draft remains available. This release adds no table, column, index migration, binding or storage system, and it changes no saved pricing or itinerary content. The cap is not deletion or retention. This is not a revision search, filter, exact total, export, new kind of quote mutation, message, booking, payment, portal or other external action.
Open recent activity first, then load older activity explicitly.
The Activity tab now waits until an active member opens it. That first request loads the newest fixed page of no more than 25 accountable activity entries for the selected enquiry.
Each response is bounded. Enquiry detail, quote and operations reads no longer return or scan an unbounded activity history.
Older pages append without replacing loaded entries or changing the selected enquiry. The shown count covers loaded entries only, not an exact history total.
The opaque cursor records position only. Active membership, enquiry ownership and agency record scope are derived and checked again for every request.
Enquiry detail, quote and operations read and reload envelopes never return an activity history. An enquiry update may return only its newly persisted entries, while quote and operations envelopes return none; re-entering Activity refreshes the authoritative newest page. A mutation that does not win its guarded write, including a rejected stale or losing competing mutation, contributes no activity. Viewer, record or access changes clear the loaded timeline. Migration 0009 changes only the activity lookup index and runs database optimisation. A retry-safe workspace access guard separately installs prepared append-only update/delete database triggers before allowed reads, with no new table, column, binding or storage system. It deletes no history and is not a retention policy, activity search, filter, exact total or export. It adds no business mutation, automation, message, notification, booking, payment, portal or external action.
Load the Pipeline in explicit, bounded pages.
An active member receives a fixed page of no more than 25 enquiry summaries. An explicit Load more action requests the next positional page and keeps the summaries already loaded in view.
List responses omit enquiry notes and deeper private quote, operations, activity and payment detail. Detail is fetched separately for the selected or opened record.
Pipeline header and status counts cover only cumulative loaded records. Agency-wide Find & Open is a separate bounded request with no exact total.
The opaque cursor records position, not authority. The server derives active agency access again, and atomically caps stored enquiries at 500 across all statuses.
This remains a private, internal pilot. Reaching the cap creates no enquiry or activity, and the member's browser draft remains available for review. Bounded Pipeline adds one composite index migration, with no new table, column, binding or storage system. It is not a complete CRM, exact total, historical search, export or data-lifecycle policy, and it creates no automation, message, notification, booking, payment, portal or external action. Broader operation still requires data-lifecycle review and bounded activity and detail history.
The original loaded-page discovery step.
Find & Focus introduced a temporary interface filter over tenant-scoped Pipeline summaries already loaded for the signed-in member. Agency-wide Find & Open now supersedes that cumulative-loaded limit while retaining explicit guarded opening.
Up to 80 characters are normalised into literal tokens matched only against the enquiry title, destination, source and next action.
Matches remain combined with the selected Pipeline stage. At most eight are visible, with clear cumulative-loaded and refine-the-search wording.
Typing does not change the open record. Choosing a match uses the Pipeline's existing guarded navigation, and viewer or access changes clear the local state.
The original filter changed no record, stored no search history and created no activity, mutation or external action. The current Find across Pipeline control still sends nothing while typing, but an explicit Search all agency records action now makes the separate bounded same-origin request described in v0.20.
Turn assigned responsibility into a focused personal snapshot.
An active member can manually refresh a read-only view of open enquiries and trip tasks assigned to that member. The server derives the current active membership; the browser does not choose a teammate or build the list from the agency-wide Command Centre.
The snapshot includes assigned open enquiries, including those missing a next action, and assigned open or in-progress tasks.
Lagos dates group loaded work as overdue, due today, next seven days, later or unscheduled; an explicit action appends a later page when one exists.
Refreshing reads the latest saved records. It does not change an assignment, status, next action, due date or underlying activity history.
The shown and urgency counts cover only the pages loaded in this browser, not an exact all-work total. This personal snapshot is not a complete inbox or export and provides no teammate comparison. It does not embed the separate agency-wide Needs an Owner snapshot. Its response omits assignee and staff identifiers, notes and financial fields. It sends no notification or message, starts no automation, makes no booking or supplier action, moves no payment, and creates no customer or agent portal or download.
Turn one assigned enquiry into a clear internal next action.
When an open enquiry follow-up in My Work is assigned to the current member but still has no next action, that member can add one bounded next action and an optional due date without turning the personal snapshot into a general editor.
The service derives the active membership again and cannot use the action to plan another teammate's work.
The save succeeds only while the enquiry remains open, assigned to that member, missing a next action and at the version they reviewed.
A winning request changes only the next action and optional due date, advances the enquiry version and records one attributable activity.
Plan my next step is internal business planning for one enquiry follow-up. It does not update an operations task, replace an existing plan, change status, responsibility or notes, operate in bulk, generate an AI suggestion, create a reminder, send a message or notification, contact a customer or supplier, make a booking, move a payment, create a portal, or start any external action. It uses the existing enquiry and activity records and adds no schema migration.
Move one assigned task forward without leaving My Work.
The fixed sequence is Open → In progress → Done. The current member can advance one assigned operations task by exactly one permitted step. Completed work cannot be reopened or skipped through the sequence from this action.
The service derives the active membership again and rechecks the agency, current task assignment and record version when the change is committed.
An open task can start and an in-progress task can finish. The action cannot choose another status, skip ahead or reverse completed work.
A winning request changes only task status, advances the version and records one attributable operation-task activity with the saved status transition.
Progress my task is one guarded internal update, not a general task editor. It cannot create or delete a task, change title, category, due date, notes or responsibility, progress a teammate's task, operate in bulk, create a reminder, generate an AI suggestion, send a message or notification, contact a customer or supplier, make a booking, move a payment, create a portal or start an external action. It uses the existing task and activity records and adds no schema migration.
Surface open work before responsibility disappears.
Every active member can manually refresh a separate, agency-wide and read-only view of open enquiries and trip tasks with no available active teammate responsible. The server derives the current agency access; the browser does not choose a teammate or filter another bounded report.
Open work appears as Unassigned or Needs reassignment. If a saved teammate is no longer available, their identity is never returned or shown.
Lagos dates group displayed work as overdue, due today, next seven days, later or unscheduled. Every count describes only the records shown.
The snapshot has no inline assignment. A member reviews the latest underlying enquiry or task before using its existing version-protected responsibility control.
Truncation may indicate that more open work exists, but this snapshot is not a complete inbox, export, exact agency total or staff-performance comparison. It contains no staff identity, notes or financial fields. Refreshing or opening it sends no notification or message, starts no automation, makes no booking or supplier action, moves no payment, and creates no customer or agent portal or download.
Take responsibility for one eligible record without taking it from a teammate.
From the responsibility-gap view, an active member can claim one uncovered open enquiry or operations task for that member alone. The server derives the current active membership and rechecks the latest record at the moment of the claim.
The browser cannot choose an agency, membership, user, assignee or another teammate. The success response returns no staff identifier.
A claim succeeds only while that enquiry or task remains open, uncovered and at the version the member reviewed. Work with an available active teammate cannot be taken.
The winning update advances the version and records one activity. A stale, ineligible or competing request changes nothing and records no activity.
Claim for me changes internal responsibility only. It does not choose an arbitrary teammate, operate in bulk or automatically, send a message or notification, change a status or date, contact a customer or supplier, make a booking, move a payment, create a portal, or produce an export.
Keep a successful claim connected to the next review.
After Claim for me succeeds, the same viewer receives a visible confirmation and can open the claimed record, view My Work or continue triage. Opening the latest record from attention, My Work or triage also keeps a local path back to where that review began.
The claimed record remains visible after it leaves the responsibility-gap list, so success is not reduced to a disappearing row.
Open the claimed record, move to the personal My Work snapshot or continue reviewing uncovered work in triage.
A record opened from Command Centre attention, My Work or triage keeps a return path for that viewer while they review the latest underlying record.
The receipt and return context are local to the current viewer's workspace session. They are not persisted, shared or sent to a new endpoint. A viewer change clears them; so does an access error detected by their Pipeline or report source. This release adds no new claim, assignment or other mutation, exposes no staff identifier, and sends no message or notification, starts no automation, contacts no customer or supplier, makes no booking, moves no payment, creates no portal, and produces no export.
Make follow-up responsibility visible without advancing the enquiry.
Every new enquiry starts unassigned. Any active owner or operational member can later choose one active operational teammate in the same agency, reassign the enquiry or return it to Unassigned. Responsibility stays inside the shared pipeline rather than becoming another private list.
A newly captured enquiry remains Unassigned until an active teammate chooses responsibility.
Owners and operational members share the same control and can select only an active operational membership in their agency.
Assignment, status, dates and other enquiry edits use the same version check and accountable activity history.
The enquiry and assignment activity retain an opaque membership reference without copying the assignee's email or account identifier. If access is revoked later, pipeline and Command Centre responsibility labels show only “Former team member — reassign”. The agency owner can still review the existing accountable identity and access history in the owner-authorised Team & Access view. The bounded Command Centre remains a separate agency-wide view and does not calculate assignment totals. The v0.9 My Work Snapshot is a narrower read-only view derived for the current operational member, not a complete inbox or export. Assigning an enquiry is internal planning only: it sends no message or notification, changes no status or follow-up date, and does not contact a customer or supplier, make a booking, charge or refund a customer, move money or start an external workflow.
Make responsibility visible without turning a task into a message.
Every operations task is either unassigned or has one active teammate responsible for it. Any active owner or operational member can assign or reassign the work, with each successful change retained in the accountable activity history.
Choose one active operational agency membership for a task, or leave the task unassigned.
Owners and operational members have the same assignment control; summary viewers are excluded.
Version checks protect concurrent edits, and successful reassignments join the existing activity trail.
A revoked teammate's stored reference remains as historical responsibility, but task and Command Centre responsibility labels show only “Former team member — reassign”. The agency owner can still review the existing accountable identity and access history in the owner-authorised Team & Access view. Staff identity stays inside the authorised agency workspace, and assignment records do not copy the teammate's email into tasks or assignment activity. The bounded Command Centre remains an agency-wide view, while the separate v0.9 My Work Snapshot is a limited read-only view for the current operational member rather than a complete inbox or export. Assignment does not send a message or notification, contact a customer or supplier, make a booking, move money or start an external workflow, and it does not add a public, customer or agent portal.
Start each new draft from the agency's approved basics.
The agency owner can set a restrained visual identity and two practical defaults for new work. Operational members can view the settings, while every owner change remains accountable in the agency settings history.
Choose primary and accent colours for the internal client preview.
Choose NGN, USD, GBP, EUR, GHS, KES or ZAR. New enquiries start there; new quotes first use the enquiry's supported budget currency.
Start each new quote draft with a validity period of 7, 14, 21 or 30 days.
If an enquiry has no supported budget currency, its new quote uses the agency default. Quote validity uses the saved validity period. Existing enquiries, saved quotes and quote revisions remain unchanged. The preview uses the agency name and restrained accents internally. It does not create a customer or agent portal, public sharing link, logo upload, custom domain, PDF or other download, email, WhatsApp, send or publish action, translation or right-to-left guarantee, live exchange rate, live booking, money movement, invoice, receipt, ticket or document.
Start with the workflow that matters. Add modules with purpose.
These modules describe the planned platform foundation. A pilot scope is agreed in phases; it does not automatically include every module or external connection.
Agency workspace
Brands, branches, users, roles, market defaults and operating rules.
CRM & enquiries
Leads, conversations, ownership, follow-ups and customer history.
Traveller profiles
Reusable traveller details, preferences and controlled document records.
Quotes & itineraries
Original costs, quote currencies, rate snapshots, markups, revisions and branded presentation.
Trip operations
Bookings, suppliers, confirmations, deadlines, changes and after-sales work.
Payments & records
Invoices, schedules, receipt records, balances and original, transaction and settlement currency context.
Documents & readiness
Passports, vouchers, tickets, requirements and departure checks.
Customer portal
A branded place for quotes, trips, payments, files and service requests.
Agent portal
Partner users, commercial rules, account controls, bookings and statements.
Reporting & audit
Pipeline, operational and financial views supported by accountable history.
Your business in front. A reusable platform underneath.
The design direction allows each agency to configure its brand, users, roles, policies and commercial rules while the underlying product remains maintainable. Supplier and payment connections are added only where authorised access exists.
Language, locale and currency are operating rules—not decoration.
Agreed interface and content languages, translation ownership, fallback rules and right-to-left support when scoped.
Date, time, number, address and document formats matched to each approved market.
Original, base, quote and reporting currencies with a recorded rate source, timestamp, markup and rounding rules.
Payment and settlement currencies remain subject to the agency’s gateway, merchant account and bank. Supplier prices are revalidated before confirmation.
Software, travel service and inventory remain different responsibilities.
Keeping those roles explicit protects the customer experience and makes integration decisions easier to evaluate.
Designs, builds and supports the software
Discovery, product design, engineering, authorised integrations and technical support.
Owns the customer and travel service
Pricing, operating permissions, supplier contracts, fulfilment, refunds and traveller support.
Provide approved products and terms
Availability, commercial access, booking rules, changes and supplier-side fulfilment.
Help shape the platform around real agency workflows.
We are opening structured discovery and phased pilot engagements for selected travel businesses.