Conduit is in alpha. Earlier updates have been numbered retrospectively from the documented project history; these numbers do not indicate separate historical deployments or production readiness.
Back to requisitionsConduit update history
Current version: v0.1.0-alpha.104
Conduit is in alpha. Earlier updates have been numbered retrospectively from the documented project history; these numbers do not indicate separate historical deployments or production readiness.
October 5, 2026
v0.1.0-alpha.104: Shared records stay current on their own
Changes saved by other people now appear automatically, within about 30 seconds while Conduit is open, and as soon as you return to its tab. You no longer need a Refresh button. Updates wait while you are filling in a request, have a request or dialog open, are typing in a field or have unsaved configuration changes, so your work is never replaced. If another administrator saves a newer configuration while you have unsaved changes, Conduit says so and lets you keep your changes or load the newer version. Configuration now shows a short status line with Save changes (renamed from Save shared configuration), Notification outbox and Sign out, in place of the Shared workspace panel and the View as selector. If your session expires, Conduit stops checking and asks you to sign in. Email and Spectrum behavior are unchanged.
October 5, 2026
v0.1.0-alpha.103: Support can trace problems
Conduit now keeps a short private record of what happened when key actions succeed or fail, such as signing in, saving configuration, importing a CSV file, uploading a file or submitting a request. Support can use it to find out why something did not work without asking you to repeat it. The record holds only the kind of action, the result and counts. It never holds passwords, file or CSV contents, names, email addresses or amounts. It stays inside Conduit, is kept for at most 30 days, and nothing is sent anywhere. Screens, records, sign-in and email behavior are unchanged.
October 5, 2026
v0.1.0-alpha.102: The Conduit address opens sign-in
Opening the Conduit web address without a page path now goes straight to Conduit sign-in. Before, it showed an internal technical review page. Nothing else changes: records, sign-in, email behavior and the outbox stay the same.
October 5, 2026
v0.1.0-alpha.101: Full cost-code exports import and save
A full cost-code export from the accounting system, with about 17,000 lines across 160 projects, can now be imported in shared records. Previously the preview took a long time, and saving the shared configuration was refused because the request was too large. The check now finishes in well under a second, and a shared configuration of this size saves and reloads with every record and value unchanged. Other requests keep their existing size limit. When a file names projects that are not configured yet, one message now gives the number of affected rows and lists the missing project numbers, instead of one message per row. Other errors and warnings show the first 50 with a count of the rest, and the preview lists the first 50 records. Nothing is applied while any error remains. Values, amounts and status text are saved as supplied; as before, spaces at the start or end of a value are removed.
October 5, 2026
v0.1.0-alpha.100: Conduit always opens signed in, and administrators add users
The hosted app now opens on a Conduit sign-in page. No special link is needed, and it never shows sample or browser-only records. The sign-in page no longer offers a browser-only workspace or explains shared and browser records. It says your session has expired only when a session you were using has ended, and it offers Retry when Conduit cannot be reached. Signing out returns to the sign-in page. Records kept by an earlier browser-only trial stay untouched on that device; they are neither imported nor erased. The footer shows the Conduit version and no longer links the review answers, and Business rules no longer mentions saved browser test balances in shared records. A new shared workspace no longer fills in a $50,000 Executive limit or the payment terms Net 30, Net 60 and Due on receipt; an administrator enters the agreed values. Projects and people can be set up before approval limits are agreed. Until limits are set, a request is kept as a draft with a message asking an administrator to set them in Configuration > Approval policy. Until payment terms are set, the request form says to add them in Configuration > Payment terms. The supplied deliverables, holdback, province tax and purchase type settings are unchanged. Administrators can now add users in Configuration > People without stopping Conduit: enter the name and email, choose Administrator, Procurement or Pre-construction access, and select Add user. Conduit shows a one-time setup link to copy and send to the person; it expires after 72 hours, works once, and is not emailed or shown again. The person opens the link, chooses their own password, and signs in. People shows Setup pending until then, with New setup link and Revoke link. Procurement accounts still cannot originate project purchases. Email behavior is unchanged, and email stays held in the outbox.
October 4, 2026
v0.1.0-alpha.99: Clearer request form errors
In shared records, some requests are stopped because something on the first step still needs attention: the quote answer, the quote file (including the supplier quote a PO change needs), the vendor, the new-vendor setup request or the holdback percentage. The form now goes back to the first step, even when the request is stopped on Line items or Review. It then moves to the item that needs attention and repeats the message beside it, as it already did for the project and cost codes. For the quote file, that item is the file choice. For the new-vendor request, it is the button that records the request. For a PO change with no vendor, it is the PO choice, because the vendor comes from that PO. Nothing is sent and everything typed is kept. When a project is inactive, only people who can open Configuration are pointed to Configuration > Projects; everyone else is asked to choose an active project or ask an administrator to reactivate it. On Review, in shared and browser-only modes, a missing over-budget reason now says it is needed “before submitting”. Browser-only mode is otherwise unchanged, email behavior is unchanged, and email stays held in the outbox.
October 4, 2026
v0.1.0-alpha.98: Changed workflows send their own messages again
In shared records, when the “PM: update buyout log” workflow, or any workflow that goes only to the project manager when a request is fully approved, is changed to reach other recipients, it now sends its saved message to all of its selected recipients after each later full approval, including the project manager when still selected, even for a request that already received a buyout reminder from it. The buyout reminder already prepared for that request is kept unchanged and is not prepared again. Each message prepared by this version records whether it is the buyout reminder, and later workflow changes do not change that. Messages recorded by an earlier version are not fully classified: apart from held messages, they are checked once, by the workflows saved when this version first checks them. A workflow deleted or changed before upgrading can therefore still cause a repeated or missing buyout reminder for those requests, and an earlier-version message can still reach its original recipients after its request has moved on. A message held for review after a restore is never reclassified and stays unsent. A held message already recorded as the buyout reminder blocks any new buyout reminder for its request. A held buyout reminder made by the first alpha.96 build blocks a new reminder from that workflow while it stays PM-only. Other held messages, including earlier-version messages not recorded as the buyout reminder, no longer block the buyout reminder for a later approval. The “PM: update buyout log” workflow editor states the same limits.
October 4, 2026
v0.1.0-alpha.97: No stale approval emails after switching to built-in notices
In shared records, when a configuration change made outside the workflow editor replaces the configured notification workflows with the built-in notices, an unsent workflow message whose request has since moved beyond the event that triggered it, for example a “fully approved” message for a request that a correction sent back for approval, is now cancelled before it is sent. A message whose request has not moved is still sent once. A project manager buyout reminder already prepared by a workflow before that change still counts as the one buyout reminder for the request, so the built-in reminder does not add a second. Each workflow message now records when it is prepared whether it is the buyout reminder, so later changes to a workflow’s recipients, trigger or name never change whether its earlier messages count as that reminder: an unsent message prepared for someone else is still cancelled once the request moves on, and a message prepared for someone else never counts as the buyout reminder. One limit remains: messages recorded by an earlier version are classified once, by the workflows saved when this version first checks them, so a workflow deleted or changed before upgrading can cause a repeated, missing or outdated reminder for those requests. The “PM: update buyout log” workflow editor now says the reminder is sent at most once per request, after the PO is created, and states the same limit for messages recorded by an earlier version. Since alpha.96, an unsent built-in buyout reminder is also no longer cancelled by a correction that sends the request back for approval, and the built-in reminder is skipped when a workflow buyout reminder already exists for the request.
October 4, 2026
v0.1.0-alpha.96: Approval notices say what is still pending
In shared records with configured notification workflows, the default “Requester: fully approved” and “PM: update buyout log” messages now say that financial approval is complete, that Procurement review and Spectrum entry are still pending and that the PO has not been sent to the vendor. The buyout message also says Conduit does not maintain the buyout log. The project manager’s buyout reminder is prepared once per request: a Procurement correction that sends the request back for approval no longer prepares a second one, and it no longer cancels the first. Workflows saved before this update keep their own wording. In the Notifications activity list and the outbox view, the private download link in a PO email now shows as hidden; the vendor’s email still carries the working link. Screens are otherwise unchanged, and email stays held in the outbox.
October 4, 2026
v0.1.0-alpha.95: Shared drafts show their true save state
In shared records, if you keep typing while a draft is still being saved, the draft now stays marked “Unsaved shared draft. Save now.” instead of showing as saved, and your newer changes are saved when you leave the form. Opening a saved draft and leaving it without changes no longer saves it again, so a draft whose project has since been made inactive no longer stops you from returning to My requisitions or going Back. A draft you did change is still saved when you leave, and an inactive project still refuses that save. Screens, browser-only mode and email behavior are unchanged, and email stays held in the outbox.
October 4, 2026
v0.1.0-alpha.94: Maintenance steps wait for the service to stop
Operator-only update for the hosted service. The setup step that creates accounts, the sandbox demo load and reset, and the restore, review and release steps of a recovery now refuse to run while the service is using the same records, even when they are started from a separate container, and they change nothing when refused. Taking a backup still works while the service runs. A production copy that starts from a clean setup now has a repeatable check: it opens with no requests, no demo accounts and no notices, and demo loading stays refused. Production has not been started, staff access is unchanged, screens, records and email behavior are unchanged, and email stays held in the outbox.
October 4, 2026
v0.1.0-alpha.93: Staff guides match the tested shared build
Guide-only update. The user guide and the shared sandbox checklist now describe the tested shared workspace instead of the browser preview. Both explain who can submit purchases: Procurement and administrator accounts cannot submit project purchases, and a project director, district manager or executive cannot yet submit a purchase on a project where they hold that role, and a purchase whose approval route would need one person in two required approval slots is also blocked. They also cover sourcing outcomes, manual Spectrum entry followed by procurement completion, approved terms attached by hand, the manual Accounting and new-vendor handoffs, and how to tell saved work from work kept only in the current tab. A separate section lists what is not yet available. The sandbox checklist is now a checklist for staff, without the administrator setup steps. Screens, records and email behavior are unchanged, and email stays held in the outbox. Use on a real phone has not yet been checked for this version.
October 4, 2026
v0.1.0-alpha.92: Hosted sandbox on the production runtime
The hosted sandbox now runs on the Node.js 24.21.0 LTS production runtime instead of the Node.js 26.3.0 build runtime, so Vancouver dates there follow the same time zone data as production. One image now serves every environment, and each environment sets its own type when it starts. Only one copy of the service can open a workspace’s records at a time; a second copy refuses to start instead of running alongside the first. When the service is stopped for an update, requests already in progress get their answers before the records close, and a replacement starts only after the old copy has stopped. Screens, records and email behavior are unchanged, and email stays held in the outbox.
October 3, 2026
v0.1.0-alpha.91: Mail stays held after a restore
In shared records, after the database is restored from a backup or rolled back, no earlier notice is sent again on its own, even one that looks unsent. Each restored notice that could still have been sent is held for review, and a notice recorded after the backup but missing from it is marked so it is never sent again. Email and daily reminders stay on hold until the operator records the review and sets the release time. After release, daily reminders start again on the following Vancouver day, and earlier or same-day notices are not sent late. Through the operator and service path (there is no new button), Procurement can deliberately send one fresh copy of a held approval reminder or PO email, with a reason and an acknowledgement that the earlier one may already have arrived; it reaches only the original recipients, for the current approval step or the current PO package, and retrying the same request sends nothing more. The server passed the same checks on the exact Node.js 24.21.0 LTS production runtime and the Node.js 26.3.0 build runtime, with one recorded difference: Node.js 26.3.0 carries older time zone data (2026a) that still moves Vancouver back to standard time on November 1, 2026, while Node.js 24.21.0 (2026c) keeps British Columbia on permanent UTC-7. The hosted sandbox is not yet moved. The Notifications activity list names a recovery hold and shows “Recipients not recorded” for held entries that have no recorded recipients. After release, the recovery entry says when the recovery was released, in Vancouver time, and that the held notices are never sent automatically. Screens are otherwise unchanged.
October 3, 2026
v0.1.0-alpha.90: Imports keep records distinct
In shared records, a saved configuration is now refused, with nothing changed, if two vendors or cost codes share an ID, if two vendors share a name, if one project has the same cost code under two IDs, or if a new or changed cost code names no configured project number. The same cost code on two different projects stays two separate records. Import preview now points out any status other than Active or Inactive; that text is kept as written and does not change whether a project is available. In shared records, applying an import now says it is staged until Save shared configuration is selected, because nothing is saved for everyone before that. Budget, quantity and contract columns in an import stay reference information and never change request budgets. Blank padded columns and empty rows in a cost-code file remain ignored, and a file with headings but no rows imports nothing.
October 3, 2026
v0.1.0-alpha.89: Configuration saves safely
In shared records, when two administrators save configuration from the same starting point, the second save is refused with a short message and the values typed are kept, so the first person’s change is never silently replaced. The Save shared configuration button is locked while a save is in progress. Configuration already refused a project assignment naming someone without an account; it now also refuses a save that would give two people the same name, because an assignment must match exactly one account. A configuration save that leaves out preferences or imported records now keeps the saved values instead of clearing them. The Approval policy wording now describes the current rules: every routed role needs an entered limit, a blank limit stops new submissions above the PM limit until one is entered, and only an assigned PM within the PM limit has their own step counted as approved. The executive limit field now says “Enter an amount”. On the request form, an approver slot with no provisioned person shows “Not assigned”. In Configuration, a saved approver, project coordinator or site superintendent with no account shows as “(not provisioned)”, and a saved project province with no tax rule shows as “(not configured)”, instead of appearing blank. A saved purchase type that was later removed from Configuration stays visible on its draft as a saved value.
October 3, 2026
v0.1.0-alpha.88: Purchase order follow-up saves safely
In shared records, saving a purchase order’s vendor acknowledgment or follow-up delivery date now checks against the version shown when the window was opened. If someone else saved a change in the meantime, the save is refused with a short message, the window stays open and the values typed are kept, so the other person’s change is never silently replaced. A warning also stays on the page after the window is closed. The Save follow-up button is locked while a save is in progress. A purchase order carried over from older records without a version number can now be saved. Acknowledgment still needs no note: it records that the vendor confirmed receipt of the purchase order, and never changes received amounts, Spectrum entry or Procurement completion. The Purchase orders list now says “No purchase orders yet.” when there are none at all, and “No matching purchase orders.” when a search or filter matches nothing.
October 3, 2026
v0.1.0-alpha.87: Truthful approval notices
In shared records, approval notices now go only to the person who currently holds the approval. When a stage is approved, reassigned or returned, any earlier notice that has not been sent is cancelled, and a reassignment back to the same person starts a fresh notice rather than reviving the old one. Each approver gets at most one daily reminder per assignment and calendar day, and a repeated manual reminder click sends one reminder. The configured workflows and the built-in notices now share the same identity, so the two can no longer both notify for the same approval.
Approval emails now show the amounts saved when the request was submitted: the approval total, budget, variance amount and percentage (or that the percentage is unavailable when no budget was allocated), the over-budget reason and the holdback percentage. Credits stay negative, and later configuration changes do not alter a reminder. The approved notice and the buyout log reminder now say what work remains: Procurement review and Spectrum entry are still pending, the PO has not been sent to the vendor, and Conduit does not keep the buyout log. The buyout reminder is sent once per request.
Under Notifications, each recorded notice now shows a plain status: prepared, not sent; queued for the email provider; send attempt in progress; accepted by the email provider; cancelled, no longer current; or needs review. The message content of built-in notices can now be opened as well. Live delivery also obeys a deployment hold: while it is on, nothing is sent to the email provider and the delivery description says so. Escalation to other people and the sourcing and emergency follow-up workflows stay paused until they are agreed.
October 3, 2026
v0.1.0-alpha.86: PO-only download and kept package versions
In shared records, the purchase order package window now has a “Download PO only” button beside the package action. It makes a PDF of the current purchase order version with no terms attached, for Procurement to email by hand with the actual approved terms. That PDF is never sent by automated distribution, and the service refuses it if asked. The package action now needs an approved terms PDF chosen in the window; a configured rule is no longer preselected, and choosing nothing shows a message beside the terms field. Every generated PDF is kept unchanged and records its purchase order version. Earlier PDFs stay available to download in the window and are labelled superseded once the request or purchase order changes. The emailed vendor download link for a superseded package stops working. If the request or purchase order changes while a PDF is being made, that PDF is refused and nothing is saved. Automatic terms selection stays off until the applicability of approved terms is approved: final approval no longer assembles a package from a saved selection rule, a saved rule is never used to choose terms, and the shared service refuses a new or changed selection rule. Saved rules can still be removed. In Configuration, under Terms & conditions, “Automatic selection rules” now explains that approved terms PDFs come first and that automatic selection stays off until their applicability is approved, so terms are attached by hand for now. The “Add selection rule” button shows that explanation and adds no rule, and any saved rule is shown read-only with its Remove button.
October 3, 2026
v0.1.0-alpha.85: Purchase order PDFs show each line’s delivery date
The purchase order PDF that Procurement assembles now prints the exact issued version of the purchase order, so later follow-up edits, such as a changed delivery date, do not alter it. Each line now has its own “Delivery date” column, matching the print preview. The single “Required date” in the delivery section is removed. A line with a blank date reads “Not specified”. An older line that was saved before line dates existed shows the purchase order’s recorded date. Money and date cells no longer break across lines, and long descriptions wrap. The PDF and the print preview now leave out the same unselected requirements, including “Not required”, “No” and “None marked”, and repeated identical requirements print once. The return-signed-copy contact prints only when contract documents are selected. Vendor contact details come only from this purchase or from the same vendor’s record. The note under shared line items now says that line dates print on each line of the purchase order.
October 3, 2026
v0.1.0-alpha.84: Spectrum entry, then Procurement completion
In shared records, Procurement now records that an approved purchase order was entered in Spectrum by hand, with a note, for the current version of that purchase order. An administrator can also record or correct this entry. Recording the entry does not complete the request and sends nothing. When the entry is recorded, a Procurement user completes the request as a separate step. The request stays financially approved and changes from “Under Procurement Review” to “Procurement complete”. One notice to the requester is prepared in the test outbox, using the completion message and the additional recipients set under Configuration. No email is sent and no vendor or Accounting message is added. An entry can be corrected to “not entered”, and the earlier entry stays in the history. When a change request is issued or Procurement corrects the purchase order, the new version returns to “Under Procurement Review” until it is entered and completed again, and an unsent notice for the earlier version is cancelled. The “Pending procurement”, “Spectrum ready” and “Spectrum not ready” filters, the Spectrum badges and the Spectrum column on Purchase orders now appear in shared records and show the current version only. An emergency request that holds a PO number but is not yet approved is not listed. Browser-only mode keeps its single combined button.
October 3, 2026
v0.1.0-alpha.83: Sourcing findings without a purchase
In shared records, submitting a sourcing request now needs an active project, a described need, an available budget and a real need-by date. An available budget of zero is accepted; a blank budget is not. A sourcing request goes to Procurement for research with no approval and no PO. Procurement returns findings to the requester by email and closes the request without a purchase; its history is kept. The “Convert to purchase” button is removed, and a sourcing request can no longer be turned into a purchase request. In both shared and browser-only modes, the requester of an open sourcing request sees this next step instead of Procurement’s closing card. If the requester decides to buy, they start a new purchase request, which goes through the normal checks and approvals. In browser-only mode, the request form also accepts an available budget of zero and refuses a blank one. The shared service can record, on a purchase request, a reference to the requester’s own sourcing request with a decision note; a change request never carries that reference, and Procurement can correct a change request on such a purchase order. No message is sent by the app.
October 3, 2026
v0.1.0-alpha.82: Emergency follow-up
In shared records, recording an emergency now needs exactly an active project, a vendor, a reason and an approximate spend greater than zero; a blank vendor or reason, or a spend that is not a number, is refused before any PO number is reserved. Once an emergency holds its PO number, its original approximate spend and reason are kept when the purchase details are completed or Procurement corrects the purchase order, and an emergency still waiting for its purchase details cannot be recorded a second time. Completing the details still needs at least one line and goes through normal approval under the same PO number. Emergency requests cannot be cancelled, deleted or have their number reused. When a new vendor is requested, the emergency can be recorded first; completing the purchase details then needs the vendor’s legal name, address, contact, phone, valid email and business/tax number, and records the vendor setup for manual handling by accounting. No payment details are asked for and no message is sent.
October 3, 2026
v0.1.0-alpha.81: After-the-fact changes
A change request now keeps its own “After-the-fact purchase” answer. Before, choosing or reloading a purchase order, or submitting the change in shared records, replaced that answer with the original purchase order’s answer. An after-the-fact change no longer asks for a supplier quote, when it is submitted or at final approval; an ordinary change still needs its saved quote. Cost codes, amounts, budgets, taxes and the change reason are still checked, and the approval route is the usual project route. For direct service requests, a submission whose after-the-fact answer is not a checkbox selection is refused (rule ATF-001) and nothing changes.
October 3, 2026
v0.1.0-alpha.80: Purchase order corrections
The correction window is now announced by its title, “Correct purchase order”, and focus moves to it when it opens. If you have typed changes, Cancel and the Escape key now ask before discarding them; choosing Cancel keeps what you typed. A blank correction reason is shown beside the field (rule CR-009) and, in shared records, nothing is sent. In shared records, request and purchase order history now label a correction that kept the approval as “Procurement correction, approval preserved”, as browser-only records already did. For direct service requests, a correction that sends only a change request’s lines is refused when it repeats the original purchase order lines (rule CR-010), so those lines are never added a second time; the correction screen itself always sends the full purchase order. Such a direct change correction returned for approval no longer needs the quote again, but a later resubmission by the requester does.
October 3, 2026
v0.1.0-alpha.79: Received-balance checks on credits
When a change would reduce a purchase order, the refusal now names its rule: FIN-014 when the received balance has not been verified, and FIN-013 when the revised subtotal would fall below the verified received subtotal. The existing checks are now covered by tests: an unknown balance is never treated as zero, a verified $0.00 balance is accepted, the balance is checked again at final approval, and credit lines keep their negative amounts.
October 3, 2026
v0.1.0-alpha.78: Change order confirmations
After a change request is submitted, the confirmation now shows the base PO number on its own line, worded the same way as a purchase (“Your PO Number will be”), with a separate change label: “Change pending” until the change is issued, then its change order number, such as “CO 1”. In shared records, a change cannot be issued at final approval if its saved quote file is no longer on the request; the purchase order is left unchanged.
October 2, 2026
v0.1.0-alpha.77: Reassigned approvals and returned requests
In shared records, Procurement can move the current approval only to the person configured for that role on the project, or to the configured COO for an executive approval, and must give a reason. A replacement who already approved, received submission credit or holds another approval on the same request, or who is the requester, is refused with a plain message and nothing changes. Reassigning to the person already assigned changes nothing. Each new assignment gets its own approval notice, and notices for an earlier assignment are cancelled rather than sent, even when the same person is assigned again later that day. A returned request needs a reason and sends one notice to the requester and earlier approvers; its pending approval notices are cancelled. A blank reason is shown beside the reason box, and an unsaved reason is kept after a refused or conflicting action and included in the recovery copy. Notices are queued in the notification outbox.
October 2, 2026
v0.1.0-alpha.76: Project approval routes
Only the project’s assigned project manager receives approval credit for their own submission: an in-limit request is approved at once, and a larger one starts with the project director. Every other request up to and including $50,000 needs the project manager, and above $50,000 it goes to the project manager, project director, district manager and executive in order, whatever the senior limits are. A project director, district manager, executive or COO submitting on their own project, or a route where one person would fill two required stages, now shows that this approval route is not yet supported and to contact Procurement, with the draft kept (rule APR-014). In shared records, Procurement cannot originate project purchases yet (rule APR-010), and a senior stage without a configured limit is refused instead of being treated as unlimited. “No limit” no longer appears on approval paths.
October 2, 2026
v0.1.0-alpha.75: Dated lines and purchase requirements
In shared records, each line’s delivery date replaces the separate order delivery date field. Line dates stay optional; a date that is not a real calendar date is refused with a message naming the item. A line whose date was cleared shows “Not specified”, and an older request that only has an order date keeps showing it on its lines without being rewritten. A newly issued purchase order’s required date is the earliest line date. Purchase order print and detail rows also show “Not specified” for a cleared line date. Unselecting holdback clears its percentage.
October 2, 2026
v0.1.0-alpha.74: Refused upload named
In shared records, when the service refuses a file during an upload, the message now names that file alongside the reason, and still lists any files from the same selection that were not sent.
October 2, 2026
v0.1.0-alpha.73: Saved quote files and phone photos
In shared records, the attachment list on a request now comes only from files actually stored on the shared service, so a reopened request shows each original quote or phone photo as saved and links to the identical file. Files chosen in the quote area are saved as quotes. Answering “Yes, I have a quote” on an ordinary purchase or emergency follow-up now needs a saved quote file before submission (rule DOC-019); a filename, a generic attachment or the answer alone is not accepted. After-the-fact invoices stay exempt. Files over 10 MB are not sent and are named in the message, an upload refusal stops the rest of the batch, and the list is refreshed from the service after every upload attempt.
October 2, 2026
v0.1.0-alpha.72: Trusted line taxes and saved budget snapshot
In shared records, submission now saves the financial basis of each submitted request (subtotal, GST, PST, HST, approval total, budget, variance and over-budget reason), and approvers see that saved snapshot. A project without a configured province tax rule can still save drafts but cannot submit taxed lines until an administrator configures the rule. A selected tax that has no configured rate for the project’s province (for example HST on a BC line) is now refused at submission. Blank prices and budgets are no longer treated as zero. Tax and over-budget refusals now name their rule and focus the line tax choices or the over-budget reason. The browser preview rounds totals the same way the shared service does. These calculations are an engineering convention pending Finance validation (FIN-011).
October 2, 2026
v0.1.0-alpha.71: Truthful save status after a refused save
In shared records, when a save or submission is refused because of a project rule and the form returns to the first step, the save status now still reads “Unsaved shared draft” while edits remain unsaved, instead of showing the last saved time.
October 2, 2026
v0.1.0-alpha.70: Save and resume project purchase drafts
In shared records, an unfinished request can be saved before a project is chosen and keeps the same request number when it is reopened, with edited delivery, site and contact instructions intact. Those request edits never change the project’s own defaults. A project is still required to submit. A missing project or cost code, or an inactive project, now shows a lasting message naming the project rule (REQ-008, MASTER-010, MASTER-007, and MASTER-009 for a new change request on an inactive project), and the first field to fix is marked and focused. The save area shows “Saving to shared workspace…” while a save is in progress, a retried save is applied only once, and leaving an untouched new request no longer creates an empty draft. Small purchases below the PO threshold can still be submitted, and urgent requests follow the same approval route. Browser-only mode is unchanged apart from the rule names in its messages.
October 2, 2026
v0.1.0-alpha.69: Request numbers follow the Vancouver calendar
In shared records, a new request number takes its year from the Vancouver calendar, the same calendar that PO numbers use, and the request date is the Vancouver date. A request started on the evening of December 31 now keeps that year and date even when the server clock is already in the new year. Existing request numbers, the numbering sequence and retry handling are unchanged.
October 2, 2026
v0.1.0-alpha.68: Navigation by role in shared records
In shared records, the Configuration menu now appears only for administrator and Procurement accounts. Other accounts, such as a project member who submits requisitions, see Sign out in its place on desktop and in the phone More menu, and they land on My requisitions after signing in. The Pending approvals count is shown only to Procurement and to people with an approval decision waiting on them, with the same count as before. The server already refuses configuration saves, the notification outbox and approval decisions from accounts without that authority. Browser-only mode is unchanged.
October 2, 2026
v0.1.0-alpha.67: Demo workspace and clean reset
Sandbox, demo and development instances can load the shared demo workspace: the same requests and purchase orders as the alpha.64 prototype, corrected to the current project rules (seven-digit PO numbers, change order 1 on PO 2600712, line delivery dates, BC tax settings, project cost codes and approval routes from the project assignments). While it is loaded, every signed-in view, PO preview and generated PDF shows a DEMO label, and demo records carry their illustrative-example notes. Administrators can load the demo workspace again or reset to a clean, empty start from Configuration > Imports; a verified backup is taken first and everyone signs in again. Production instances refuse both operations. New request references use four digits, starting from REQ-2026-0200 after a demo load.
October 2, 2026
v0.1.0-alpha.66: One commitment per action and stable PO numbers
When a new shared request or an approval is retried after a lost connection, the service now applies it once and returns the original result, so retries no longer create duplicate requests, approvals or PO numbers. New PO numbers use the seven-digit format without a hyphen, based on the Vancouver calendar year, and are assigned only when a PO is issued or an emergency request is recorded. New drafts no longer hold a number. Each issued change request keeps its CO number when it is later corrected. Older change requests whose CO number cannot be confirmed show “CO sequence unavailable”. Existing PO numbers, including older hyphenated ones, are unchanged.
October 2, 2026
v0.1.0-alpha.65: Shared record access and session recovery
Shared records are now visible only to the requester, everyone captured on the approval route (including an approver who was reassigned), Procurement and administrators. Project membership alone no longer opens other people’s requests, files or purchase orders, and an unavailable record shows the same message whether or not it exists. When a session expires or the service is unreachable, the sign-in and reconnect screen returns with no records shown. Unsaved request values stay in the tab, can be downloaded as a recovery copy and return after signing in again with the same account.
September 29, 2026
v0.1.0-alpha.64: Project rules and consistent PO examples
Adds a central, source-backed project rules reference with plain-English checks, stable rule IDs, source notes and document downloads. Corrects built-in demo PO identifiers and their linked references to the agreed seven-digit format, including saved demo workspaces where migration is unambiguous. Also repairs sample date sorting, recipient previews, copied delivery/cost details and sourcing confirmation. Missing example inputs are shown explicitly. Genuine imported historical identifiers and recorded edits are preserved.
Read the project rules
September 29, 2026
v0.1.0-alpha.63: Procurement and request details
Local preview of Spectrum-ready completion, pending Procurement filters and simulated requester notices. Adds line delivery dates with editable defaults, delivery and need-by sorting, first-line configured tax prefills, clearer emergency and CO identifiers, seven-digit new PO numbers without a hyphen, mandatory SR need-by and cleaner CSV mapping. Existing identifiers remain unchanged. New shared-service behavior and the agreed deferred integrations remain separate work.
Review scenarios and interim operation
September 25, 2026
v0.1.0-alpha.62: Realistic sample PO dates
The sample purchase orders now include created dates, including in previously saved demo workspaces.
September 25, 2026
v0.1.0-alpha.61: Prominent holdback settings
Holdback now appears first in a separate highlighted section above the deliverables checklist, with its editable percentage alongside the selection.
September 25, 2026
v0.1.0-alpha.60: Client CSV templates and partial imports
Template downloads now match the supplied project CSV and vendor/cost-code headers. Import previews recognize those columns and retain source reference data. Vendor Code and Project Number match existing records; cost codes use project plus Full Reference. Partial uploads add or update matching records without deleting omitted records. Blank supplied fields clear values; unmapped fields stay unchanged.
September 24, 2026
v0.1.0-alpha.59: September 24 acceptance review
Consolidated the call-driven changes and release notes. Independent source and implementation reviews are recorded with test evidence and remaining client dependencies.
September 24, 2026
v0.1.0-alpha.58: End-user guide and training
Added request, approval, CR, emergency and PO-follow-up instructions with a practical training exercise and a separate administrator sandbox checklist.
September 24, 2026
v0.1.0-alpha.57: Mobile home-screen setup
Added a web-app manifest and install branding, plus iPhone/Android home-screen instructions. Shared data requires connectivity; offline operation is not claimed.
September 24, 2026
v0.1.0-alpha.56: Shared sandbox and email-copy safeguards
Documented isolated shared testing, controlled roles and test-outbox behavior. Vendor distribution preserves configured procurement-copy recipients. Real sandbox mail and hosted client testing still require agreed recipients, sender credentials and hosting.
September 24, 2026
v0.1.0-alpha.55: Logo-only sidebar
Removed duplicate Conduit name and tagline text beneath the configurable logo.
September 24, 2026
v0.1.0-alpha.54: Explicit import column mapping
CSV/JSON previews let administrators map actual source columns to app fields, including project-specific cost codes and project activity. Client export templates are still pending verification.
September 24, 2026
v0.1.0-alpha.53: Active project status
Configuration supports active/inactive projects. New intake excludes inactive projects while preserving historical records and approval access.
September 24, 2026
v0.1.0-alpha.52: PO follow-up table and navigation
Added compact PO rows, creation/delivery dates, acknowledgment filters, date/project sorting and requester search. Related PO and requisition numbers link directly. Requisition lists also support sorting. Unknown historical dates remain Not recorded.
September 24, 2026
v0.1.0-alpha.51: Persistent vendor acknowledgment
Acknowledgment saves without requiring a reference note, survives reload and retains independent follow-up versioning. Delivery-date edits are audited.
September 24, 2026
v0.1.0-alpha.50: Configurable terms selection
Configuration supports approved PDF uploads and ordered rules by project, purchase type, vendor and province. Shared final approval assembles matched terms automatically. Missing documents and matching rules remain explicit; browser-only mode provides configuration preview, not shared package assembly.
September 24, 2026
v0.1.0-alpha.49: Clearer vendor PO documents
Vendor documents show selected requirements and tax percentages without internal approval records. Generated service PDFs retain all pages of the selected supplied terms.
September 24, 2026
v0.1.0-alpha.48: Procurement review after approval
Financial approval remains recorded while the completion page and service notifications identify the PO as under procurement review. No external accounting-system entry is claimed.
September 24, 2026
v0.1.0-alpha.47: Required line tax choice
Each purchase line requires a selected tax or explicit Tax exempt. Exemption clears other taxes; HST excludes GST/PST. Emergency initial intake remains four fields without line items.
September 24, 2026
v0.1.0-alpha.46: Compact PO numbering
New POs use the spoken YY-NNNNN example with annual sequence allocation. The shared service allocates numbers atomically, and emergency completion retains its reserved number. Existing PO numbers remain unchanged. Final import format confirmation is pending.
September 24, 2026
v0.1.0-alpha.45: Usable correction and reapproval controls
Fixed the malformed approval-decision dropdown. Corrections load the complete issued PO, support explicit tax exemption and can restart required approvals. Validation messages appear inside the open dialog.
September 24, 2026
v0.1.0-alpha.44: Blank change lines with original PO preserved
New CRs start with blank signed change lines and inherit original header, terms and requirements. Quote upload is required by default. The resulting PO retains original lines plus changes; older replacement CRs retain their previous interpretation.
September 24, 2026
v0.1.0-alpha.43: Optional small purchases and rule explanations
PRs below the advisory threshold are allowed, and CRs have no minimum. Configuration exposes the advisory threshold, CR quote requirement and fixed received-floor explanation. Rule errors link to configuration.
September 23, 2026
v0.1.0-alpha.42: Requisition numbers first
My requisitions and All requisitions now match Pending approvals: the requisition number is the bold primary title, with the description and vendor underneath.
September 23, 2026
v0.1.0-alpha.41: White label logo settings
Choose from three supplied Conduit logos or upload a custom logo in Configuration. Adjust sizing and custom background, preview and reset. Original supplied files are preserved. Shared configuration requires administrator access.
September 23, 2026
v0.1.0-alpha.40: Client deliverables checklist
Replaced the placeholder choices with the supplied deliverables and contract instructions list, including separate electronic and hard copy options. Holdback Applies retains its editable percentage, defaulting to 10%. Existing saved selections remain in request history and PO details.
September 23, 2026
v0.1.0-alpha.39: Easier detail dismissal
Detail panels close on an outside click. Edited dialogs ask before discarding changes, using the app confirmation toast.
September 23, 2026
v0.1.0-alpha.38: Conduit identity
Added the Conduit name and Procure, Build, Achieve tagline while retaining the Industra logo until the final client asset arrives.
September 23, 2026
v0.1.0-alpha.37: Project-specific cost codes
Added projectNumber to cost-code configuration and the provisional import template, with project filtering. Camillo’s actual source format remains pending.
September 23, 2026
v0.1.0-alpha.36: Email sender and linked PO packages
Added sender and procurement-copy configuration. The shared service queues completed packages automatically from the package action, with expiring PDF links and saved email content. The public preview sends no email.
September 23, 2026
v0.1.0-alpha.35: Clear rejection action
Renamed the approver action Reject, retaining mandatory reason and notification to requester and previous approvers, including configured workflows.
September 23, 2026
v0.1.0-alpha.34: Receiving deferred
Removed received-amount entry from the first-release interface. Existing verified balances and change-request protections remain intact.
September 23, 2026
v0.1.0-alpha.33: Purchase order workspace
Added searchable PO list, condensed line details, expandable header, audited delivery follow-up and vendor acknowledgment. Financial corrections retain the existing audit and approval decision.
September 23, 2026
v0.1.0-alpha.32: Holdback default and summaries
Selected holdback starts at 10%, remains editable and appears in approval summaries and PO documents.
September 23, 2026
v0.1.0-alpha.31: Configurable deliverables
Added editable checklist labels and add/remove controls in Configuration. Saved requests preserve their selected custom requirements. Final client checklist remains pending.
September 23, 2026
v0.1.0-alpha.30: Project province tax calculations
Connected province rules to new line taxes and actual totals. Rates are saved with lines. Applicable taxes start selected; exemptions can be unchecked. HST excludes GST and PST.
September 23, 2026
v0.1.0-alpha.29: Sequential approval policy
Equal $50,000 role values allow larger purchases through PM, PD, DM and executive in order. Removed the No Limit option and visible Review policy settings.
September 23, 2026
v0.1.0-alpha.28: Urgent requests
Added an Urgent flag to PR, CR and SR, visible to procurement in request lists and details.
September 23, 2026
v0.1.0-alpha.27: Simpler request forms
Removed CR payment-term editing while retaining original PO terms. Removed the supporting-information text box; quote attachments remain.
September 23, 2026
v0.1.0-alpha.26: Editable province taxes and purchase types
Added the 10 province tax rules and six purchase types supplied by Albert as editable reference tables in Configuration. Rates, tax types and codes can be updated; rows can be added or removed. These reference tables do not yet drive line-item calculations.
September 23, 2026
v0.1.0-alpha.25: Shorter emergency request flow
Initial emergency requests now go directly from Request details to Review. The line-items step has been removed. Purchase requisitions, change requests and later emergency completion keep their existing steps.
September 22, 2026
v0.1.0-alpha.24: September feedback review
Added a question-and-answer review page with the outstanding business inputs, linked from the app and version history.
September 22, 2026
v0.1.0-alpha.23: Deliverable choices and holdback
Replaced large deliverable text fields with checkboxes. Selecting holdback requires a percentage. Return contact details use compact inputs when contract documents are selected. Camillo’s final list remains a follow-up.
September 22, 2026
v0.1.0-alpha.22: Line-level and project tax settings
Placed GST first in each line’s tax controls. Added project tax defaults and individual line overrides. Approval totals include selected PST/HST and exclude GST; PO totals include GST. Previously saved aggregate GST is retained until explicitly replaced.
September 22, 2026
v0.1.0-alpha.21: Supporting information guidance
Explained what notes and quotes to provide and where reviewers and approvers see them.
September 22, 2026
v0.1.0-alpha.20: Configurable payment terms
Administrators can edit the available terms and select a default for new requests. Existing requests and PO terms are retained.
September 22, 2026
v0.1.0-alpha.19: Emergency required fields
Project, vendor, reason and approximate spend are required. Line items are optional. The existing steps remain, and a request without lines receives its provisional PO on the final page for follow-up.
September 22, 2026
v0.1.0-alpha.18: Review policy explanation
Explained the near-limit review criteria and clarified that they do not reject requests or change routing. Removed the unused CCDC threshold input pending an agreed policy.
September 22, 2026
v0.1.0-alpha.17: Common senior approval limit
Added a control to apply one agreed limit to PD, DM and CEO. Equal limits preserve the required sequential approval stages. The agreed amount still needs confirmation.
September 22, 2026
v0.1.0-alpha.16: Project-first change requests
Select the project first, then select one of its POs. Assigned projects remain the default, with Show all projects available. Changing projects clears the previous PO selection.
September 22, 2026
v0.1.0-alpha.15: Requisition number titles
Requisition numbers are the bold primary titles, with descriptions underneath.
September 22, 2026
v0.1.0-alpha.14: Approval queue filters
Filter pending approvals by approver and requester, together with the existing search.
September 22, 2026
v0.1.0-alpha.13: Manual approval reminders
Procurement can request a reminder for the current approver immediately, without waiting for or resetting the daily schedule.
September 22, 2026
v0.1.0-alpha.12: Alpha version history
Added the visible alpha version and this history. Every subsequent completed update increments the alpha number and records its changes here.
September 19, 2026 (committed September 22) · Retrospective entry
v0.1.0-alpha.11: Sourcing form simplification
Removed the sourcing helper section, its additional fields and related controls from this phase. Retained the standard sourcing request form.
September 19, 2026 · Retrospective entry
v0.1.0-alpha.10: Emergency confirmation and cleanup
Restored the multistep emergency flow, moved the provisional PO display to the successful final page and emphasized the number. Removed the browser workspace connection panel. Fresh emergency project selection remained a known gap.
September 19, 2026 · Retrospective entry
v0.1.0-alpha.9: Notification workflow configuration
Added request-type workflows with configurable recipients, timing, content, repetitions and stop conditions. Notifications and Reports were subsequently hidden from navigation for this review.
September 19, 2026 · Retrospective entry
v0.1.0-alpha.8: Form and layout refinements
Added a searchable project selector and Show all projects toggle with help. Removed duplicate project text and unnecessary warnings. Added configurable units/categories, improved category placement, trash icons, in-app confirmation toasts and compact dropdowns.
September 18, 2026 · Retrospective entry
v0.1.0-alpha.7: Shared service implementation
Implemented and locally tested authenticated shared records, durable storage, document extraction and optional email delivery. These services are not activated by the published static preview.
September 18, 2026 · Retrospective entry
v0.1.0-alpha.6: Configuration and purchase orders
Added project assignments and defaults, master-data imports and vendor setup capture. Improved PO preview and generated documents with approval records and selected supplied terms pages.
September 15–18, 2026 · Retrospective entry
v0.1.0-alpha.5: Approval and request rules
Added configurable role limits, sequential senior approvals, PM submission approval, CEO/COO handling, project coverage, preconstruction access, after-the-fact requests, sourcing closure/conversion, change-request credits, received-amount protection and correction rerouting.
September 12, 2026 · Retrospective entry
v0.1.0-alpha.4: Reliability fixes
Corrected typing focus, draft persistence, PO baseline handling, financial precision, attachment validation and conflicting updates. Expanded approver request details.
September 10–12, 2026 · Retrospective entry
v0.1.0-alpha.3: Core request workflows
Added PR, CR, SR and ER, saved drafts, requisition numbers, attachments, budget variance and explanations, project-based approvals, configuration and request history.
September 9, 2026 · Retrospective entry
v0.1.0-alpha.2: First branded prototype
Created desktop and mobile requisition screens, request details and the multistep form. Applied Industra branding and reviewed the supplied approval flow.
September 6, 2026 · Retrospective entry
v0.1.0-alpha.1: Initial app review
Reviewed the supplied Power App, documented findings and published the technical review.
Follow-up inputs
Actual CSV exports, approved terms and assignment rules, email sender/copy mailbox, controlled test recipients, dispatch timing and final compact PO format remain to be confirmed.
September 24 update review