Monday started with the kind of foundational plumbing that usually gets ignored until it breaks production. I spent the morning wrestling with authentication across the ecosystem. In contact-ops, I pinned identity to the Keycloak sub to stop tokens from drifting. In project-ops, the Brigade JWTs needed serious work: I routed them through SSO resolution, enforced audience binding, and built a Personal Access Token service from the ground up. It was a day of tightening the screws on who gets in and how they get in. If you are trying to use a PAT today, you will see it work. If you are not, you will see the door stay shut.
The bigger story, though, was the CFO agent waking up. In accounting-ops, I moved the default persona from a generic CPA tax resolver to a specialist CFO agent. That sounds like a small change, but it required overhauling how the agent thinks. I wired the CFO into FalkorDB memory, grounding its decisions in actual graph data rather than vague context. I also built a silent specialist delegation orchestrator. The CFO can now hand off tasks to other agents safely, with scope checks and auditing baked in. It is depth-1 delegation, but it works. The result is a dashboard that now shows a Concierge CFO brief, pulling real findings from Sentinel rather than generic summaries. I also fixed the deduplication logic in Sentinel so one finding cannot flood the brief, and I added a read-only Tax-Research persona for when the CFO needs to dig deeper.
On the product side, I shipped the AR and Invoicing MVP. This is native, standalone-first, and entitlement-gated. It is not just a UI wrapper; it is a full billing engine with APIs, tools, and tests. I also launched the Phase 1 onboarding flow, which includes data-dump uploads, local receipt extraction via VLM, and bank linking. The VLM extraction bake-off ran locally with zero spend, and the results were promising enough to justify the investment.
In accounting-ops, I moved the default persona from a generic CPA tax resolver to a specialist CFO agent.
Meanwhile, the meeting app got a massive pricing overhaul. I rebuilt the tier matrix from Free to Enterprise, with Basic at $7.99, Pro at $20, and Suite at $35. This required changes across the backend billing API, the frontend pricing pages, and the Stripe webhook handlers. I also pushed hotfixes for the silence-split threshold and the session watchdog import. The graph canvas in contact-ops finally stops showing a loading state under the config panel, which was a minor annoyance that I fixed immediately.
Also today: I reconciled the version numbers across accounting-ops to a single source of truth at 0.3.0, and I documented the Brigade Federation spec with all nine acceptance criteria marked green. The federation broker is live, and the customer PO instance is registered.
The day added up to a tighter, smarter, and more expensive product. The CFO is now a specialist, the billing is real, and the authentication is finally holding.
Real product captures — click any to enlarge.