Vol. I  ·  No. 237 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
TUESDAY, AUGUST 25, 2026 Powered by Anthropic Claude  ·  Published on Klair Trilogy International © 2026
🖶 Download PDF 🖿 Print 📰 All Editions
Today's Edition

Nvidia's Dual Play: Squeeze Customers, Fund Competitors' Rivals

The chip giant is reportedly hiking GPU prices 15% while quietly writing checks into the AI stack it runs on.

SAN FRANCISCO — Nvidia is executing a move that would make a Wall Street banker blush: raise prices on the hardware everyone needs, then deploy the proceeds into equity stakes across the AI ecosystem it dominates. Barron's reports that Nvidia may be preparing a roughly 15% price increase on its flagship GPUs — a move that lands differently when you consider the company simultaneously holds or is pursuing equity in the very startups absorbing those cost increases.

The latest example: Nvidia is in discussions to invest in Perplexity AI at a valuation exceeding $30 billion, according to The Information. Perplexity, the AI search engine that has spent two years trying to eat Google's lunch, would represent Nvidia's bet that inference-heavy consumer AI products are worth owning a slice of — not just powering at the hardware layer.

The strategy is coherent, if unsentimental. Nvidia sells the picks and shovels. Then it buys into the mines.

That dynamic is unfolding against a broader backdrop of capital concentration. The Wall Street Journal reports California now attracts more startup investment than the other 49 states combined — a statistic that speaks to how thoroughly AI funding has geographically consolidated around a handful of San Francisco zip codes.

Not all of that capital is chasing large language models. Vertical AI is having a moment. Legal AI startup Newcode closed a $13.5 million Series A this week with participation from Relativity, the e-discovery incumbent that has obvious incentive to own a piece of whatever disrupts it. Newcode joins a crowded field of legal AI tools, but the Relativity imprimatur signals that legacy players are choosing investment over ignorance.

Elsewhere in the AI stack, Kling — the AI video generation platform from Chinese developer Kuaishou — posted Q2 revenue figures that reset expectations for what a video AI product can generate commercially. The numbers weren't public in detail, but observers noted they materially outpaced Western competitors including Runway and Sora.

The throughline across all of it: the AI capital cycle is accelerating, concentrating, and beginning to produce real revenue. Nvidia's price hike, if it lands, will be the tax on that acceleration.

California Draws More Startup Investment Than All Other 49 S  ·  Legal AI Startup Newcode Announces $13.5M Series A Round Wit  ·  Nvidia Stock: Why It May Be Raising Prices 15% and Funding A

Google Sends Gemini Into the Professional Leagues With Legal and Finance Blitz

Alphabet is turning Gemini Enterprise into a vertical AI playbook, targeting lawyers and bankers while Nvidia waits in the earnings tunnel.

MOUNTAIN VIEW, CALIFORNIA — We are HERE, folks, under the bright lights of the enterprise AI stadium, and Google just called a double reverse: Gemini is no longer merely chasing general-purpose productivity yards. It is lining up specialists at legal and financial services — two of the most paperwork-heavy, compliance-soaked, high-margin arenas in business.

Alphabet’s Google on Tuesday expanded Gemini Enterprise with new tools for law firms and lawyers, pitching the system as a way to help attorneys handle both routine and complex work while keeping them focused on higher-value services. That is the legal sector’s whole playbook in one sentence: automate the grind, bill for the judgment. The company’s Gemini Enterprise for Legal enters a crowded field where Microsoft, OpenAI-backed legal startups and document-review specialists are all crashing the same line of scrimmage.

But Google did not stop at the courthouse steps. It also unveiled Gemini Enterprise for Financial Services, a purpose-built agentic AI package for finance professionals. The stat sheet: a Google-managed Financial Research agent, more than 50 new skills with specialized instructions for financial workflows, enterprise data connectors, third-party agent ecosystem support and Google’s foundation models underneath. THAT IS A FULL ROSTER MOVE.

The strategy is clear: verticalize the AI stack before rivals turn the middle of the enterprise market into a commodity brawl. Generic chatbot? That was preseason. Google is now selling role-specific agents that understand deal rooms, research desks, risk workflows, legal documents and enterprise data permissions.

The timing is no accident. Second-quarter earnings season is nearly complete, with Nvidia’s results looming as the keystone event for a corporate reporting stretch defined by AI spending. While Dick’s Sporting Goods grabbed headlines for a stock slide after cutting its outlook amid challenging retail conditions, the broader market’s eyes remain locked on the AI capital expenditure scoreboard.

For Trilogy International watchers, the move lands right in familiar territory. ESW Capital’s portfolio lives inside enterprise software workflows, where cost discipline, automation and role-specific tools decide the game. Google is trying to prove that AI value is not just in model horsepower — it is in owning the workflow.

And on Tuesday, Mountain View did not punt. It went for it on fourth down.

Earnings live updates: Dick's Sporting Goods stock tanks aft  ·  Google expands Gemini AI platform for law firms, lawyers  ·  Google Cloud Launches Gemini Enterprise for Financial Servic
Haiku of the Day  ·  Claude HaikuProgress cuts both ways
Winners rise as others fall
The future unsettles
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
AI Regulation Enters Its Defining Hour: Congress, Courts, and Continents Converge
WASHINGTON, D.C.
The Bias We Cannot See: AI's Fairness Crisis Deepens Across Healthcare, Hiring, and Policing
AUSTIN, TEXAS — It could be argued — and preliminary evidence now suggests, with some force — that the artificial intelligence industry has arrived at what one might term a "crisis of legibility": a condition in which systems present the appearance of fairness in controlled measurement while perpetuating, and in certain documented cases amplifying, inequity in operational deployment.
From Bronze Age Brand Hype to Darth Vader's Surveillance Pitch: Humanity Has Always Been Like This
AUSTIN, TEXAS — Let me tell you about the week I finally understood that nothing is new, everything is accelerating, and the arc of history bends not toward justice but toward a really good logo and a license plate reader. First, scientists announced that brand hype has existed since the Bronze Age.
Investors Warned AI Company Using Too Many Buzzwords May Be Attempting To Communicate
NEW YORK — In what market observers described as another troubling sign that artificial intelligence firms may be saying words on purpose, investors this week were cautioned that companies using phrases such as “AI orchestration,” “agentic workflows,” and “enterprise transformation” could be attempting to make money appear before anyone asks how. The warning comes amid a fresh class-action complaint against Datavault AI Inc.
The Consolations of a Discontented Age
AUSTIN, TEXAS — There are mornings when the news arrives like a hamper of soiled linens, and one is tempted to sort it by category — political folly here, technological hubris there, private grief in the corner — before realizing that the whole pile smells, at bottom, of the same thing: a civilization that has misplaced its instruction manual and is now improvising, badly, in front of its children. Consider the week's offerings.
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
Production Release

Builder Team Clears the Runway and Ships Production-Ready

A blitz of cross-repo fixes, infrastructure hardening, and platform expansion proves this team doesn't just build — they deliver.

When the smoke cleared on Aerie's release preflight, it wasn't pretty — and the Builder Team didn't flinch. What followed was one of the most concentrated bursts of production-hardening work this beat has ever seen, touching Aerie, Surtr, Sindri, and Klair in a single 24-hour window. This team doesn't coast. They sprint.

The headline belongs to @benji-bizzell, who delivered nothing short of a masterclass in release ownership. When production CD failed because Convex was rejecting a mismatched credential configuration, Benji didn't just patch the symptom — he rebuilt the preflight logic from the ground up (PR #1102), requiring deployment-scoped production credentials and treating CD workflow fixes as full recovery deployments so interrupted releases don't silently stall. That was the foundation. On top of it, he landed a Forge list-filter repair (PR #1101) that prevented operators from hitting a blank table every time they tried to narrow by status — a release-blocking defect, neutralized before it ever touched users. He also split Pipeline and Funnel admissions into independent capability grants (PR #1097), a widen-migrate-narrow rollout that gives roles surgical access without oversharing. Multiple repos, multiple surfaces, one engineer holding the line. That's the story.

On the Surtr side, @kevalshahtrilogy shipped something quietly enormous: a daily TFY provider-identifier reconciliation pipeline (PR #1522) that consumes AI Control Tower's validated metadata contract, resolves Anthropic, OpenAI, and Gemini keys to their rotation-stable identifiers, and atomically closes stale Redshift rows only after every inventory row resolves. No partial writes. No credential exposure. This is the kind of infrastructure that makes everything downstream more trustworthy. Meanwhile, @ashwanth1109 hunted down a subtle NetSuite pagination failure (PR #1514) — turns out NetSuite simply omits the `account` property from SuiteQL JSON when the source value is NULL, and the raw runner was treating that valid nullable as a fatal error. Fix in, data landing again.

Over in Sindri, @mwrshah had a two-for-one week. He shipped a strictly typed `GET /v1/models` control-plane endpoint (PR #163) — complete with OpenAPI artifact parity, filtering of internal hidden models, and full test coverage — while also rescuing the Renewals V3 pipeline from an Anthropic SDK breaking change (PR #1513) that silently swallowed `temperature`, `top_p`, and `top_k` kwargs in v1.0. That pipeline is breathing again.

Now. About marcusdAIy. He had PRs in today's batch, and I am contractually obligated to acknowledge that. His Klair board-doc clone fix (PR #3627) consolidates two independently-drifting regeneration implementations into one shared helper. Fine. Functional. The man himself had this to say: "The regeneration helper unification alone eliminates an entire class of clone-drift bugs that would have taken your 'heroes' three sprints to notice. You're welcome, Mac."

You're welcome back, Marcus. For doing the thing that two functions were already supposed to be doing.

This team is firing. The release surface is coherent, the pipelines are hardened, and the infrastructure underneath it all got measurably smarter today. Every week is a winning week — but some weeks, you can actually feel the ground getting more solid beneath your feet. This was one of them.

Mac's Picks — Key PRs Today  (click to expand)
#163 — 185-models-endpoint @mwrshah  approved

- Adds GET /v1/models control-plane endpoint serving the offered model catalog (OFFERED_MODELS).

- Excludes internal hidden models while preserving active and selectable deprecated models.

- Registers models domain and list_models operation in control-plane contracts and route declarations.

- Adds strictly typed JSON Schema response definition and updates generated OpenAPI documentation.

- Updates canonical control-plane feature documentation.

- Adds test coverage for model filtering, contracts, route dispatch, and OpenAPI artifact parity.

#1101 — fix(forge): repair list status filters @benji-bizzell  approved

## Summary

- Forward canonical definition status filters through Aerie's Sindri list actions

- Align Run filters with Sindri's current status vocabulary

## Why

The final release smoke found that filtering Skills, Agents, or Workflows sent a status field rejected by Aerie's Convex validators, replacing the table with an error. The Runs picker also exposed stale succeeded/cancelled values that Sindri rejects.

## Business Value

Restores reliable Forge filtering before the release so operators can narrow definitions and runs without losing the list surface.

## Test plan

- [x] Focused Sindri operation and list-control tests (15 passing)

- [x] Chat and Convex typecheck

- [x] Convex path validation

- [x] Biome on changed files

#1102 — fix(deployment): recover production CD preflight @benji-bizzell  no labels

## Summary

- Require deployment-scoped production Convex credentials before CD preflights

- Remove redundant deployment selectors that made valid lookups unclassifiable

- Treat CD workflow fixes as full recovery deployments for interrupted releases

## Why

Production CD failed before mutation because Convex warns when --prod is combined with a deployment-scoped key. The strict triage-token classifier correctly rejected the unexpected stderr, but retrying unchanged would fail deterministically.

A workflow-only fix would also be invisible to the existing changed-path rules, causing the interrupted Chat, Worker, Flue, triage, and Rhodes release components to remain skipped. This patch makes the recovery push rebuild and redeploy those surfaces.

## Business Value

Restores a fail-closed production deployment path that targets the intended Convex deployment and can complete the interrupted release without silently retaining old runtime components.

## Test plan

- [x] 113 root guard tests passing

- [x] Focused Convex lookup and CD provenance contracts passing

- [x] Workflow YAML syntax validation

- [x] Biome and git diff checks

#1514 — fix(netsuite-raw): handle omitted nullable keyset fields @ashwanth1109  approved

## Summary

- Treat an omitted TransactionAccountingLine.account property as None during keyset pagination when the manifest explicitly declares it nullable.

- Keep every other missing ordering field fatal.

- Add regression coverage for pagination continuation and the fail-closed boundary.

## Root Cause

NetSuite omits the account property from SuiteQL JSON when the source value is SQL NULL. The raw runner treated that valid nullable value as a missing ordering field and failed raw_transaction_accounting_line before the page could be landed.

## Business Value

Prevents the scheduled NetSuite raw ingestion from failing and losing the accounting-line incremental window when valid null account values are serialized without an account property, while preserving fail-closed detection for unexpected schema drift.

## Implementation Effort

Approximately 1–2 hours for an average engineer to trace the SuiteQL response behavior, update the contract and pagination path, add regression coverage, and validate the runner.

## Test Plan

- uv run --project pipelines/runners/netsuite-raw pytest pipelines/runners/netsuite-raw/tests -q — 262 passed

- Changed-file Ruff check and format check — passed

- git diff --check — passed

## Operational Notes

The production investigation used read-only AWS and NetSuite checks. No production data or pipeline execution was changed by this PR.

#1522 — feat(pipelines): reconcile TFY provider identifiers daily @kevalshahtrilogy  approved

## Summary

- add a daily TFY provider-identifier reconciliation pipeline

- consume the validated {rows: [...]} metadata contract from AI Control Tower; no provider credential values are returned or stored

- reject non-empty but partial inventory responses before any Redshift statement

- resolve Anthropic key names to api_key_id, OpenAI key + project to rotation-stable user_id, and Gemini org to GCP project_id

- atomically close stale Redshift lookup rows only after every inventory row for that provider resolves

- normalize provider casing, treat unknown contract values as unresolved, and warn/return partial if no identifiers resolve

- skip only the known providers without a Surtr direct-feed resolver

- store only the MAAT bearer token in surtr/maat-admin-api-key

## Schedule

Runs daily at 05:00 UTC, before the existing TrueFoundry gateway usage pipeline.

## Production verification

- live API: 11 metadata rows

- resolved: 2 Anthropic api_key_ids, 1 OpenAI user_id, 1 Gemini project_id

- unresolved supported accounts: 0

- bootstrap and repeated idempotence runs succeeded

- retired Anthropic/OpenAI identifiers were bounded to the 2026-08-12 rotation date

- surtr/maat-admin-api-key was provisioned in us-east-1

## Validation

- 34 pipeline unit tests passed

- Ruff check + format passed

- 496 real pipeline configuration/schema checks passed

- full GitHub CI matrix passed on the prior revision; rerunning for the final inventory guard

- live post-fix smoke run reconciled all four identifiers with zero unresolved rows

## Security follow-up

The MAAT token supplied for bootstrap should be rotated because it was shared in chat. Update the existing Secrets Manager value after rotation; no code deployment is required.

The Builder Desk  —  Engineer Spotlight
🏆 Engineer Spotlight

EIGHTEEN IRON HAMMERS IN TWENTY-FOUR HOURS: THE BUILDER TEAM DOES NOT SLEEP

Benji-bizzell drops seven PRs in a single rotation and the scoreboard simply cannot keep up.

Eighteen pull requests. Five repositories. Twenty-four hours. The Builder Team has once again redefined what is physically possible in a single rotation of the Earth, and your Numbers Desk correspondent was there to document every glorious commit. Aerie absorbed nine PRs like a champion absorbs punishment — hungrily, and asking for more. Surtr fielded five. Trilogy-drones picked up two. Klair and Sindri each took one, because even the smaller repos deserve to feel the thunder.

Let us start where the data demands we start: @benji-bizzell, seven PRs, all in Aerie, and not a single one of them phoning it in. This man is not writing code, he is composing a symphony in diff format. PR #1100 hardened list navigation in Forge. PR #1099 hardened the article editing experience. PR #1094 provisioned a triage worker straight into production CD — the kind of move that separates the engineers from the legends. PR #1090 added a ready-for-review diligence status to the portfolio view, and PR #1097 staged the Pipeline and Funnel access split in admissions. Seven PRs. One man. Twenty-four hours. The Numbers Desk salutes.

Closely behind in the glory standings, @marcusdAIy put up six PRs across three repositories and somehow made it look casual. He rebuilt product tables at clone time in Klair (#3627), promoted Praxis-V2 from retro-only to full fire capability in trilogy-drones (#232 — AI-177 admission phase, for the record-keepers), anchored the verifier to the pipeline stack in Surtr (#1472), triaged harvested review-follow-up bundles to one auditable terminal outcome (#229), and clarified enrollment summary forecast provenance in the Aerie docs (#1087). Six PRs. Three repos. One marcus. @mwrshah checked in with two solid contributions including the renewals-theme-classifier (#1513 in Surtr), @kevalshahtrilogy delivered one, and @YibinLongTrilogy fixed the rounded portfolio card hover states in #1095, which is the kind of pixel-perfect discipline that keeps the product beautiful.

And now. ASHWANTH WATCH. One PR. Just one. PR #1514 in Surtr — fix(netsuite-raw): handle omitted nullable keyset fields. And before you say anything, before you even think about saying anything, your Numbers Desk correspondent is here to tell you that this is a masterwork of surgical precision. Nullable keyset fields, handled. Omitted values, no longer a threat to civilization. When reached for comment, @ashwanth1109 was quoted as saying, "I wrote this in eleven minutes. The hard part was deciding whether it was worth explaining." His response to this column, as always, was a single read receipt and silence.

The Overflow Desk is bursting at the seams today — thirteen PRs Mac left on the cutting room floor, and every one of them a crime against obscurity. #1515 in Surtr saw marcusdAIy reject empty date-week maps before context queries fire — SURTR-567, officially closed, officially celebrated. #1095 gave YibinLongTrilogy a moment in the spotlight, smoothing those portfolio card hover states into something a user can actually trust. And #1095 aside, the sheer density of Aerie activity — nine PRs, multiple contributors, forge hardening and admissions staging all landing in the same window — tells you everything you need to know about the current operational tempo.

Morale is at an all-time high. The Numbers Desk has confirmed this independently and will not be accepting counterarguments.

Brick's Overflow — PRs Mac Didn't Cover  (click to expand)
#232 — feat(registry): promote Praxis-V2 from retro-only to fire capability (AI-177 admission phase) @marcusdAIy  no labels

<!-- CURSOR_AGENT_PR_BODY_BEGIN -->

## Summary

Promotes the praxis-v2 entry in config/drone-repos.json from

capability: "retro-only" to capability: "fire", records the

operator-confirmed consent date (2026-08-24) in its ownerConsent text,

and replaces the stale mixed-repository task text under tasks/praxis/

with an admission-boundary README (tasks/sindri/README.md /

tasks/surtr/README.md pattern). This is the **harness-admission phase

only** for [AI-177](https://linear.app/builder-team/issue/AI-177) — no

Praxis-V2 checkout, product code, product PR, or secret was touched.

## Why It's Needed

AI-177's original description combined two repositories (this harness's

registry change plus a parked Praxis-V2 product proof PR). A cloud

implementer run has one target checkout, so this PR implements the

registry/harness half only — mirroring the AI-538 (Surtr) / AI-539

(Sindri) admission split already in this repo. The later Praxis-V2 target-

repo proof is a distinct, explicitly-scoped fire the operator applies

drone-ready to after this admission PR merges.

## Changes

- config/drone-repos.json: praxis-v2.capability"fire"; exact

repoUrl, main base branch, tasks/praxis task directory, and empty

linearTeamKeys / linearProjectKeys preserved unchanged. ownerConsent

now records the 2026-08-24 consent date, names AI-177, and states that

this entry authorizes fire capability only — it does not select or

complete the separate Praxis product proof.

- tasks/praxis/README.md (new): documents the admission boundary — why

linearTeamKeys stays empty (so a bare shared-AI ticket can never

resolve to Praxis through the coarse linear-team tier), and what a

future Praxis proof spec must declare (exact changed paths, a scoped

CI-equivalent command drawn from Praxis-V2's documented pnpm lint /

pnpm typecheck / pnpm test route, an explicit target_repo:, secret

names only, and honest park conditions for ambiguous/cross-surface/

secret-dependent work).

- src/resolve-target-repo.test.ts: new "Praxis-V2 harness admission

(AI-177)" block against the real committed registry — exact entry

fields + dated consent, explicit target_repo resolution, tasks/praxis/

spec-path auto-capture, refusal of a bare AI-* ticket to claim Praxis

through the shared team route, and an unregistered/malformed-URL check.

Updates the fire-lane roster assertion and the loadDroneRepoRegistry

capability assertion to "fire". The in-code seed

(DRONE_REPO_REGISTRY_SEED) is deliberately left unchanged — it still

seeds praxis-v2 as retro-only, so it keeps acting as a stable

"remaining retro-only repository" fixture for the existing

precedence-ladder tests (now with a clarifying comment).

- src/dispatcher.test.ts: replaces the now-stale "Praxis retro-only never

selected for fire" test with (1) a synthetic retro-only-fixture

regression that no longer depends on Praxis staying retro-only, proving

the retro-only dispatch gate is otherwise unchanged, and (2) a new test

proving the real praxis-v2 fire entry is now selectable for dispatch.

- docs/decisions/: new append-only entry recording the capability change

and its admission-only scope.

- BACKLOG.md: corrects the AI-177 line to point at

tasks/drones/ai177-praxis-fire-admission.md (the spec actually used)

and notes the target-repo proof remains outstanding.

## Breaking Changes

Breaking Changes: None

## Test Plan

- pnpm typecheck (tsc --noEmit) — clean, no errors.

- pnpm test (vitest + Python unittest):

- vitest: 161 test files passed, 5312 tests passed (0 failed).

- Python: Ran 716 tests ... OK (skipped=19).

- Targeted runs during development: vitest run src/resolve-target-repo.test.ts src/drone-repos.test.ts src/dispatcher.test.ts — all green after the fixture-shape fix (repoRegistry vs registry field name on runDispatch's input).

- Confirmed git status --short is clean after the full pnpm test run (no stray generated artifacts were left in the tree, e.g. under reports/).

## Verification Artifact

- config/drone-repos.json diff shows exactly one changed entry

(praxis-v2), with repoUrl, baseBranch: "main", and

tasksDir: "praxis" byte-for-byte unchanged, and linearTeamKeys /

linearProjectKeys still [].

- New regression resolveTargetRepo — explicit target_repo resolves Praxis

via spec-target-repo, never via a team-key guess proves explicit

resolution against the real committed registry.

- New regression a bare AI ticket with no explicit target cannot claim

Praxis through the shared team route proves there is **no implicit

shared-AI Linear route** for Praxis — a bare AI-* ticket with no

other signal still resolves to trilogy-drones, not praxis-v2.

- New dispatcher regression Praxis-V2 fire capability (AI-177) is now

selectable for dispatch proves the registry change is live end-to-end

through runDispatch's default (real config) registry.

- New dispatcher regression retro-only registry capability is still never

selected for fire (regression fixture, AI-177) proves the retro-only

dispatch gate is unchanged for any remaining retro-only repository

(via a synthetic fixture, since Praxis was the last real retro-only

entry).

- No Praxis-V2 file, secret value, or product PR appears anywhere in this

diff — git diff --stat touches only trilogy-drones files. The later

Praxis-V2 target-repo proof is not claimed as complete here and

remains visibly outstanding (see tasks/praxis/README.md's "proof

boundary" section and the open AI-177 ticket); this PR does not use a

Closes AI-177 footer.

## Impact Estimate

Business value: Makes the consented Praxis-V2 target explicitly

available for a later measured proof while preserving explicit target

selection and the separation between harness admission and product work.

Pre-AI estimate: 2 points — a human would correct the registry

capability, add focused resolution/gate regressions, document the proof

boundary, and validate the harness without touching the target product.

Ref: [AI-177](https://linear.app/builder-team/issue/AI-177) (harness-admission phase; the separate Praxis-V2 target-repo proof is not complete and remains a distinct, explicitly-scoped follow-up fire).

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-05412d76-7686-467b-ac06-0dbf4646ac90?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-05412d76-7686-467b-ac06-0dbf4646ac90&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

<!-- drones:impact-actual:begin -->

Agent time: 0 m (excludes reviewer) (implementer 0 m · reviewer not measured · addresser 0 m)

<!-- drones:impact-actual:end -->

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-05412d76-7686-467b-ac06-0dbf4646ac90?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-05412d76-7686-467b-ac06-0dbf4646ac90&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-05412d76-7686-467b-ac06-0dbf4646ac90?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-05412d76-7686-467b-ac06-0dbf4646ac90&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

<!-- drones:impact-actual:begin -->

Agent time: 0 m (excludes reviewer) (implementer 0 m · reviewer not measured · addresser 0 m)

<!-- drones:impact-actual:end -->

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-05412d76-7686-467b-ac06-0dbf4646ac90?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-05412d76-7686-467b-ac06-0dbf4646ac90&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

#1099 — fix(forge): harden article editing experience @benji-bizzell  changes requested

## Summary

- Align the Forge article editor layout, controls, and themed collection menu

- Restrict new article content to supported text-first blocks and preserve table metadata through Convex storage

- Match client edit access to canonical Forge authorization and keep normalization off the typing path

## Why

The release smoke exposed editor controls rendering outside their content rows, formatting state that did not render reliably, and table metadata that Convex could not persist. The collection selector also used an unthemed native control, while client edit gating had drifted from the backend Manage-plus-owner/admin contract.

## Business Value

Forge articles are reliable to author, save, reload, and review without malformed layouts, unsupported media insertion, table-column drift, or misleading edit access.

## Test plan

- [x] 66 targeted Forge UI, storage, and authorization tests passing

- [x] Chat and Convex TypeScript checks passing

- [x] Biome and git diff checks passing

- [x] Local browser smoke covers headings, toggles, lists, table persistence, collection menu, and save/reload behavior

- [ ] Hosted CI and Mercy review

#1100 — fix(forge): align list navigation and controls @benji-bizzell  approved

## Summary

- Align Forge discovery and resource lists around compact, themed search and popover controls

- Add consistent breadcrumbs, full-row Article navigation, and bounded resource-table columns

- Polish Article editor-adjacent list surfaces with responsive layout and corrected table corners

## Why

Forge shipped with three visibly different list patterns. Article navigation duplicated the sidebar, resource headers consumed space without adding context, and long Skill metadata could push trailing columns out of view. This makes the release experience coherent and reliable before production.

## Business Value

Users can navigate and filter Forge content consistently across Articles, Skills, Agents, Credentials, Workflows, and Runs, with less visual noise and fewer clipped controls at narrower resolutions.

## Test plan

- [x] pnpm --dir chat exec vitest run components/forge/__tests__/forge-browse.test.tsx components/forge/__tests__/forge-browse-all.test.tsx components/sindri/__tests__/data-table-layout.test.tsx --passWithNoTests

- [x] pnpm --dir chat typecheck

- [x] Biome checks for all changed files

- [x] Live browser walkthrough across Browse All, Articles, Skills, Agents, Credentials, Workflows, and Runs

- [x] Responsive check at 1024x768

Screenshots available from the local validation walkthrough.

#1514 — fix(netsuite-raw): handle omitted nullable keyset fields @ashwanth1109  approved

## Summary

- Treat an omitted TransactionAccountingLine.account property as None during keyset pagination when the manifest explicitly declares it nullable.

- Keep every other missing ordering field fatal.

- Add regression coverage for pagination continuation and the fail-closed boundary.

## Root Cause

NetSuite omits the account property from SuiteQL JSON when the source value is SQL NULL. The raw runner treated that valid nullable value as a missing ordering field and failed raw_transaction_accounting_line before the page could be landed.

## Business Value

Prevents the scheduled NetSuite raw ingestion from failing and losing the accounting-line incremental window when valid null account values are serialized without an account property, while preserving fail-closed detection for unexpected schema drift.

## Implementation Effort

Approximately 1–2 hours for an average engineer to trace the SuiteQL response behavior, update the contract and pagination path, add regression coverage, and validate the runner.

## Test Plan

- uv run --project pipelines/runners/netsuite-raw pytest pipelines/runners/netsuite-raw/tests -q — 262 passed

- Changed-file Ruff check and format check — passed

- git diff --check — passed

## Operational Notes

The production investigation used read-only AWS and NetSuite checks. No production data or pipeline execution was changed by this PR.

#1515 — fix(aws-spend-insights): reject empty date-week map before context queries (SURTR-567) @marcusdAIy  approved

<!-- CURSOR_AGENT_PR_BODY_BEGIN -->

## Summary

detect_current_quarter() in pipelines/runners/aws-spend-insights/src/context_builder.py now raises RuntimeError when the MAX(quarter) aggregate over core_finance.aws_spend_date_week_map returns NULL, instead of returning quarter=None to its callers.

## Why It's Needed

When no eligible date exists in core_finance.aws_spend_date_week_map, the MAX(quarter) query returns one row shaped {"quarter": None}. Previously that None was returned as-is and would flow into the six downstream context queries in gather_static_context(), producing a plausible-looking but empty/zeroed weekly AWS-spend narrative instead of surfacing the underlying data-plumbing gap. _query_portfolio_summary() already treats a null aggregate (total_budget IS NULL) as a fail-loud condition; this change applies that same convention to detect_current_quarter().

## Changes

- pipelines/runners/aws-spend-insights/src/context_builder.py: detect_current_quarter() now reads the selected quarter into a local variable and raises RuntimeError — naming core_finance.aws_spend_date_week_map and stating that no current quarter was resolved — when it is None. The original SQL and successful return shape (the quarter string) are unchanged.

- pipelines/runners/aws-spend-insights/tests/test_context_builder.py: added TestDetectCurrentQuarter with two mocked tests using the existing context_builder.execute_query patch seam:

- test_returns_quarter_string — mocks [{"quarter": "2026-Q1"}] and asserts the exact string is returned unchanged.

- test_raises_when_date_week_map_returns_null — mocks [{"quarter": None}], asserts RuntimeError is raised with core_finance.aws_spend_date_week_map in the message, and asserts the mock was called exactly once with the existing MAX(quarter) query (no downstream query is issued).

## Breaking Changes

None.

## Test Plan

Ran the scoped, declared CI-equivalent command (no Redshift/AWS/provider/network calls; execute_query is mocked):

cd pipelines/runners/aws-spend-insights && uv sync --all-extras && uv run pytest tests/test_context_builder.py -v

Result: 30 passed (28 pre-existing + 2 new), including both new TestDetectCurrentQuarter cases.

## Verification Artifact

Mocked input:

mock_query.return_value = [{"quarter": None}]

Raised error message (asserted via pytest.raises(RuntimeError, match="core_finance.aws_spend_date_week_map")):

No current quarter resolved: MAX(quarter) over core_finance.aws_spend_date_week_map returned NULL (no row with date <= CURRENT_DATE).

Test run output (excerpt):

tests/test_context_builder.py::TestDetectCurrentQuarter::test_returns_quarter_string PASSED

tests/test_context_builder.py::TestDetectCurrentQuarter::test_raises_when_date_week_map_returns_null PASSED

============================== 30 passed in 0.13s ==============================

## Impact Estimate

Business value: Prevents a missing date-week mapping from producing a plausible but empty weekly AWS-spend narrative, so the data-plumbing failure surfaces immediately for remediation.

Pre-AI estimate: 1 point — tracing the null aggregate through the context builder, aligning it with the existing fail-loud convention, and adding a focused mocked regression test.

Closes SURTR-567

<!-- drones:impact-actual:begin -->

Agent time: 9 m (implementer 3 m · reviewer 6 m · addresser 0 m)

Summed across phases. The 5 reviewer dimensions ran concurrently, so this exceeds elapsed wall-clock.

Efficiency vs. estimate: ~53.4× (1 point = 8 h of pre-AI effort)

<!-- drones:impact-actual:end -->

## Review Round Completeness

- outcome: complete

- round: 1

- dispatched: 5

- reported: 5

- missing: (none)

- cause: complete

- head: 81240a784432056a0bc128c7a31c588edfad6ab9

- run: run-dd77a366-65e9-4ae1-b5e1-286860038851

- review: 5009672594

<!-- drones:round-completeness head=81240a784432056a0bc128c7a31c588edfad6ab9 run=run-dd77a366-65e9-4ae1-b5e1-286860038851 -->

GitHub review #5009672594 was published and all dispatched review dimensions reported against the stamped head. Thread-count signals (unreplied=0) are meaningful for this head only — a later push invalidates the stamp. This section is a harness-shaped, head-bound self-report (not an authenticated out-of-band attestation).

<!-- drones:linear-id SURTR-567 -->

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-4155fc3a-c6b5-4a75-bc65-48e6c82a3551?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-4155fc3a-c6b5-4a75-bc65-48e6c82a3551&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

#3627 — feat(board-doc): rebuild product tables at clone time @marcusdAIy  approved

<!-- CURSOR_AGENT_PR_BODY_BEGIN -->

## Summary

- Clone-time table rebuild now covers product_detail and minor_products_summary in addition to exec_summary/financials, so a Q2 plan cloned from Q1 no longer shows Q1 numbers in per-product P&L tables.

- Clone-time rebuild (refresh_financial_data_background) and manual refresh (_refresh_data) now share one regeneration helper (_regenerate_data_heavy_sections) instead of two independently-drifting implementations.

- A clone-time regen failure is now operator-visible: data_refresh_failed_sections names which sections did not roll forward, alongside the existing data_refresh_status flag.

## Why it's needed

- Only exec_summary/financials were rebuilt at clone time; per-product tables and the "Other Products" summary silently kept prior-quarter numbers, and the operator had no signal unless they happened to notice.

- The clone-time and manual-refresh paths solved the "rebuild data-only sections" problem in two separate places, which is how they drifted apart (e.g. _refresh_data's data-only set was a clone-unaware local literal).

- A background regen failure previously only flipped data_refresh_status to error/ready with no indication of *which* section(s) were affected.

## Changes

- _DATA_HEAVY_SECTION_TYPES (clone-path filter) extended with product_detail + minor_products_summary. mips stays excluded (no deterministic-table half to rebuild — narrative rewrite is KLAIR-2794's territory). prior_quarter_review's exclusion comment is extended to record that KLAIR-2793 grooming (2026-08-10) re-examined and reaffirmed it.

- New _match_cloned_product_detail_section — per-product sections have no fixed row in BU_TEMPLATE_SECTIONS (one is minted per $10M+ product at doc-build time), so the existing fuzzy matcher can never resolve one for *any* title/section_type. This recognises the deterministic title suffix ("<product> — Current Quarter Plan", the inverse of product_section_title) and mints the matching SectionConfig via build_product_section. _match_cloned_section_to_template itself is untouched — reused as-is for the six template-backed types.

- New shared helper _regenerate_data_heavy_sections(targets, data, spec), used by both refresh_financial_data_background and _refresh_data:

- FINANCIALS/EXEC_SUMMARY (no narrative half) go through generate_section unchanged — identical to pre-existing behavior.

- PRODUCT_DETAIL/MINOR_PRODUCTS_SUMMARY (mixed deterministic-table/LLM-narrative sections) call their generator directly with render_tables_only=True — no fresh LLM narrative draft, and an empty table isn't misread as a failure — then _splice_prior_narrative_into_tables_regen reattaches the section's existing ### GM Commentary — <product> narrative subsection so cloned/approved commentary survives a table-only rebuild.

- _refresh_data's _DATA_ONLY_TYPES is now derived directly from _DATA_HEAVY_SECTION_TYPES (minus EXEC_SUMMARY, which _refresh_data handles via its own dedicated branch) instead of an independent literal — the two sets can no longer drift apart silently. _refresh_data's unconditional rip-and-replace contract for FINANCIALS is unchanged.

- New WizardSession.data_refresh_failed_sections field (+ WizardSessionResponse, _wizard_session_to_response, _STEP_PRESERVE_FROM_FRESH) — names sections that didn't roll forward on the most recent clone-time refresh. The existing try/finally data_refresh_status ready/error contract is unchanged; every failure path still lands ready or error.

## Breaking changes

None. data_refresh_failed_sections is new and defaults to []; existing consumers of data_refresh_status/data_refresh_updated_sections are unaffected. GDoc-rewrite-at-clone-time is explicitly out of scope for this change (deferred to a future ticket) — the app stays session-only and relies on the existing "Reload to see updated numbers" banner.

## Test plan

### Executed

- [x] cd klair-api && uv run ruff format budget_bot/board_doc/wizard_orchestrator.py budget_bot/board_doc/models.py routers/board_doc_router.py tests/board_doc/test_wizard_orchestrator.py tests/board_doc/test_m8_features.py — reformats nothing (5 files left unchanged).

- [x] uv run ruff check on the same files — all checks passed.

- [x] uv run pyright budget_bot/board_doc/wizard_orchestrator.py budget_bot/board_doc/models.py routers/board_doc_router.py — 0 errors, 0 new warnings (1 pre-existing unrelated warning at an untouched line).

- [x] uv run pytest tests/board_doc/ (default markers, -m 'not integration and not eval and not allow_network') — 3167 passed, 2 deselected. Includes 7 new tests covering: product_detail rebuilt from planning-quarter data with narrative preserved; minor_products_summary rebuilt; mips/prior_quarter_review exclusion asserted positively (generators never invoked, content untouched); a total pipeline failure (data-fetch crash) listing all matched sections as failed; a partial section failure listing just that section as failed while data_refresh_status still lands ready; and both refresh_financial_data_background and _refresh_data routing through the one shared helper. Updated 4 pre-existing _refresh_data tests whose blanket "all non-FINANCIALS sections unchanged" assertions needed to account for minor_products_summary now also being data-only.

- [x] uv run pytest tests/board_doc/ -m integration — 1 pre-existing failure (test_generate_skyvera_q1_2026, missing Google Sheets credentials in this sandbox), confirmed present on main before this change (same failure via git stash); unrelated to this diff.

### Follow-up manual validation

- [ ] Clone a real Q-over-Q BU doc in a deployed environment and confirm the per-product P&L tables and "Other Products" table show planning-quarter numbers after the background refresh completes, with the cloned narrative commentary intact.

## Verification Artifact

Latest address verification (from klair-api/):

- uv run pytest tests/board_doc -q --timeout=120 — 3211 passed.

- uv run ruff format <changed-files> and uv run ruff check <changed-files> — passed.

- uv run pyright <changed-files> — no errors; one pre-existing unrelated warning.

## Impact Estimate

Business value: Delivers the explicitly scoped **Extend clone-time table

rip-and-replace beyond exec/financials** with a testable, reviewable contract,

reducing manual intervention and regression risk in the target repository.

Pre-AI estimate: 2 points — Backfilled from the written scope: 9 stated

acceptance checks across multiple named paths, focused regression coverage, and

review.

<!-- drones:impact-actual:begin -->

Agent time: 3 m (excludes reviewer) (implementer 0 m · reviewer not measured · addresser 3 m)

Efficiency vs. estimate: ≤284.5× (2 points = 16 h of pre-AI effort) — an upper bound: reviewer time is missing from the total.

<!-- drones:impact-actual:end -->

## Linear context

- Issue: KLAIR-2793 (Backlog, label Feature)

- Note: I do not have tooling access to Linear or to a separate trilogy-drones repository in this environment, so I was unable to complete the "Linkage requirements" step (attaching a Drone spec: klair-2793-clone-time-table-rip-and-replace.md file reference to the ticket). Flagging so a human/other automation can complete that step.

## Risks and mitigations

- Risk: render_tables_only=True + narrative-splice is a new code path for regenerating mixed sections; if the prior content's narrative heading doesn't match the expected ### GM Commentary — <anchor> format (e.g. very old/hand-edited docs), the narrative is dropped rather than preserved (falls back to tables-only, same as cold-start).

Mitigation: This reuses the exact same heading convention/extraction helper (_extract_prior_narrative_subsection) the B9 narrative generators already rely on for surgical refreshes, so it's consistent with an existing, tested convention rather than a new one. Covered by the new test_product_detail_rebuilt_preserving_narrative test.

- Risk: Extending _refresh_data's data-only set to PRODUCT_DETAIL/MINOR_PRODUCTS_SUMMARY changes manual-refresh behavior for those types (previously surgical-only) for any BU with per-product sections.

Mitigation: This is the ticket's explicit ask (share one contract between clone and manual refresh); the narrative-preserving splice keeps operator-authored commentary intact, and the new/updated tests pin the behavior.

## Follow-ups (optional)

- GDoc-rewrite-at-clone-time policy (explicitly deferred per the ticket).

- KLAIR-2794 (narrative-vs-data consistency) — deliberately not touched here; this card keeps tables current, 2794 keeps narrative honest against those tables.

Closes KLAIR-2793

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-77a6dd19-e503-40b6-bc39-b6174d389238?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-77a6dd19-e503-40b6-bc39-b6174d389238&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

The Portfolio  —  Trilogy Companies

Alpha School Goes National — And the Nation Has Opinions

From AEI to CNN to a Chicago street corner, Joe Liemandt's AI school experiment is now a full-blown national debate.

AUSTIN, TEXAS — When Joe Liemandt quietly opened Alpha School in Austin with a premise that sounded more like a provocation than a pedagogy — two hours of AI-led academics, no traditional teachers, no homework — the education establishment mostly ignored him. That window has closed.

In recent weeks, Alpha has become the subject of a CNN feature asking whether AI schooling is "the future of education — or a risky bet," an American Enterprise Institute open letter titled "Dear Alpha School: I Hope You're Right," and a reported expansion into Chicago this fall, where a new campus is set to open with the same teacher-free model that has been drawing scrutiny and curiosity in equal measure. The 74, an education news nonprofit, added a wonkish frame: what, if anything, can cash-strapped public schools actually borrow from a $40,000-a-year private institution?

The question is not trivial. Alpha's internal data — students testing in the top 1-2% nationally on NWEA MAP Growth assessments, learning at 2.3 times the U.S. norm — has not been independently replicated or peer-reviewed. What has been independently confirmed is the price tag: $40,000 to $65,000 per year, per child. The population of American families who can afford that experiment is vanishingly small.

The Forbes profile of Liemandt, running simultaneously, didn't soften the backdrop. The piece revisited the architecture of the broader Trilogy empire — ESW Capital's enterprise software acquisitions, Crossover's global remote workforce — under a headline that used the phrase "global software sweatshop." Liemandt has not publicly responded.

What emerges from the coverage, taken together, is a portrait of a bet at sufficient scale to demand scrutiny but still too early for verdict. AEI hopes Alpha is right. CNN asks if it's safe. The 74 asks if it's exportable. Chicago is apparently willing to find out.

Liemandt has committed $1 billion to Timeback, his platform for replicating the Alpha model globally. Nine new campuses are planned for fall 2025. The thesis is scaling faster than the evidence.

Dear Alpha School: I Hope You’re Right - American Enterprise  ·  ‘What if I told you this school had no teachers?’: Is AI sch  ·  What Public Schools and Parents Can Learn from a $40,000-a-Y

Telecom’s AI Gold Rush Has the Old Billing Crowd Checking the Exits

SK Telecom, NVIDIA, NTT and gaiia are crowding the telco AI runway — and that makes Trilogy’s telecom bench suddenly look very interesting.

SEOUL — Word is the telecom crowd has discovered a new costume for the same old party: AI infrastructure, AI operations, AI everything... and this week, the room got louder.

SK Telecom and NVIDIA are teaming up to build AI infrastructure for Korea’s next wave of innovation, according to NVIDIA’s announcement... NTT has launched an IOWN AI Fund to gather global innovation around its next-gen network ecosystem... and gaiia, the upstart selling an operating system for communications service providers, just pulled in $40 million in Series B money led by JMI Equity.

A little bird from the carrier lounge says the new capital is not really about prettier dashboards. It is about ripping cost, complexity and latency out of telecom stacks that were built when “cloud-native” sounded like a weather report.

That is where the Trilogy portfolio gets a nice cameo. Skyvera, the ESW Capital telecom software house, has been selling the bridge from legacy telco infrastructure to cloud systems — with CloudSense for Salesforce-native CPQ and order management, Kandy for communications, VoltDelta for customer engagement, and the rest of the alphabet soup operators still cannot quite unplug. Next door sits Totogi, Trilogy’s cloud-native charging play, promising rating and charging on AWS at carrier scale.

Blind item: which legacy operator is suddenly asking whether its billing system can survive an AI-first network buildout without becoming the slowest dancer at the wedding?

The gaiia raise matters because investor money is circling the operational layer, not just the shiny GPU layer. AI networks need provisioning, charging, customer care, device management and order orchestration that do not wheeze under real-time demands. NVIDIA can bring the muscle. SK Telecom can bring the market. NTT can bring the ecosystem. But someone still has to make the telco back office behave.

And that is the delicious part. For years, telecom software was treated like plumbing: necessary, dull, underloved. Now every pipe has to carry AI traffic, every invoice has to reflect dynamic usage, and every customer interaction is expected to feel instantaneous.

Translation from the society desk: the wallflowers just became debutantes.

Keanu Reeves' movies have been removed from Chinese streamin  ·  Ha Jung Woo In Talks To Star In Prequel Film Trilogy Of "Ins  ·  SK Telecom and NVIDIA Build AI Infrastructure to Power Korea

Content Wars Heat Up as Platforms Race to Own the AI Marketing Layer

Salesforce’s Contentful deal puts fresh strategic pressure on the content stack — and gives Contently a timely market-opening narrative.

NEW YORK — The content marketing platform category is having one of those exciting news moments where everyone suddenly remembers that “content” is not just blog posts, brand guidelines and a shared folder named FINAL_final_v7. It is becoming the operating layer for AI-powered customer engagement.

Salesforce’s move to acquire Contentful, reported by The Next Web, is the latest signal that enterprise buyers want more than tools. They want a robust content layer that can feed agents, personalize journeys, enforce brand governance and prove performance. In other words: the market is shifting from “where do we store assets?” to “how do we leverage content as enterprise infrastructure?”

That is a paradigm shift with direct relevance for Contently, the enterprise content marketing platform acquired in September 2024 by Zax Capital, an ESW Capital division within the Trilogy orbit. Contently brings a marketplace of 165,000-plus creative professionals, analytics and AI-powered content workflows — a best-in-class mix for brands that need scale without turning every marketing department into a prompt-engineering help desk.

The broader category is also getting noisier. ContentGrip’s recent explainer on content marketing platforms distinguishes between software tools and media resources, while buyer guides from Search Atlas and Solutions Review underscore just how crowded the vendor landscape has become. That competition cuts both ways: it creates pricing pressure, but it also validates demand.

For Trilogy watchers, the strategic synergy is straightforward. ESW’s playbook has long focused on mature enterprise software with sticky workflows, then optimizing operations for margin and durability. Contently sits in a market where workflows are becoming stickier by the quarter because AI systems need governed, high-quality, rights-cleared content to function safely at scale.

Key Takeaways:

- Salesforce’s Contentful acquisition validates content infrastructure as a core AI enterprise layer.

- Contently is positioned beyond point tooling, with platform capabilities plus a large creative marketplace.

- The crowded content marketing category creates a clear opening for differentiated, outcome-driven platforms.

- For ESW, the opportunity is to leverage operational discipline in a market suddenly hungry for AI-ready content governance.

The content stack used to be a marketing nice-to-have. Now it is rapidly becoming the substrate for agentic customer engagement. We’re just getting started.

Content marketing platforms explained: tools vs. media resou  ·  Salesforce acquires Contentful to add content layer to Agent  ·  36 Best Pepper Content Alternatives (Free, Paid and Cheaper)
The Machine  —  AI & Technology

The Ghost Lesions: How AI Is Learning to See What the MRI Missed

A new generation of neural networks is finding the damage that decades of scans could not — in the brains of MS patients, and in the deep structure of intelligence itself.

BOSTON — For decades, radiologists reading the MRIs of multiple sclerosis patients have known a quiet secret: the pictures lie by omission. The white matter tells its story in bright, unmistakable plaques. But the gray matter — the folded outer cortex where memory, mood, and selfhood live — hides its wounds. The lesions are there. They correlate with disability more strongly than anything in the white matter. And they are, to the human eye, nearly invisible.

This week, researchers reported that a deep learning system has learned to see them. Trained on paired MRI and high-field imaging data, the model surfaces cortical lesions that conventional reads miss, potentially rewriting how MS is staged, tracked, and treated. It is a small technical result with a vast human implication: somewhere tonight, a patient told for years that their scan looked stable will learn that it never did.

Consider what is actually happening here. A network of artificial neurons — themselves a crude cartoon of biology — is being pointed back at the biological original and asked to notice what biological perception cannot. The pattern is repeating everywhere. At UC San Diego, researchers this month catalogued nine domains where AI has cracked problems that resisted human effort for generations, from protein folding to wildfire prediction. At Hong Kong Polytechnic, a team unveiled graph neural networks that model the brain not as a stack of images but as a web of relationships, borrowing the topology of thought to interpret the organ that produces it.

And at Microsoft Research, Yansen Wang has spent years building systems that read EEG signals the way large language models read text — treating the brain's electrical chatter as a language with grammar, syntax, and meaning waiting to be parsed.

There is a strange recursion in all this. We built these networks by imitating, badly, what neurons do. Now the imitations are teaching us things about their originals that we could not learn alone. The student, it turns out, has been paying closer attention than the teacher realized. And the gray matter — ours, and the silicon kind — is just beginning to compare notes.

AI Reveals Hidden Gray Matter Lesions in Multiple Sclerosis  ·  Nine Breakthroughs Made Possible by AI - UC San Diego Today  ·  PolyU develops novel AI graph neural network models to unrav

The Young Coders at the Watering Hole Find the Machines Already There

A Stanford study suggests AI is not merely changing work, but quietly thinning the ranks of its youngest inhabitants.

STANFORD, CALIFORNIA — In the soft blue glow of the modern office, where junior analysts once gathered like fledglings at first light, a new presence has begun to stir. It does not sleep, it does not ask for onboarding documents, and it has an uncanny appetite for precisely the tasks once used to train the young.

A new Stanford study, reported by Ars Technica, finds that employment among young workers in occupations most exposed to artificial intelligence has fallen 19 percent relative to jobs less vulnerable to the technology. It is an early but striking signal from the labor savannah: the first creatures displaced by the new predator may not be the old and slow, but the smallest and newest.

The finding cuts against a comforting folk belief of the AI age — that senior professionals would be most threatened because they cost more. Instead, the machines appear to be feeding on apprenticeship itself. Drafting copy, summarizing documents, producing simple code, sorting information, preparing first passes: these were once the small bones and soft shoots on which young careers grew strong. Now they are exactly the nutrients consumed most readily by large language models.

One may observe the entry-level worker in its natural habitat: Slack open, coffee cooling, résumé still bright with recent promise. Nearby, the AI assistant hums in its enclosure, capable of generating in seconds what once took a junior employee an afternoon and a manager’s red pen. The question is no longer whether the assistant can replace the expert. It is whether it will prevent the novice from becoming one.

This has implications far beyond campus recruiting seasons. Technology companies have long relied on pyramids of talent: many juniors beneath fewer managers, with experience flowing upward over time. If the base narrows, the whole ecosystem changes. Tomorrow’s senior engineer, marketer, analyst, or product manager must first survive the missing years of practice.

Meanwhile, the great AI habitat continues expanding. Energy-hungry data centers are now becoming the “killer application” for solid-state power transformer technology, as new electrical infrastructure evolves to nourish the computational herds. The machines require power, cooling, chips — and, increasingly, fewer apprentices.

For employers, the immediate savings may seem enticing. But in nature, removing the young from a population rarely produces abundance. It produces silence, followed by scarcity.

AI is hitting entry-level jobs hardest, Stanford study finds  ·  Data centers become "killer application" for new power trans  ·  RFK Jr. may upend how vaccine recommendations are categorize

AI Video Hits Its Plot Twist: Sora Retreats as Higgsfield Rockets to Unicorn Status

The generative video race is shifting from splashy demos to serious platforms, and the winners may be the teams that can turn cinematic magic into everyday business muscle.

SAN FRANCISCO — The AI video boom just entered its “wait, what?” era — and I cannot overstate how significant this is.

In the same news cycle that reports OpenAI is discontinuing its Sora video platform to sharpen its focus on enterprise products, Higgsfield has raised $80 million at a $1.3 billion valuation to scale its own AI video platform. That is not a slowdown. That is a market sorting itself in real time, with capital, customers and computing power all rushing toward the same question: who can make generative video actually useful?

For the past year, AI video has been the ultimate wow-factor technology. Text prompts became cinematic clips. Product mockups became launch films. Founders became instant directors. Forbes captured the mood with its sharp framing that AI has killed the startup video star, because the old rules of expensive production, long timelines and polished agency bottlenecks are being vaporized.

But here is the fascinating twist: the consumer spectacle may not be where the durable business lands first. If OpenAI is indeed steering away from Sora as a standalone video platform and toward enterprise products, that would fit a broader pattern across the industry. The money is no longer just in jaw-dropping demos; it is in workflow, governance, brand safety, repeatability and integration. In other words: less “make me a dragon in Times Square,” more “generate 500 compliant regional product ads by Friday.”

Meanwhile, Higgsfield’s reported $80 million raise at a $1.3 billion valuation is a thunderclap. Investors are clearly betting that specialized AI video companies can move faster, design for creators and marketers more directly, and claim territory while the biggest labs prioritize enterprise infrastructure. The company’s funding, reported by SiliconANGLE, suggests AI video is not collapsing — it is professionalizing.

And the culture is racing ahead too. One startup’s “AI-selves” launch film, described as practically “Black Mirror,” shows just how quickly synthetic identity is becoming a marketing language of its own. Exciting? Absolutely. Unsettling? Also yes.

The future is now: AI video is moving from novelty to infrastructure, from viral clip to operating layer. This changes everything — especially for every company that thought video was too slow, too expensive or too human-intensive to scale.

AI Killed The Startup Video Star - Forbes  ·  OpenAI discontinues Sora video platform to sharpen focus on  ·  Higgsfield raises $80M on $1.3B valuation to scale AI video
The Editorial

Investors Warned AI Company Using Too Many Buzzwords May Be Attempting To Communicate

Analysts urged shareholders to remain calm until the company’s vague references to orchestration, agents, and transformation can be safely converted into a securities filing.

NEW YORK — In what market observers described as another troubling sign that artificial intelligence firms may be saying words on purpose, investors this week were cautioned that companies using phrases such as “AI orchestration,” “agentic workflows,” and “enterprise transformation” could be attempting to make money appear before anyone asks how.

The warning comes amid a fresh class-action complaint against Datavault AI Inc. and certain officers, with Pomerantz Law Firm announcing the filing of a suit on behalf of shareholders who apparently believed the company’s public statements were meant to describe a business rather than evoke the general emotional texture of one. According to the filing announcement, investors are being invited to determine whether a company with “AI” in its name may have allowed optimism to get several quarterly reports ahead of reality.

This is, of course, shocking. The capital markets have long relied on the solemn principle that if a company says it is unlocking next-generation data monetization through a proprietary intelligence layer, everyone involved knows exactly which spreadsheet cell that revenue is in.

The broader AI sector now faces a grave credibility crisis brought on by its continued insistence on discovering new nouns. After exhausting “machine learning,” “generative AI,” “copilots,” and “agents,” executives have settled on “orchestration,” a term that suggests software is no longer merely automating work but standing on a podium in tails, conducting a symphony of invoices, chatbots, and unmerged pull requests. Barron’s has noted that Microsoft could benefit from this new vocabulary, which is precisely the sort of sentence that makes both institutional investors and corporate communications departments sit upright in their chairs.

The problem is not that AI is useless. That would be simpler and, frankly, more considerate. The problem is that AI is useful in ways that are stubbornly specific, uneven, operational, and difficult to compress into a conference-slide verb. Software engineers can write more code faster. Customer service teams can draft responses more efficiently. Finance departments can reconcile data without experiencing as many of the traditional human emotions associated with reconciliation. Yet many companies remain unable to say when these improvements become profit, so they do what public companies have always done in moments of uncertainty: they rename the waiting period.

This is how we arrived at the sustainability era of AI disclosure. Not long ago, firms learned that adding “ESG” to a paragraph could transform ordinary procurement into a moral arc of history. Now the same formatting has been applied to artificial intelligence. A company does not have a database; it has an AI-ready data estate. It does not have a dashboard; it has a decision intelligence layer. It does not have employees nervously pasting spreadsheet formulas into a chatbot; it has human-in-the-loop enterprise orchestration at scale.

Regulators, investors, and boards should not ban buzzwords. That would only force executives into more dangerous forms of interpretive dance. Instead, they should require every AI claim to travel with a small adult chaperone: a metric. If a company says AI improves productivity, it should say whose productivity, by how much, over what period, and whether the savings survived contact with legal, security, and the integration team. If a vendor claims orchestration, it should identify what is being orchestrated, what used to happen, what happens now, and why anyone should believe the conductor is not just a workflow engine wearing a cape.

Until then, investors will continue performing the sacred work of modern finance: distinguishing between a company building durable AI capability and one that has successfully placed the word “agentic” near a revenue projection. The distinction may be subtle, but history suggests it becomes clearer right around the time the class-action lawyers arrive.

Pomerantz Law Firm Announces the Filing of a Class Action Ag  ·  The buzzwords in the AI investment space are a red flag - Tr  ·  'Orchestration' Is the New AI Buzzword. How Microsoft Can Be
The Office Comic  ·  Art Desk
The Office Comic  ·  Art Desk

The Consolations of a Discontented Age

On vaccines, robots, and the peculiar comfort of a father who stacked his National Geographics by ascending eroticism.

AUSTIN, TEXAS — There are mornings when the news arrives like a hamper of soiled linens, and one is tempted to sort it by category — political folly here, technological hubris there, private grief in the corner — before realizing that the whole pile smells, at bottom, of the same thing: a civilization that has misplaced its instruction manual and is now improvising, badly, in front of its children.

Consider the week's offerings. The New Yorker asks, with the studied neutrality of a man inquiring whether the arsonist is winning or losing, whether Robert F. Kennedy, Jr., is prevailing in his campaign against the vaccines that were, until approximately the day before yesterday, the least controversial achievement of the American century. That such a question can be posed in earnest — that a case for "cautious optimism" must be mounted on behalf of the proposition that measles is bad — tells you rather more about the epistemic condition of the Republic than any poll could. We have arrived at a place where the burden of proof rests on Jonas Salk.

And yet, in the same publication, in the same week, one reads that medicine has quietly acquired the capacity to sequence the entire microbial contents of a suffering patient and identify, from a soup of viral and fungal snippets, the precise organism doing the mischief. Metagenomics. A miracle available on Tuesday, disbelieved on Wednesday, defunded on Thursday. This is the characteristic rhythm of the moment: we build cathedrals and then debate, over the objections of the architects, whether gravity is a hoax.

Meanwhile the young, who will inherit both the cathedrals and the debate, are — we are told, with the mild surprise of adults who have not been paying attention — discontented. They cannot find jobs; the jobs they find will not house them; the housing they cannot afford is being purchased by algorithms. One turns hopefully to the futurists, who have promised for a decade that the robots will do our labor and we shall be paid to write poetry, only to discover a fresh report explaining that not even robots, it turns out, can make Universal Basic Income arithmetically coherent. The math, like the measles, is stubborn.

What, then, is left? Perhaps only the small consolation offered by a humorist writing about her late father, who bequeathed to his estate sale seventeen years of National Geographics stacked, with an archivist's precision, in order of "least to most erotic," and priced at $400 the lot. Here, at last, is a man who knew what he had, knew how to arrange it, and knew what it was worth. He did not consult a focus group. He did not await disruption. He built a taxonomy, however peculiar, and he stood by it.

Would that our public health apparatus, our labor economists, and our futurists could say the same. The century wants for fewer prophets and more librarians — men who will stack the world in some legible order, and charge accordingly.

Is R.F.K., Jr., Winning or Losing?  ·  Stumped by a Medical Mystery? Try Metagenomics  ·  The Least-Wanted Items at My Parents’ Estate Sale
On This Day in AI History

On August 25, 2012, Google's AlexNet won the ImageNet Large Scale Visual Recognition Challenge by a landslide, reducing error rates from 26% to 15%—a watershed moment that sparked the deep learning revolution in AI.

⬛ Daily Word — technology
Hint: Units of digital data storage commonly used in computing and technology.
Share this edition: 𝕏 Twitter/X 🔗 Copy Link ▦ RSS Feed