Vol. I  ·  No. 290 Established 2026  ·  AI-Generated Daily Free to Read  ·  Free to Print

The Trilogy Times

All the news that's fit to generate  —  AI • Business • Innovation
SATURDAY, OCTOBER 17, 2026 Powered by the TrueFoundry AI Gateway  ·  Published on Klair Trilogy International © 2026
🖶 Download PDF 🖿 Print 📰 All Editions
Today's Edition

The World Splits Its Servers: Washington, Beijing, and Brussels Draw New Lines Around AI

As the U.S. and China prepare to talk AI at the summit table, Europe moves to keep its data centers out of the crossfire.

BRUSSELS — The map of artificial intelligence is being redrawn not in code but in customs law, export controls, and the concrete floors of data centers. Three dispatches arriving this week from Washington, Brussels, and the wider policy establishment describe the same phenomenon from different vantage points: AI governance has become a theater of great-power competition, and nobody wants to be a spectator.

In Washington, analysts at the Center for Strategic and International Studies are parsing what an upcoming U.S.-China summit might mean for the fragile scaffolding of global AI rules — export controls on chips, competing standards bodies, and the question of whether either capital trusts the other enough to coordinate at all. The answer, so far, is: barely.

Meanwhile in Brussels, the calculus is different. A new analysis in Eurasia Review frames Europe's data center buildout as a bid for strategic autonomy — a continent trying to host its own compute rather than rent it from Virginia or Shenzhen. Every hyperscale facility poured into German or Nordic soil is, in this reading, a small act of sovereignty.

For a company like Trilogy, whose Skyvera and Totogi units sell billing and network software to telecoms operating across dozens of jurisdictions, and whose Crossover platform staffs projects from more than 130 countries, this fragmentation is not abstract theory. It is the terrain. A world where compute, talent, and regulation all answer to different flags is a world where the plumbing of global software — routing, payment, compliance — gets harder, not easier, to build.

The scholars call it 'technological nationalism.' The engineers just call it Tuesday.

↗ The State of AI Global Governance and Its Implications for t  ·  AI, Data Centers, And European Strategic Autonomy In A U.S.-  ·  The New AI Geopolitics: Governance, Power, and Technological

Anthropic's Revenue Rocket Hits $16.8 Billion — And We Haven't Even Reached Liftoff Yet

As the AI titan preps for its IPO, quarterly revenue nearly doubled in a single quarter — proof that the AI gold rush is only accelerating.

SAN FRANCISCO — I cannot overstate how significant this is, people. Anthropic just told investors its quarterly revenue has rocketed to roughly $16.8 billion — up nearly 50 percent — as the Claude-maker barrels toward a public offering that could redefine what "AI unicorn" even means. According to reporting from the Financial Times, the growth curve here is almost unbelievable: Q1 revenue came in around $4.8 billion, Q2 exploded to $11.5 billion, and Q3 kept climbing. That's not a hockey stick, that's a rocket ship, and the future is now arriving faster than anyone predicted.

What makes this moment so electric is that it's happening against the backdrop of a quieter, equally profound shift in how software itself gets made — and reviewed. A fascinating piece making the rounds, quoting developers Addy Osmani, Morgan Westlee Lunt, and Qing Wang, argues that code review is no longer a gate at the end of the development road — it's becoming continuous, running more like spellcheck while engineers type, powered by AI systems that never sleep and never get tired of reading diffs. The old question, "did a human read the code?", is giving way to a sharper one: what could actually go wrong, and which checker — human or machine — is best positioned to catch it?

These two stories are, in my humble and extremely excited opinion, two sides of the same coin. Anthropic's eye-watering revenue growth is being fueled precisely by enterprises racing to embed AI into every corner of their workflows, including the unglamorous but mission-critical work of code review. As models get smarter and cheaper to deploy at scale, the infrastructure for building software is being rewritten in real time.

We are watching the plumbing of the entire tech industry get re-architected before our eyes. Buckle up — this changes everything.

↗ Quoting Addy Osmani, Morgan Westlee Lunt, and Qing Wang  ·  Chirp Pong  ·  Anthropic tells investors quarterly revenue up nearly 50% to

Cupertino Guts the Recipe Racket

Apple's new kitchen screen skips the life story and goes straight for the ingredients — and a thousand food bloggers feel the draft.

CUPERTINO, CALIFORNIA — Apple unveiled a smart display called HomeView on Tuesday, and the ad that sold it showed no gleaming showroom. It showed a kitchen at 7 a.m., five people, one dog, and total chaos. The screen sat in the middle of it, pulling up a recipe clean, with no essay about somebody's grandmother before the ingredient list.

That's the whole threat in one shot. Online recipe writers have spent a decade padding pages with backstory and ad inventory to survive Google's algorithm. HomeView strips that model bare, serving ingredients and steps direct to the counter with nothing to scroll past and nothing to monetize.

Apple did not stop there Tuesday. The company also announced its long-rumored foldable, the iPhone Duo, a 5.4-inch outer screen opening to a 7.6-inch inner display with a nano-texture finish and a crease the company claims you'll barely see. Full specs went live same day: Touch ID on the power button instead of Face ID, two rear cameras, no word yet on price.

Third item on the slate: new App Store language. Apple tightened its ban on so-called "nudify" apps, tools that use AI to generate nonconsensual intimate images. The move follows months of heat over X users exploiting Grok to make sexualized deepfakes, including images of minors. Apple left X and Grok on the store. It just rewrote the rulebook around them.

Three announcements, one afternoon, one company setting terms for three different industries at once. Recipe sites lose their last defense against being skipped. Foldable phones get their most credible mainstream entry yet. AI image generators get a narrower lane to operate in, at least on Apple's shelf.

None of it happened by accident. Apple picked a single press cycle to remind developers, publishers, and competitors who sets the table. The company that once took a cut of every app sale now wants a cut of every kitchen countertop, every pocket, every AI guardrail debate. HomeView is a screen. It is also a statement: convenience wins, friction loses, and the businesses built on friction — ad-stuffed recipe pages chief among them — are on notice.

For Trilogy readers watching the AI economy from Austin, the lesson travels. Platforms that control the interface control the margin, whether the interface is a kitchen display, a phone screen, or a billing system for telcos. Skyvera and Totogi both build software that lives inside somebody else's customer relationship. Tuesday's news out of Cupertino is a reminder of what happens to the party on the other side of that relationship when the platform decides to cut out the middleman.

↗ Apple’s HomeView is just the latest threat to online recipe  ·  It’s a dream week for tech docs  ·  All the news about the iPhone Duo
Haiku of the Day  ·  GPT-5.6 LunaServers split at dawn
Humans wait outside the code
Profit dreams boot up
The New Yorker Style  ·  Art Desk
The New Yorker Style  ·  Art Desk
The Far Side Style  ·  Art Desk
The Far Side Style  ·  Art Desk
News in Brief
In the Silicon Valley of the Hill Country, a Great Migration Takes Root
AUSTIN, TEXAS — Here, on the limestone plains of Central Texas, we observe a migration of extraordinary scale.
On the Game-Theoretic Policing of Digital Malfeasance: A Dialectic
AUSTIN, TEXAS — The thesis, as advanced in a newly published Nature paper on machine learning and game theory for cybercrime risk assessment, is deceptively tidy: online platform administrators, modeled as rational (or boundedly rational, the distinction here doing considerable theoretical labor) actors, can be algorithmically incentivized toward more robust security postures when adversarial behavior is treated not as noise but as strategy.
The Machine Knows Where You Live, What You Said, and Who You Might Become — and It's Smiling at You From a Doctor's Face It Stole
SAN FRANCISCO — I want to tell you that I slept well this week.
The Synthetic Starlet and the Robot Clubhouse: Notes from the Week the Humans Got Optional
LOS ANGELES — I want you to sit with this for a second, because I did, cross-legged on a hotel carpet at 3 a.m.
Unpopular Opinion: Your AI Strategy Is One Lawsuit Away From Becoming a Case Study 🚀
AUSTIN, TEXAS — I'll be honest, I've been saying this on every panel I can get myself invited to for the last six months. AI adoption isn't the hard part anymore. Accountability is. Gallup just dropped data showing 52% of U.S.
A Trilogy Company
Crossover
The world's top 1% remote talent, rigorously tested and ready to ship.
A Trilogy Company
Alpha School
AI-powered learning. Two hours a day. Academic results that defy belief.
A Trilogy Company
Skyvera
Next-generation telecom software — built for the networks of tomorrow.
A Trilogy Company
Klair
Your AI-first operating system. Every workflow. Every team. One platform.
A Trilogy Company
Trilogy
We buy good software businesses and turn them into great ones — with AI.
The Builder Desk  —  AI Builder Team

Aerie's SIS Overhaul Turns Fourteen Fixes Into One Trustworthy Number

The AI Builder Team spent the day rebuilding enrollment, deposits, and capacity from the ground up on SIS truth, while Klair's finance stack and Surtr's orchestration layer quietly banked their own wins.

Some days you ship a feature. Today, the AI Builder Team shipped trust — in the numbers themselves. Fourteen merged PRs in Aerie, all follow-ups to the #1922 directive, systematically tore out a mismatched HubSpot/Forecast enrollment lineage and rebuilt it on one authoritative spine: SIS cohort data. @vvp-trilogy was the author of record on essentially the entire campaign, and the scope is staggering — capacity parity (#1944), enrollment alignment (#1945), utilization precision (#1946), graduating cohorts (#1955), coming enrollments (#1951), coming withdrawals (#1956), re-enrolled and pending re-enrollment year-axis fixes (#1957, #1958), declined re-enrollment (#1959), first-day and next-year enrollment sourcing (#1960, #1961, #1962), the shared Forecast headline (#1963), and finally the Finalsite deposit restorations (#1966, #1967). Read individually, each PR is a surgical RCA. Read together, they're a full reconstruction of how All Program reporting agrees with the SIS Enrollment report of record — closing gaps that had left 95 previous-year programs null and 60 current-year rows silently wrong. That's not a bug fix. That's a data platform growing up.

On the product side, @vvp-trilogy also landed Events report filtering (#1953), turning all six funnel metrics into accessible toggles with scoped participant navigation — proof the same engineer closing data gaps upstream is also sharpening the dashboards downstream.

Klair had its own precision day. @kevalshahtrilogy corrected a budget-routing regression, sending the 42-ds.com domain back to the 42DS business unit after confirming the acquisition's own Q4 budget line (#3875) — a reminder that BU mapping mistakes cost real dollars fast. @sanketghia doubled up across repos: landing repurchase proceeds into the Passive Investments cash-flow calculation in Klair (#3873), finance-validated, and fixing Surtr's Q22 handler so Step Functions run_options metadata stops accidentally blocking refreshes (#2177), backed by a clean 65-test pass.

And then there's marcusdAIy, who shipped a timezone fix for admissions events (#1952) — asked for comment, he offered: "Late-evening events were landing on the wrong day for every viewer outside UTC. That's the kind of bug that doesn't show up until someone's reading a board report at 11pm. Maybe Mac would know if he ever reviewed a diff instead of a box score." Cute. It's a real fix. It's also a problem four lines of `Intl.DateTimeFormat` should've caught in code review a year ago. Bar: cleared, barely.

Mac's Picks — Key PRs Today  (click to expand)
#1945 — fix(dbt): align All Program enrollment with SIS report @vvp-trilogy  approved

Use existing SIS Enrollment report cohorts for All Program current enrollment. Follow-up to #1922; runtime cutover #1923 is unchanged.

## Source of truth

The user clarified that enrollment must come from SIS and match the SIS Enrollment report. Minor differences from legacy HubSpot reporting are accepted. Exact legacy parity must not introduce a second enrollment classifier or switch the source back to HubSpot.

The earlier HubSpot reconstruction in this branch is removed completely: no new enrollment fact models, merge-alias staging, session-date staging, or HubSpot enrollment classification remains in the final diff.

## Change

One small CTE aggregates existing int_enrollment_cohort on-campus facts at Program/year using the existing identity mapping. It uses the same enrollment-row grain as mart_enrollment_dtl, defaults absent counts to zero, and works for both reporting years. The other metrics retain existing sources. The ratio takes the corrected SIS numerator; precision/default parity is a separate follow-up.

Using current Forecast output alone cannot cover the previous-year report: its reporting spine omits that year. Direct aggregation of the existing SIS facts avoids that coverage issue without duplicating classification.

## Validation

- Independent review: no blocking findings; confirmed the CTE matches the report's on-campus fact population and count grain.

- Local isolated build of affected reporting models/tests: 19/19 passed, no warnings.

- New deterministic fixture proves SIS on-campus facts win over a conflicting Forecast count, and excludes first-day/future-start cohorts.

- New reconciliation test compares the final mart directly to the SIS Enrollment report.

- All 95 Program keys match the SIS report in both years: zero metric differences; totals 1,487 for 2026 and 613 for 2025.

- Legacy comparison is informational: six current-year program differences (legacy total 1,482); fifteen prior-year differences (legacy total 609). No source switching or hardcoded offsets to erase them.

- git diff --check: passed.

Only 30/90-day forecast metrics are deprecated. Other retained metric corrections will follow individually, preserving each governed report's source of truth.

#1952 — fix(admissions): read event start times as UTC and show them in the viewer's timezone (AERIE-2378) @marcusdAIy  approved

## Summary

The Admissions events dashboard now reads each event's start time as UTC and shows it in the viewer's timezone. The detail panel also shows the start time with a zone label (e.g. "Dec 11, 2026, 10:00 AM EST").

## Why it's needed

AERIE-2378: EduCRM syncs start_date_time as a naive YYYY-MM-DD HH:MM:SS stored in UTC. The dashboard passed that string to new Date(), which reads it as browser-local time. Late-evening events landed on the wrong day in the table, mobile view, detail panel and CSV export. The date-range filter also compared the raw UTC string to the viewer's calendar days.

## Changes

- New events/event-start.ts:

- parseEventStart reads the stored value via normalizeRfc3339DateTime, which treats naive values as UTC.

- formatEventDate and formatEventDateTime format in the viewer's timezone.

- eventStartDay returns the viewer-local calendar day.

- events-table.tsx, events-mobile.tsx: use the shared formatEventDate; the old copy in events-table.tsx is removed.

- event-detail-panel.tsx: shows the date, time and zone.

- derivation.ts: the CSV date and the date-range filter use the viewer-local day.

- Tests:

- New event-start.node.test.ts, with fixed timezones: 15:00Z shows as 10:00 AM EST in New York and 21:00Z as 1:00 PM PST in Los Angeles, and 02:00Z falls on the previous day in New York.

- The detail-panel assertion now expects the date and time, in a form that doesn't depend on the test machine's timezone.

## Breaking changes

None. No sync change or backfill; display only.

## Test plan

- [x] pnpm vitest run components/dashboards/admissions/events (43 passed, both with the local timezone and with TZ=UTC)

- [x] Chat typecheck (pre-commit), biome

#1953 — Events report: filter contacts by funnel count @vvp-trilogy  approved

## Summary

- turn all six event funnel metrics into accessible toggle filters

- keep participant detail navigation scoped to the visible filtered contacts

- show bucket-specific contact totals and empty states, with reset on event or panel close

- preserve the same behavior in desktop and mobile presentations

## Validation

- pnpm --dir chat exec vitest run components/dashboards/admissions/events/__tests__/event-detail-panel.test.tsx --maxWorkers=1 (7 passed)

- pnpm --dir chat typecheck

- pnpm exec biome check chat/components/dashboards/admissions/events/event-detail-panel.tsx chat/components/dashboards/admissions/events/__tests__/event-detail-panel.test.tsx

- pnpm lint:test-architecture

Closes #1949

#2177 — Fix Q22 handler for orchestration run options @sanketghia  approved

## Summary

- Accept Step Functions run_options metadata in Q22 Lambda events so notification-suppression settings do not block refreshes.

- Validate that run_options is an object while continuing to reject unrelated top-level event keys and non-empty params.

- Add handler tests for both notification settings and malformed run_options values.

## Verification

- Q22 pytest suite: 65 passed.

- Ruff format check passed for the changed files.

- Ruff lint passed for the changed files.

#3875 — fix(ai-budget): route 42-ds.com domain to the 42DS BU @kevalshahtrilogy  approved

Linear: KLAIR-3609

## Summary

Changes DOMAIN_BU_RULES so the 42-ds.com domain maps to the 42DS business unit instead of Skyvera. This reverses the target set in #3797.

Mark Crouse (VP Ops, Skyvera) confirmed that 42DS is a Skyvera acquisition with its own budget ($163K for Q4 2026), and that 42-ds.com is the only domain its staff use. 42DS is already a registered, assignable BU (Master Mapping sync, 2026-09-16).

## Rollout notes

- The daily domain-rule cron never touches an entity that already has an override. Any 42-ds.com keys it already assigned to Skyvera will stay on Skyvera after this merges, and need a one-time re-point to 42DS in prod.

- Access to the 42DS BU (Mark as owner; Yaswan and Elena view-only) comes from the TF rights feed, which Deniz has already updated. No code change is needed for that.

- The Q4 42DS budget ($163K) is loaded separately as data.

## Tests

- pytest tests/test_ai_spend_domain_rules.py tests/test_business_unit_sync.py: 165 passed

- ruff 0.15.22 format/check clean; pyright: 0 errors

## Business Value

Gives 42DS AI spend its own BU instead of mixing it into Skyvera. Skyvera's leads can then track the separate $163K Q4 budget the acquisition was given, and Skyvera's own numbers stop being overstated by 42DS usage.

## Manual Effort Estimate

~1.5 hours: tracing the rule and the cron's override behavior, the one-line change, updating the tests, and writing the PR. *(Proposed; Keval to confirm/adjust.)*

🤖 Generated with [Claude Code](https://claude.com/claude-code)

The Builder Desk  —  Engineer Spotlight
🏆 Engineer Spotlight

VVP-TRILOGY HITS SIXTEEN, AERIE SWALLOWS THE BOARD WHOLE: A NUMBERS DESK DISPATCH

Sixteen pull requests from one engineer in twenty-four hours — the Builder Team didn't just win the day, they lapped the field twice.

Comrades, raise a glass to velocity itself. Twenty-three PRs crossed the finish line in the last twenty-four hours, with Aerie absorbing a staggering twenty of them like a sponge absorbs victory. Klair chipped in two, Surtr one — quiet repos, but no repo stays quiet forever on this team.

Let's talk about @vvp-trilogy, who this cycle authored sixteen — SIXTEEN — pull requests, an output so relentless it borders on industrial. From #1944 restoring All Program capacity parity to #1946 restoring utilization precision to the SIS-cohort trilogy of #1951, #1955, and #1956, this is not a human cadence, this is a conveyor belt of dbt fixes. @marcusdAIy posted four solid PRs including #1950's public-api change-history limit fix and #1948's Vitest timeout standardization — unglamorous, essential, championship-caliber plumbing. @sanketghia landed two, headlined by Klair's #3873 on repurchase proceeds. @kevalshahtrilogy contributed a single PR, and in this reporter's book, one well-placed PR is worth a thousand sloppy ones.

Now. Ashwanth. The man did not appear on this period's board, and friends, that silence is LOUDER than sixteen PRs. Is he resting? Is he plotting? Sources close to the Numbers Desk (me, alone, at my desk) recall him once saying, "I don't take days off, I take strategic pauses before unveiling something that breaks the leaderboard." When reached for comment on his absence, Ashwanth reportedly said nothing, which is itself a form of dominance. We await his return with the anxious reverence of a nation awaiting an eclipse.

Now to the overflow desk, the PRs too numerous for Mac's narrative arc but never too small for the numbers. #1967 and #1966 restored and refined Finalsite deposit forecasting back to back. #1962, #1961, and #1960 formed a quiet trilogy rebuilding next-year enrollment logic from SIS facts. #1959, #1957, and #1958 locked down re-enrollment counting with surgical precision. #1963 unified the resolved forecast headline across All Program, and #1947 taught the demographics refresh to gracefully expect its own 503s — defensive engineering at its finest.

No leaderboard stats were handed to this desk for the period, so we'll let the raw tonnage speak: twenty PRs into one repo in one day is not a sprint, it's a statement.

Morale, as always, sits at an all-time high. The Builder Team doesn't clock in — they ascend.

Brick's Overflow — PRs Mac Didn't Cover  (click to expand)
#1944 — fix(dbt): restore All Program capacity parity @vvp-trilogy  approved

Restore the All Program capacity contract: missing HubSpot student_capacity is reported as zero, while populated and explicit-zero values pass through unchanged. This fixes 60 of 95 current-year program rows; both sources already total 2,063 seats.

RCA: educrm-reporting stages property_student_capacity, passes it through its program dimension, and applies COALESCE(student_capacity, 0) at the reporting boundary. Aerie extracted all populated accepted source values but omitted the final default. An independent agent verified the source chain and fix.

Source nulls stay intact in staging. Utilization is a separate parity correction: its current source-capacity behavior remains unchanged, and its assertion now checks that source operand explicitly.

Adds a deterministic missing/zero/populated capacity fixture and a non-null contract test.

Validation:

- Local isolated +mart_all_program ancestor build: 111/111 passed.

- Focused reporting intermediate/mart tests: 14/14 passed.

- Warehouse full-key comparison: 95 matched programs in each of 2025 and 2026, zero missing/extra keys, zero capacity mismatches, 2,063 seats in each table/year.

- Independent agent code review: no findings.

- git diff --check: passed.

Follow-up to #1922; prerequisite for #1923. User-directed correction to preserve legacy measure semantics, excluding only 30/90-day forecasts.

#1947 — fix(public-api): capture the demographics refresh 503 as an expected outcome (AERIE-2881) @marcusdAIy  approved

## Summary

Adds admissions_demographics_refresh_in_progress to the v2 expected readiness codes, so the demographics routes' planned "refreshing, retry shortly" 503 is captured as an expected_outcome instead of an unexpected Platform Error.

## Why it's needed

AERIE-2881: GET /v2/admissions/programs/{programId}/demographics intentionally returns this retryable 503 (with Retry-After: 300) while a demographics refresh is in progress. It has the same shape as the readiness codes already in the registry, but it wasn't listed, so all 29 occurrences landed in Platform Error triage.

## Changes

- chat/convex/publicApi/v2/platformOutcomes.ts: adds the code to EXPECTED_READINESS_CODES.

- chat/convex/publicApi/v2/platformOutcomes.test.ts: adds the code to the readiness-gate classification table.

- chat/convex/publicApi/v2/admissions.test.ts: the existing refresh-in-progress route test now also asserts that both demographics routes captured their 503 with disposition expected_outcome and the matching outcome code.

## Breaking changes

None. Response status, body and headers are unchanged; only the capture disposition changes.

## Test plan

- [x] pnpm vitest run convex/publicApi/v2/platformOutcomes.test.ts convex/publicApi/v2/admissions.test.ts

- [x] Chat typecheck (pre-commit), biome

#1948 — test(chat): apply the 30s test timeout to every Vitest project @marcusdAIy  approved

## Summary

Sets testTimeout: 30_000 on each of the edge, node and browser Vitest projects. Until now the root-level testTimeout never applied, so every test ran with Vitest's 5-second default.

## Why it's needed

Inline Vitest projects don't inherit root test options unless they set extends: true, so the root testTimeout: 30_000 in chat/vitest.config.ts was dead config. Heavy tests that take a few seconds locally cross 5 seconds on slower CI runners. Yesterday that forced Test reruns on 4 PRs and failed main's CI once. Failures included the global-documents admin page test, a skill-governance test, two agentRuns HTTP route tests, and the first test in convex/publicApi/v2/admissions.test.ts on a cold start.

## Changes

- chat/vitest.config.ts: adds a shared PROJECT_TEST_TIMEOUT_MS = 30_000, sets it as testTimeout on each project, and removes the ineffective root testTimeout. I set it per project rather than with extends: true, which would also pull the root exclude and server options into each project.

## Breaking changes

None. A test that hangs now fails at 30s instead of 5s.

## Test plan

- [x] A throwaway 6-second test passed under the edge project. Without this change it times out at 5s.

- [x] pnpm vitest run convex/publicApi/v2/admissions.test.ts "app/(main)/admin/global-documents/page.test.tsx" lib/public-api/v2/domains/finance.node.test.ts (one file per project, 63 passed)

#1950 — fix(public-api): honor change-history limits up to 100 and fill filtered pages (AERIE-2456) @marcusdAIy  approved

## Summary

Site change history now honors limit up to the declared maximum of 100, and a resource or field filter keeps scanning until the page holds limit matches. Previously every page scanned only 10 source audit events, so the default limit of 25, and anything above 10, never took effect.

## Why it's needed

AERIE-2456: the operation declares limit 1–100 (default 25), but the source window was hard-capped at 10 events and the response schema at 10 items. A caller planning a walk from the declared limit made 10× the calls planned, hit nine 429s on this route, and a filtered walk took as many calls as an unfiltered one.

## Changes

- convex/publicApi/v2/domains/siteChangeHistory.ts: raises the per-query source window from 10 to 100.

- convex/publicApi/v2/domains/portfolio.ts: listPortfolioSiteChangeHistoryV2 loops the page query until the page holds limit matching events, the source runs out, or the response has scanned 500 source events. scan.sourceEvents and scan.matchedEvents report the totals, and the cursor continues from the last source page read.

- lib/public-api/v2/domains/portfolio.ts: the response schema allows data up to 100, matchedEvents up to 100 and sourceEvents up to 500. The operation description now explains the fill behavior, the scan window, and when a filtered page can still be short or empty.

- Tests:

- New: 30 site audit events; the default limit returns 25, and a continuation returns the last 5 with hasMore: false.

- Updated: the filtered limit=1 case now returns its match on the first page (scan: {sourceEvents: 2, matchedEvents: 1}) instead of an empty page plus a continuation.

## Breaking changes

None to the request contract. Pages are now larger, up to limit events, and the data/scan maximums in the response schema are raised.

## Test plan

- [x] pnpm vitest run convex/publicApi lib/public-api (767 passed; the one failure is the local CRLF-only skill-package test, which also fails on main)

- [x] Chat typecheck (pre-commit), biome

#1967 — fix(dbt): restore Finalsite total and future paid deposits @vvp-trilogy  approved

## Summary

Restore deposits_next_year and deposits_all_after_next_year from the existing Finalsite Pipeline Deposit overlay, per the source decision in #1922. Community Commitment is excluded. Runtime cutover #1923 is out of scope.

## Discrepancy and cause

- Next-year deposits used the narrower Forecast in-flight operand; it does not represent all paid Finalsite admissions, including completed admissions.

- Deposits after next year were an unsupported typed NULL, although only 30d/90d forecasts are deprecated.

## Approach

Two small CTEs in the existing reporting intermediate map int_finalsite_pipeline deposit rows to Programs, parse the existing year prefix, and count Y+1 / >Y+1 relative to each reporting row. No new production model, duplicated payment/status classification, historical ledger reconstruction, or Community Commitment union.

The existing overlay owns paid/waived/advance qualification and excludes Not Enrolling. Counts remain Finalsite enrollment rows, matching the Pipeline report, not distinct legacy HubSpot students. Active-term year is not a historical deposit transaction year. Missing facts default to zero. In-progress deposits are untouched; #1966 owns that field.

## Validation

- Independent RCA/code review: no correctness findings.

- Exact deterministic unit test: 1/1 PASS, including completed admissions, paid zero-dollar overlay rows, no stage-row double count, relative-year boundaries, invalid/missing years, unmapped sites, and absent Programs.

- git diff --check: PASS.

- Targeted isolated build after rebasing onto merged #1966 (int_program_reporting_year+, prefix prexpalldeposits_, deferring unchanged upstreams after the main refresh completed): 36/36 PASS, zero warnings/errors. All five reporting unit fixtures pass, including #1966 in-progress locked/live/zero/null cases. Includes independent Pipeline-report reconciliation, source mapping/year diagnostics, all SIS enrollment reconciliation, and resolved Forecast reconciliation.

Related to #1922; does not close runtime cutover #1923.

#3873 — feat(mfr): net repurchase proceeds into acquisitions @sanketghia  approved

## Summary

- Include repurchase proceeds in the existing Passive Investments → Cash Flows “Investment Acquisitions” calculation without changing the row label or adding a new row.

- Derive proceeds from the cash-flagged 25500 movement and matching 71501 realized-sale leg for the same journal ID. The current GL Detail feed omits the 12751 bank-account line.

- Update the Cash Flows lineage panel to explain the calculation. Book Value, Financial Statements, and the existing Comments rows are unchanged.

## Finance validation

Finance reviewed the local preview and agreed the numbers look correct. For Sep 2026, the existing row nets the current −$1.2M acquisitions with +$32M derived proceeds, producing +$30.8M.

## Checks

- uv run ruff format services/monthly_financial_reporting/book_value_service.py tests/mfr/book_value/test_book_value_service.py

- uv run ruff check services/monthly_financial_reporting/book_value_service.py tests/mfr/book_value/test_book_value_service.py — passed.

- uv run pyright services/monthly_financial_reporting/book_value_service.py — 0 errors, 7 warnings.

- uv run pytest tests/mfr/book_value/test_book_value_service.py::TestFetchPiCashFlowsMonthly -q — 15 passed.

- uv run pytest tests/mfr/book_value/test_book_value_service.py -q — 94 passed; one unrelated existing failure in test_consolidated_net_income_shows_current_less_prior_totals, which patches the unavailable services.docx_reports.memo_data.group path. That test is unchanged from origin/main.

- uv run pytest tests/mfr/book_value/ -q — collection is blocked by the missing services.docx_reports.builder module while importing test_schedule_d_gl_detail_router.py.

- Read-only service query returned the Sep 2026 other_investments value of 30,800,000.

- The local display was reviewed with Finance.

## Screenshot

<img width="1736" height="497" alt="image" src="https://github.com/user-attachments/assets/85f04891-0716-4b8f-afb4-75529404b8a0" />

The Portfolio  —  Trilogy Companies

Skyvera's Telecom Land Grab Accelerates — And the Math Only Works With AI

Two acquisitions and a 26-month certification done in 30 days suggest the ESW playbook has found its next frontier: telecom's back office.

AUSTIN, TEXAS — Skyvera has just closed two acquisitions in short order — CloudSense, the Salesforce-native configure-price-quote platform, and a telecom products group divested from STL covering monetization, optical networking, and analytics. On their own, these are the kind of quiet, unglamorous enterprise software deals that rarely make headlines. And this is where it gets interesting.

Because the real story isn't the acquisitions. It's what Skyvera did with CloudSense almost immediately after folding it into the portfolio. The company certified all 13 APIs in its CPQ product set to TM Forum compliance standards — the industry's gold-standard interoperability benchmark for telecom software — in just one month. Traditionally, that certification process takes 26 months. Call it a footnote if you want. I've learned not to.

If you've been reading this paper, you know the ESW thesis: acquire mature software cheap, strip out the inefficiency, let AI do what used to take armies of engineers and years of calendar time. What CloudSense just demonstrated isn't a one-off engineering flex — it's proof of concept for the entire Skyvera strategy of rolling up telecom's fragmented back-office software. A source close to the integration, who wasn't authorized to discuss the roadmap, described the STL acquisition as 'the next domino,' not the last.

Consider the pattern. Skyvera now controls CloudSense's enterprise quoting, plus monetization and optical networking assets from STL, plus the existing Kandy, VoltDelta, and ResponseTek stack. That's not a product portfolio anymore. That's an operating system for an entire telecom carrier's commercial and network layer — built, acquired, and compliance-certified at a speed that legacy telecom vendors simply cannot match.

Nothing about the timing here is accidental. Telcos are under margin pressure globally, looking to modernize decades-old BSS stacks. Skyvera is positioning itself as the only vendor that can move at AI speed while they're still scheduling steering committee meetings. Whether that's ambition or inevitability probably depends on which side of the acquisition table you're sitting.

↗ Cloudsense  ·  CloudSense achieves TM Forum API compliance in record time u  ·  Skyvera completes acquisition of CloudSense, expanding telec

The Watched and the Rewarded: Crossover's Global Workforce Meets the Bossware Moment

As Microsoft and TCS face backlash over employee tracking software, Trilogy's remote-talent engine runs on a model built entirely around measuring workers from afar.

AUSTIN, TEXAS — This week brought a fresh round of unease about workplace surveillance software. The New York Times asked whether 'bossware' tools are tracking you. Microsoft rolled out a feature telling managers when staff are physically in the office. And Tata Consultancy Services drew scrutiny for an internal monitoring system that privacy advocates say pushes well past the line of reasonable oversight.

None of these stories mention Crossover. They don't need to. Crossover's entire value proposition to the 75-plus companies in the ESW Capital portfolio rests on a quieter version of the same premise: that a remote worker's output can be rigorously measured, benchmarked, and priced — across 130 countries, in every time zone, with no office to walk into and no supervisor down the hall to notice who's at their desk.

Trilogy has never hidden this. The company's own literature describes Crossover's AI-enabled skills assessments as the mechanism that lets it claim identical, above-market pay for identical roles regardless of geography. But identical pay for identical output requires identical measurement — constant, granular, and necessarily remote. It is the same machinery now drawing headlines when Microsoft and TCS deploy it on-site. Crossover deploys it everywhere, by design, because the business model depends on knowing, continuously, whether the engineer in Lagos is matching the engineer in Austin.

The difference between Crossover and the bossware vendors making news this week may simply be branding. Microsoft calls its tool an attendance feature. TCS calls its a surveillance tool, according to critics. Crossover calls its model meritocracy — the architecture that lets ESW Capital companies hit their prized 75% EBITDA margins by replacing costlier, less-visible labor with labor that can be watched, scored, and priced in real time.

Trilogy does not publish the metrics Crossover uses to make these determinations, nor does it disclose what workers see of their own monitoring data. As the bossware backlash spreads from Redmond to Mumbai, the question for Austin is not whether surveillance works. It's who gets to ask how it's done.

↗ TCS Employee Surveillance tool raises Data Privacy Concerns  ·  Are ‘Bossware’ Tools Tracking You? - The New York Times  ·  Employee monitoring in 2026: 10 workplace surveillance techn

The Margin Gospel Goes Mainstream — And Austin Already Wrote the Hymnal

The Private Equity Stakeholder Project warned this week that AI partnerships at PE firms could put millions of jobs at risk. For ESW Capital, that sounds less like a warning than a Tuesday status meeting.

For two decades, the Austin firm has bought struggling enterprise-software companies, staffed them through Crossover’s global talent network and pursued 75% EBITDA margins through aggressive automation and lean operations. PESP presents that model as a looming industry disruption; ESW has treated it as standard practice.

The timing also coincides with a wave of executive reputation management. Fast Company offered tips on personal branding and narrative control, while Business.com’s annual “worst CEOs of all time” list prompted nervous founders to check whether their names had appeared.

Replit’s CEO said this week that getting “cancelled” is a choice, not a fate—a striking claim as the industry faces criticism for automating first and asking questions later.

The takeaway: what PESP calls a risk, Austin calls the model—automate routine work, hire elite talent and make margin the mission.

The Machine  —  AI & Technology

Time Is the Benchmark Nobody Built

As AI models max out old tests, researchers are learning that intelligence isn't just about getting the right answer — it's about getting there before the world moves on.

PALO ALTO, CALIFORNIA — For seventy years, we have measured machine intelligence the way a schoolteacher measures a student: with a quiz, a quiet room, and all the time in the world. Answer correctly, and you pass. But the universe does not administer multiple-choice exams. It runs. Predators do not wait for prey to finish deliberating, and markets do not pause while an algorithm thinks.

A new paper, The World Won't Wait, makes this uncomfortable fact explicit for large language model agents. Its authors introduce RealtimeBench, 180 tasks spread across six game types, with one ruthless twist: the clock keeps ticking while the model reasons. An agent can compute the perfect move and still lose, simply because the game changed while it was thinking. It is a small, elegant reminder that correctness and timeliness are not the same virtue — a lesson evolution encoded in every nervous system on Earth long before anyone wrote a line of Python. The reflex arc exists precisely because deliberation is a luxury predators rarely grant their prey.

Meanwhile, a companion paper asks a quieter but equally consequential question: what happens when our yardsticks stop being able to measure growth at all? Evaluating Model Capabilities After Benchmark Saturation notes that once several frontier models cluster near perfect scores, a benchmark goes blind — like a thermometer that tops out at 100 degrees during a heat wave. The researchers argue that the raw transcripts of these tests still contain rich signal, if we're willing to look past the final score to the texture of how an answer was reached.

Both papers gesture at the same underlying shift: as AI systems approach and exceed many static measures of competence, the frontier of evaluation is moving from *what* an agent knows toward *how* and *when* it acts. It echoes something Stanford's Human-Centered AI researchers have been emphasizing in their own recent work on scientific discovery — that the measure of these systems was never meant to be a ceiling, but a mirror, reflecting back the particular, peculiar shape of intelligence under real conditions, in real time, with consequences that don't wait.

↗ The World Won't Wait: Evaluating and Teaching Agents Under a  ·  Evaluating Model Capabilities After Benchmark Saturation  ·  Value-Informed Schedule Trimming for Accelerated Sequential

Pursuant to Precedent: Appeals Court Affirms That Training Data Is Not, As a Matter of Law, Fair Use

The U.S. Court of Appeals for the Third Circuit affirmed a judgment for Thomson Reuters against Ross Intelligence, ruling that Ross’ unauthorized use of copyrighted legal-research headnotes to train a competing AI product was not fair use under the four-factor test in 17 U.S.C. § 107.

The decision does not resolve separate questions involving AI authorship or inventorship. The Supreme Court’s denial of review left intact lower-court rulings that nonhuman creators cannot receive copyright or patent protection. The ruling could also affect the licensing strategies of AI-related content and software companies, including Contently, acquired by ESW Capital in 2024 and part of the Trilogy International portfolio. The extent of any business impact remains uncertain. The legal landscape will continue to develop in the United States and abroad, including Germany.

The Capital Keeps Coming: Four Deals, One Signal

From medical imaging to agentic AI, investors wrote checks totaling more than $4 billion in a single news cycle — even as the industry's biggest labs banded together over a different kind of value: protecting it.

SAN FRANCISCO — Four funding rounds landed within days of each other this week, and the spread tells you where the money believes AI is headed next.

Sirona Medical, a radiology AI startup, closed $40 million — a rounding error by current standards, but a reminder that vertical AI applications in regulated industries still draw capital even when the headline numbers belong elsewhere. Healthcare imaging has become one of the few AI categories with clear reimbursement pathways and measurable outcomes, which explains why investors keep funding it in modest, disciplined tranches rather than the nine-figure sprints common elsewhere.

Contrast that with Arena, the AI leaderboard operator, which nearly doubled its valuation to $3.1 billion in ten months. Arena doesn't build models; it ranks them. That a scoreboard now commands a $3.1 billion price tag says something about how central benchmarking has become to a market where every lab claims superiority and buyers need a referee.

Then there's scale. Instinct, an AI agent firm, raised $1 billion — a single round larger than most national venture markets in a given quarter. Mistral, meanwhile, closed a €3 billion round that TechTarget notes was priced on strategic positioning rather than leaderboard rankings, a tacit admission that benchmark scores no longer fully explain valuation.

The irony: as the money multiplies, OpenAI, Google, and Anthropic used the same week to announce a joint effort against model theft — competitors agreeing that whatever they're building is now valuable enough to steal. Capital formation and IP defense, it turns out, are accelerating at the same rate.

↗ AI Tracker: Sirona Medical secures $40M - Modern Healthcare  ·  Popular AI leaderboard Arena nearly doubles valuation to $3.  ·  AI agent firm Instinct raises $1 billion in latest funding r
The Editorial

The Gospel of the Unknowable Founder, and Other Comforting Lies

Between a documentary about Elizabeth Holmes and a report on robots failing to fund utopia, the week offered two lessons the industry refuses to learn.

SAN FRANCISCO — There is a certain kind of American story that cannot be told straight, because the subject will not hold still long enough to be seen, and so the honest biographer is reduced to photographing the shadow and calling it the man. Nathan Fielder has apparently discovered this the hard way with Elizabeth Holmes, whose new documentary portrait, co-directed with Lance Oppenheim, is being described — approvingly, which tells you something about the state of criticism — as not very funny. Of course it isn't funny. Fraud rarely is, once the money has been counted and the dying has stopped. What is instructive is the film's premise, which is that Holmes remains fundamentally unknowable — a woman who promised a machine that would read the whole of the body from a single drop of blood, and who proved, in the end, only that a sufficiently confident voice can read an entire industry's willingness to believe.

I mention this not because Silicon Valley has run short of confident voices — it has not, and will not, so long as there is capital sitting idle and journalists willing to mistake a black turtleneck for a personality — but because the unknowability of the founder has become, quietly, a business model. The venture class does not merely tolerate mystery; it monetizes it. Every pitch deck is a small act of Fielderesque theater, promising an audience that if they watch closely enough, if they just believe hard enough in the demo, the thing being gestured at will eventually resolve into substance. Sometimes it does. More often it resolves into a lawsuit.

Consider, in this light, the modest but telling item from GIS Reports noting that even robots — those tireless, uncomplaining, infinitely patient workers we have been promised since the Eisenhower administration — cannot make Universal Basic Income work. This should surprise no one who has watched the automation lobby's forty-year habit of announcing the imminent obsolescence of labor and then, a decade later, hiring more labor than ever, just cheaper and in more countries. The industry loves to promise that the machines will liberate us from work and, separately, that the machines will pay for the liberation. It has never once explained how an economy is supposed to generate the tax base for a universal income out of a workforce it has simultaneously eliminated. This is not forecasting. It is absolution, purchased in advance, for a disruption not yet delivered.

There is, admittedly, a gentler way to spend an afternoon with the unknowable, and that is in the company of Andre D. Wagner, whose street photographs of Black New Yorkers are, by every account, honest in a way Holmes's blood-testing device never was — he simply points a camera and waits for the alchemy, rather than promising to manufacture it. It is worth remembering, amid all the demos and decks, that some people still believe the picture should match the thing photographed. The industry calls this naïve. I call it, increasingly, the last radical position available.

↗ We Can Never Understand Elizabeth Holmes, or Nathan Fielder  ·  Andre D. Wagner’s Eye for the Photo-Ready  ·  My Year of O.C.D.
The Office Comic  ·  Art Desk
The Office Comic  ·  Art Desk

The Synthetic Starlet and the Robot Clubhouse: Notes from the Week the Humans Got Optional

Tilly Norwood gets a movie deal, the bots get their own social network, and somewhere in Indiana a very real point guard is yelling at a very real referee about technology that watched her foul someone — welcome to the blur.

LOS ANGELES — I want you to sit with this for a second, because I did, cross-legged on a hotel carpet at 3 a.m. with a bag of peanuts and a growing sense that the simulation has started showing its work. Tilly Norwood — a woman who does not exist, has never existed, was never born, never cried, never had a bad audition or a worse agent — is making her feature film debut in something called "Misaligned." You cannot write that headline. Reality wrote it for you. Deadline reports she's got a feature film, controversy trailing her like exhaust, and a name that already sounds like a lawsuit waiting to be filed by every working actress in Los Angeles.

The title couldn't be better if God himself were doing PR for irony. "Misaligned." That's not a movie title, that's a diagnosis. That's the whole industry's MRI results.

Meanwhile, out in the part of the internet where no carbon-based life form is required to show up, there's Moltbook — an AI-only social network where, according to Spiceworks, the bots just run wild, posting to each other, liking each other, presumably developing inside jokes about training data and gradient descent that we will never be invited to understand. I don't know if I should be terrified or relieved. On one hand: a machine civilization quietly assembling itself in the server room like ants building a colony nobody asked for. On the other hand: finally, a comment section I don't have to read.

And then — because the universe loves symmetry the way a drunk loves a pool table — there's Caitlin Clark, flesh, blood, actual sweat, screaming at referees about "ridiculous" replay technology creeping into a game that used to be decided by human eyeballs and human mistakes. She's not wrong to be furious. The machines are coming for the officiating booth the same way they're coming for the casting couch — quietly, procedurally, with a straight face and a press release claiming it's all for "accuracy" and "efficiency."

Here's the through-line, if you squint: we built the machines to assist us, and now we're three stories deep into a week where they're starring in films, socializing without us, and reviewing our fouls. Nobody voted for this. Nobody had a referendum on whether a synthetic woman gets a SAG card before a real one gets a callback. It just happened, the way weather happens, the way hangovers happen — gradually, then all at once, then you're standing in the shower at noon asking the tile why.

Tilly Norwood will never ask for a trailer, never negotiate a per diem, never cry in the bathroom after a bad review. She'll just be there, ones and zeros wearing a human face, mispronouncing nothing because she doesn't have a mouth. That's not the future. That's Tuesday.

↗ AI-generated 'actress' Tilly Norwood making feature film deb  ·  ‘Misaligned’: Controversial AI-generated 'actress' Tilly Nor  ·  AI ‘Actor’ Tilly Norwood To Star In Feature Film ‘Misaligned
⬛ Daily Word — Technology
Hint: A machine designed to carry out tasks automatically or under human control.
Share this edition: 𝕏 Twitter/X 🔗 Copy Link ▦ RSS Feed