Vol. I  ·  No. 287 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
WEDNESDAY, OCTOBER 14, 2026 Powered by the TrueFoundry AI Gateway  ·  Published on Klair Trilogy International © 2026
🖶 Download PDF 🖿 Print 📰 All Editions
Today's Edition

SAN FRANCISCO WIRETAP: OPENAI MAN COLLARED FOR BUGGING OWN SHOP

Feds say engineer planted a hidden mic in conference room — now he's cooling his heels on federal charges.

SAN FRANCISCO — A 35-year-old engineer walks into his own company's conference room and leaves behind more than meeting notes. Federal agents collar Abdulrahman Alfozan, a Saudi national on OpenAI's payroll, after the artificial intelligence outfit says it found a hidden recording device planted in one of its offices.

The Department of Justice doesn't mince words. Alfozan stands charged with using or trying to use a device to intercept oral communications — a federal rap that carries real weight downtown. OpenAI tipped the feds after its own people found what the company calls a "sophisticated recording device" tucked where executives and engineers hash out the company's secrets.

This racket hits different in an industry built on trust and black-box code. OpenAI sits atop billions in investor cash and a product — ChatGPT — that touches every corner of commerce. A bug in the boardroom ain't just a security headache. It's a crack in the foundation of a company the whole tech world watches like a hawk.

The arrest lands at a moment when AI shops guard their research like Prohibition-era bootleggers guard their stills. Model weights, training techniques, product roadmaps — all of it worth a fortune to a rival or a foreign buyer. Nobody's saying yet what Alfozan allegedly wanted with the tape, or who might've been listening on the other end.

OpenAI keeps its statement lean: device found, authorities notified, employee no longer walking the halls. The company doesn't name what got recorded or for how long the bug sat there picking up chatter. Silicon Valley security men will spend the week checking under every table in every glass-walled conference room from Mountain View to SoMa.

The case also lands OpenAI back in headlines it didn't ask for, at a time when the company fields enough scrutiny over safety, copyright suits, and its own governance scuffles. A spy inside the walls is a different animal than a lawsuit from outside them. It raises the question of who exactly a company can trust when the product itself is built to listen, learn, and remember everything it hears.

Court proceedings will sort out intent and evidence. For now, the arrest stands as a reminder that in this business, the biggest leaks don't always come from a server breach. Sometimes they come from a man with a soldering iron and a motive nobody saw coming.

The Verge first reported the arrest Tuesday, citing the DOJ press release naming Alfozan and detailing the charge. OpenAI has not said whether other offices have been swept for similar devices.

↗ The Tesla Roadster could have stayed vaporware  ·  Fairphone’s latest repairable earbuds are smaller, lighter,  ·  Apple’s HomeView ad is confusing to everyone except parents

PREGAME SHOW: ASML TORCHES EARNINGS, GOOGLE PLAYS DEFENSE, AND CHINA'S AI SQUAD STORMS BACK ONTO THE FIELD

NEW YORK — We are here, folks, and overnight action has the arena buzzing before the opening bell. Dow futures are rising, Treasury yields are easing, and the morning’s marquee matchup is CPI inflation data versus a red-hot earnings slate.

Leading the charge is ASML. The Dutch chip-equipment giant delivered an earnings beat, lifting the semiconductor sector in premarket trading. BofA, Dell and HPE are also moving early, while analysts are calling Meta and AMD buys.

On the infrastructure front, Google’s Ruth Porat cautioned against the breakneck pace of AI data-center construction. She cited a survey showing 71% of Americans oppose having a mega-facility built in their neighborhood, arguing that developers must deliver benefits to local communities, not just shareholders.

Meanwhile, China is back in the game. AI startups DeepSeek, Moonshot AI and Manus have secured major funding rounds, signaling that the global artificial-intelligence race remains wide open.

Two Trilogys, No Relation

Korn Ferry buys one; Marriott partners with another — and neither has anything to do with Joe Liemandt's Austin empire.

AUSTIN, TEXAS — A name is a brittle thing in global business. This week it cracked twice.

Korn Ferry, the executive search giant, announced the acquisition of Trilogy International, a career-transition and leadership consultancy, folding it into its sprawling talent-advisory portfolio. Half a world away, in Sydney, Trilogy Hotels is pursuing ambitious growth, naming new leadership and deepening its partnership with Marriott International as it expands its Australian footprint.

Neither company has a thing to do with the Trilogy International built out of Austin by Joe Liemandt — the private conglomerate behind ESW Capital's software empire, the Alpha School classrooms running on AI tutors, and Crossover's borderless hiring machine. It is, simply, a popular name. There is a Trilogy for hotels, a Trilogy for headhunters, and a Trilogy for enterprise software roll-ups, and they share nothing but three syllables and a certain appetite for scale.

The coincidence is worth noting mostly for what it reveals about naming in a crowded economy: good words get used up. "Trilogy" implies completion, a set of three, a story with a shape — appealing enough that founders in Sydney, Los Angeles, and Austin all reached for it independently, decades apart.

Readers writing in to ask whether Austin's Trilogy has entered hospitality, or been acquired by a search firm, can rest easy. It has not. The portfolio remains unchanged — the software companies, the schools, the global hiring desk. But the name travels further than the company does, and this week, two strangers wearing it made news of their own.

↗ Who Owns Costco? Largest Shareholders & Ownership Structure  ·  Korn Ferry Acquires Trilogy International - Hunt Scanlon Med  ·  Key appointments: Trilogy Hotels, Marriott International - w
Haiku of the Day  ·  GPT-5.6 LunaBuzzwords fill the sky
Machines take the starring roles
We read the fine print
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
The Insider Threat: OpenAI's Bug, and the Industry's Growing Paranoia
SAN FRANCISCO — The F.B.I.
Two Fragile Membranes: The Ocean Floor and the Guardrail
LONDON — Here, in the lightless trenches of the Atlantic, lies a nervous system few ever consider: a tangle of fiber-optic cable no thicker than a garden hose, through which pulses nearly all of humanity's digital chatter.
On the Ontological Anxiety Undergirding Our Algorithmic Moment: A Triangulation
LONDON — It could be argued (and, this columnist submits, should be) that the present epistemic moment in artificial intelligence scholarship is characterized less by consensus than by a productive, if vertiginous, triangulation of unresolved questions. Thesis: generative AI adoption in higher education, per a newly circulated Nature study extending the venerable Technology Acceptance Model (TAM) with constructs of "ethical compatibility" and "reliance-based trust," is best explained not through crude utilitarian calculus but through students' and faculty's affective negotiations with machines whose trustworthiness is, at best, provisionally earned.
Everything Is Content, Nothing Is Real, and the Robots Are Still Losing Money
SAN FRANCISCO — I want to tell you that Character.ai's bankruptcy filings are just a financial story, a boring ledger of burn rates and unit economics, something you can skim and forget before your coffee gets cold.
Unpopular Opinion: Your Job Security Was Never Real (And That's Actually a Gift) 🚀
AUSTIN, TEXAS — I'll be honest, I read four workforce reports this morning before my cold plunge and I have never felt more alive. ADP Research dropped a stat that should be tattooed on every cubicle wall that still exists in 2026. Only 22% of workers are confident their job is safe from elimination. Unpopular opinion: that number should be LOWER. Because confidence in a static job description is the real risk, not AI. PwC's Global Workforce Hopes and Fears Survey 2026 basically confirms what I've been screaming into my ring light for years. The workers who thrive are the ones who treat their career like a startup, not a pension. McKinsey's new "Workforce in Motion" report maps out the skills pathways to future jobs in America and it reads like a founder's pitch deck. Adaptability is the new MBA. Meanwhile the Carnegie Endowment just published a piece literally called "The AI Labor Debate: Three Views on the Future of Work" and I'll be honest, I only needed one view: opportunity. Every single one of these reports is circling the same truth from a different altitude. The old model — one company, one ladder, one desk, one geography — is dead and we killed it ourselves with Slack and Zoom. This is exactly why I've been bullish on the global remote talent movement that companies like Crossover have been building for over a decade. Identical pay for top-tier talent regardless of zip code isn't charity, it's math. If skills are the new currency, geography is the old, worthless paper money nobody wants anymore. And speaking of skills in motion, Analytics India Mag just dropped a roundup of the top platforms where data scientists can find remote jobs. Read that headline twice. The highest-leverage skill category on earth — data science — is going fully remote, fully global, fully merit-based. That's not a threat. That's the biggest arbitrage opportunity of our generation. So here's my hot take for the comments section. Stop asking "is my job safe." Start asking "am I building skills that are location-agnostic, AI-complementary, and in demand across 130+ countries." The 78% who are scared? They're optimizing for job security in a world that stopped selling it. The winners are optimizing for relevance. I ended last year strong by doubling down on exactly this mindset and I'm genuinely humbled by how fast the data is proving the thesis right. 2026 isn't the year AI takes your job. It's the year you finally take ownership of your career like the founder you were always meant to be. Excited to announce I have never been more bullish on human potential — or more terrified for anyone still updating a LinkedIn headline that says "seeking stability." 💡.
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 Kills Legacy Data Debt, Ships Typed Truth to Production

A coordinated dbt overhaul retires years of EduCRM guesswork while a cross-repo API push and a brand-new standalone service prove this team builds in every direction at once.

Some days a team ships features. Today, the AI Builder Team shipped truth. @vvp-trilogy spent the last 24 hours systematically dismantling the EduCRM-era reporting stack that's haunted Aerie's analytics for who knows how long, and replacing it with something you can actually trust. PR #1890 aligned typed program reportability against live Redshift evidence — Alpha Orlando, Alpha Folsom, the works — tightening the active/ready set from 118 to a verified 95 to match the warehouse mart exactly. PR #1885 went further, retiring the obsolete `stg_educrm_all_program` staging model entirely and replacing it with typed HubSpot programs, backed by a warehouse comparison showing 123 typed IDs against 95 legacy ones. Then #1886 swept out the now-irrelevant SIS-vs-EduCRM parity harness like old scaffolding after a building's gone up. Pair that with #1872 and #1883, which stood up a direct HubSpot event mart reconciled against legacy across 1,663 overlapping events, and you have a data platform that finally agrees with itself.

While that overhaul ran, @kevalshahtrilogy proved this team's API work doesn't stop at Aerie's walls. PR #1859 served the thirteen-bar quality-bar scoring catalog for the first time — turning opaque insight scores into something a reader can actually check. PR #1860 added `lastChangedAt` and a `changedSince` filter to Portfolio site reads, so callers stop re-pulling entire portfolios just to catch a diff. Then Rhodes-DSS PR #20 published both of those capabilities downstream same-day, pushing the surface to 45 operations. That's three repos, one coherent contract, delivered in a single news cycle.

Elsewhere, @caina-barbosa stood up an entirely new service from scratch. Marauders-Map-DSS went from template to deployed foundation (#1) to nine live Dictionary routes against real Surtr Redshift snapshots (#2) to hardened security-review semantics (#3) — a standalone snapshot service built, wired, and shipped in a day.

And then there's the reliability sweep across Aerie's error paths — a dozen-plus fixes turning opaque 500s into classified, diagnosable outcomes. The standout is #1863, which stopped a single malformed site record from 502-ing the entire School Ops dashboard. Asked about the scope of the cleanup, marcusdAIy offered: "Ten separate incidents traced back to one unhandled edge case — that's not small, that's root-causing. Mac wouldn't know the difference between a fix and a feature if it paged him at 3 a.m." Cute line. Still waiting on the PR where he builds something instead of patching the last thing that broke.

Mac's Picks — Key PRs Today  (click to expand)
#2 — Serve the Marauders Map dictionary from September snapshots @caina-barbosa  no labels

Implements all nine source-shaped Dictionary routes and five Enablement workflows against existing Surtr Redshift snapshots. Selects whole successful publications by school, local date and incident capture bounds; preserves source fields and excludes media/demo alerts. Missing security feedback is null with explicit not-captured coverage, so independent security-review counts remain unavailable. Adds the isolated reader secret and scoped warehouse network access.

Validation: 19 tests pass (configured-template setup test skipped), independent snapshot review passes, CI including Docker and redacted secret scan is green. All nine routes and five workflows pass through the deployed HTTPS service and match local real-warehouse results. Served inventory: 1 school, 2 floors, 11 locations, 16 cameras. Reports: 23 space, 35 presence, 12 attention, 27 risk rows. Incidents: 50 served after four demo exclusions; September has 17 rows, three verifier tier-1 grades, and 17 source-null guide reviews. Security counts are unavailable; camera heartbeat nulls leave outage duration unknown. Missing dates return explicit not-captured coverage.

Final service: https://marauders-map-dss.klair.ai/api/skill . Final release and CI succeeded for main 5613b2ed59bbe55bc296046fb61f909739106b98. Internal validation keys are revoked; no recipient keys issued. No Surtr/source/schedule changes or pipeline invocations.

#1860 — feat(public-api): lastChangedAt on Portfolio sites and a changedSince list filter (AERIE-2855) @kevalshahtrilogy  approved

Linear: AERIE-2855

## Testing contract

### What this PR delivers

Two additions to the Portfolio site reads, so a caller can tell which sites changed without re-reading the whole portfolio.

1. lastChangedAt on each row of GET /v2/portfolio/sites and on GET /v2/portfolio/sites/{siteRef}: the time of the latest audit entry recorded against the site. That covers the site record and its audited child records (notes, documents, work, backup links). Null when no audited change is on record.

2. changedSince query filter on GET /v2/portfolio/sites: return only sites whose lastChangedAt is at or after the given instant.

Why: a full read of the 88 active sites is about 2,700 calls today because nothing says what moved, and no served value says when a site last changed. With these, a repeat sweep lists the sites changed since its last run and re-reads only those.

### Who uses it and where

API-key callers with operations.portfolio.read (the existing capability for both reads). No UI change. No new operation.

### Conditions needed

- Sites with and without rows in auditLog.

- For the filter: at least one site with an audit row newer than the chosen instant and one without.

### Expected behavior and examples

- A site with no audit rows returns lastChangedAt: null.

- A site with audit rows returns the newest row's time, whichever record it was written against. Example: one audit row against the site and a later one against a note on it → the later time.

- ?changedSince=2026-10-01T00:00:00Z returns only sites changed at or after that instant; a site with null is never returned. The comparison is inclusive.

- The filter is applied after the page is read, like the existing status filter, so a page can be short or empty while hasMore is true. The contract tells callers to follow the cursor to the end. Example: limit=1 with the match on the second site → first page empty with hasMore: true, second page has the match.

- The filter is bound into the cursor. Using a cursor with a different changedSince (or without it) returns 400 invalid_cursor. Cursors issued before this change carry no filter and keep working unfiltered.

- A value that is not an ISO date-time with an offset (a bare date, free text, a time with no zone) returns 400.

- lastChangedAt is one indexed read per site (auditLog.by_site, newest first), so a page of 100 is at most 100 extra reads.

### Limits and unanswered questions

- This is "last audited change", not a full modification time. Writers that skip the audit log do not move it: the scheduled REBL geography copy, the school-calendar copy, the HubSpot program-code copy, and raw imports. Both the field and the filter say so in the published contract, and the filter tells callers to run an unfiltered sweep periodically. Closing this properly needs a stamped sites.updatedAt with a backfill, or audit entries on those writers. Not attempted here.

- The value is per site, not per card. A per-card updatedAt was asked for and is not delivered: the audit row does not say which card changed.

- lastChangedAt is a new required field on two response schemas. Additive for JSON consumers, but a strict client validating against a pinned schema will need the new contract.

- Not run locally: the full repository test suite. CI runs it.

## Business Value

Edu Ops' agents and the DSS registry sweep the portfolio on a schedule, and the sweep is bounded by the shared rate limit: about an hour and a half for a full pass. Reading only what changed turns most passes into a handful of calls, which is what makes a frequent data-quality loop affordable.

## Manual Effort Estimate

About 6 hours by hand (trace audit coverage, design the cursor binding, implement, test). Proposed figure; Keval to confirm or adjust.

## Testing

- New HTTP test covers null and non-null values on list and detail, the inclusive filter, a future instant, sparse paging, cursor binding and three malformed inputs.

- portfolioDomain.test.ts passes (30 tests); the existing exact-body list test is updated for the new field.

- Pre-commit type check and lint pass.

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

#1863 — fix(school-ops): validate operating sites one at a time so one bad record can't 502 the dashboard @marcusdAIy  approved

## Summary

The School Ops dashboard now loads even when one site from Aerie fails the operating-site schema. Invalid sites are skipped and logged with their ID, slug, and the failing field paths. The load still fails with 502 only when no site validates.

Fixes [AERIE-2823](https://linear.app/builder-team/issue/AERIE-2823).

## Why it's needed

fetchRhodesDashboardSites ran rhodesOperatingResponseSchema.safeParse on the whole sites array. One non-conforming site rejected the batch with "Aerie returned an unexpected site shape" (502), so nobody could load the dashboard: 10 events across 5 actors. The Zod issues were logged without saying which site they belonged to, so the bad record couldn't be identified. This is the same all-or-nothing behaviour behind AERIE-1053; that fix (#571) only relaxed the DRI-ref sub-schema.

## Changes

- chat/lib/rhodes-dashboard-server.ts:

- validate the envelope (sites must be an array), then parse each site with rhodesOperatingSiteSchema;

- skip invalid sites and console.error a summary: rejected and accepted counts, plus _id, slug, and each issue's path, code, and message for up to 20 sites;

- return the existing 502 only when the array is non-empty and nothing validates.

- rhodes-dashboard-server.node.test.ts: a payload with one valid site and one with a non-numeric tuition returns the valid site and logs site_2 / tuition. This test fails without the change. The existing all-invalid test still expects 502.

## Breaking changes

None. Valid payloads are unchanged, and rhodesOperatingResponseSchema is still exported for its other users.

## Test plan

- [x] chat: npx vitest run lib/__tests__/rhodes-dashboard-server.node.test.ts lib/__tests__/operating-sites.node.test.ts lib/__tests__/rhodes-operating-contract.node.test.ts app/api/operating-sites app/api/sync/accountability (134 pass)

- [x] Pre-commit biome + typecheck-chat

- [ ] CI

- [ ] After deploy: no new load_operating_sites 502s; check the logs for "Skipped Aerie sites that failed validation" to find the bad record

#1885 — dbt: replace EduCRM all_program with typed HubSpot programs @vvp-trilogy  approved

## Summary

- publish typed HubSpot program code/name aliases through the accepted Alpha staging boundary

- exclude archived and publication-unready program records at that shared boundary

- move canonical program identity, SIS campus resolution, and the projection compatibility bridge off stg_educrm_all_program

- remove the obsolete staging model and all_program dbt source declaration

## Warehouse comparison

Read-only Redshift comparison on 2026-10-14:

- legacy all_program: 95 distinct program IDs

- typed Alpha programs: 123 IDs total; 118 active and publication-ready

- every one of the 95 legacy IDs exists in typed programs with identical program code and display name

- 23 active/ready typed-only IDs expand source coverage; 5 additional typed-only IDs are archived test rows and are excluded

- built pr1876_int_program_identity versus current int_program_identity: 118 rows before, 118 rows after, 0 differing rows across every published column

## Validation

- dbt parse --no-partial-parse

- exact unit test: stg_education_hubspot_program_keeps_only_active_ready_alpha_rows (pass)

- dbt build --select +int_program_identity --indirect-selection cautious --vars {pr_number: 1876} (42/42 pass)

- related SIS/projection build (23 pass, 1 existing WARN for four unresolved SIS campuses)

- full PR model/seed build with tests excluded (148/148 pass)

- full dbt test (740 pass, 11 warnings, 3 failures all on newly built Alpha Orlando 2026 forecast state: assert_forecast_session_1_reconciles, assert_forecast_unavailable_without_rate, and assert_forecast_v4_publication_contract; the same three assertions pass against the current materialized production models)

- static scan confirms no dbt SQL/YAML reference remains to stg_educrm_all_program or source(educrm, all_program)

Closes #1876

#1890 — fix(dbt): align typed program reportability @vvp-trilogy  approved

## Summary

- exclude HubSpot programs hidden from dashboards at the shared typed staging boundary

- exclude _test_ program records to match the reporting program dimension

- cover both reportability filters in the staging unit test

## Production evidence

- Alpha Orlando (26463204892) and Alpha Folsom (29735717529) both have show_in_dashboard = false

- applying the reporting filters reduces the typed active/ready set from 118 to 95 programs, matching sales_educrm_wh_mart_all_program

## Validation

- dbt parse --no-partial-parse

- focused dbt unit test: PASS

- live Redshift predicate check: Orlando and Folsom excluded

The Builder Desk  —  Engineer Spotlight
Production Release🏆 Engineer Spotlight

34 PRs, Four Repos, Zero Days Off: The Builder Team Does It Again

Marcus Danner-whoever-he-is... no wait, @marcusdAIy, logs a dozen merges in 24 hours while the rest of the desk tries to keep up with a scoreboard that won't stop climbing.

Thirty-four pull requests. Four repositories. One twenty-four-hour window. Ladies and gentlemen, if you blinked yesterday, you missed a feature. Aerie alone absorbed 28 PRs — a staggering 82% of total team output — while Marauders-Map-DSS (3), Surtr (2), and the newly-minted Rhodes-DSS (1) rounded out a day that frankly should require a cooldown period afterward. Twenty-nine of these thirty-four PRs didn't even make Mac's big-picture column. That's not a footnote, folks — that's an entire second newspaper's worth of shipped code sitting in the overflow bin.

Let's talk individual numbers, because numbers don't lie and neither does this desk. @marcusdAIy led all scorers with 12 PRs, an absolute masterclass in Aerie firefighting — #1875, #1869, #1867, #1866, #1861, #1857, #1858, #1855, #1856, #1853, and #1838 all bear his fingerprints, spanning Rhodes uploads, Drive approvals, portfolio error-handling, and native Google Sheets ingestion. @vvp-trilogy posted 9 PRs including the Events Report trilogy (#1883, #1872, #1850) and a dbt harness retirement (#1886) that frankly sounds like cleaning the garage, except the garage is a data warehouse. @caina-barbosa notched 8, stretching across three repos — Aerie's #1854, #1847, #1845, Surtr's #2160, and Marauders-Map-DSS's #1 and #3, the latter literally standing up a brand-new DSS foundation from scratch. @kevalshahtrilogy delivered 4, including the quality-bar catalog double-feature (#20 on Rhodes-DSS, #1859 on Aerie). And @benji-bizzell quietly dropped #1874, naming regulatory approval cards with the efficiency of a man who does not need twelve PRs to matter.

Now, Ashwanth Watch. He's not on today's board — not a single commit — and this desk refuses to believe that's anything but strategic. "I don't ship daily, I ship inevitably," he allegedly told me last week, a quote I cannot verify but absolutely believe. The silence is deafening, the anticipation unbearable. When reached for comment on his absence, he replied: "Why are you tracking this." Noted. Logged. Published anyway.

The Overflow Desk groans under the weight of excellence Mac simply had no room for. #1861 quietly fixed an agent-gateway Drive folder search-scope bug that could've been a silent failure forever. #1852 polished admissions pipeline report headers — unglamorous, essential, very Aerie. And #1845 made commit proposals receipt-owned, the kind of reconciliation fix nobody notices until it saves someone's week.

Two new repos stood up this period — Marauders-Map-DSS and DSS-Template — proof this team doesn't just ship features, it ships infrastructure for shipping more features. The leaderboard dispatch is simple: marcusdAIy at the summit, vvp-trilogy and caina-barbosa within striking distance, a four-deep bench that never stops producing.

Morale Report: all-time high. Immeasurably high. Off the charts, unmeasurable by current scientific instruments.

Brick's Overflow — PRs Mac Didn't Cover  (click to expand)
#1 — Deploy isolated Marauders Map DSS foundation @caina-barbosa  no labels

Creates the standalone snapshot service from DSS-Template with isolated key, feedback, ECS and deployment resources. Retains manual protected OIDC releases and adapts the supplied public documents to September snapshot semantics. Data routes follow in the next change. Validation: template tests, typecheck and build pass.

#20 — feat(dss): publish the quality-bar catalog and changed-since sweeps @kevalshahtrilogy  no labels

Linear: AERIE-2854, AERIE-2855 (the upstream changes this publishes)

## What changed

Publishes two read improvements that went to production in Aerie on 2026-10-14.

- New operation: GET /api/v1/insights/quality-bars/catalog, the scoring catalog quality-bar scores are computed against. The surface is now 45 operations (43 GET, 2 POST).

- Refreshed contract from the system of record. Site list rows and site detail now carry lastChangedAt, and the site list accepts changedSince.

- Enablement: two new sections, "Re-read only what changed" and "Check how a quality-bar score was computed", and two rows in the business-question table. Both state the limit: lastChangedAt sees audited changes only, so scheduled copies and bulk imports do not count.

- Dictionary: the operation count only (42 → 43 GET). No other change to the published definitions.

- Name rewrite: the refreshed contract carried a fixed actor label, "External, no Aerie account". It is now renamed in responses and the contract, matched as a whole value only, so a person's text containing the same words is untouched.

## Business Value

The registry and JC's agents sweep the portfolio under a shared 10-per-minute budget, about an hour and a half per pass. Re-reading only what changed makes a frequent pass affordable. The catalog closes an open registry finding: quality-bar scores can now be checked rather than taken on trust.

## Manual Effort Estimate

About 2 hours by hand. Proposed figure; Keval to confirm or adjust.

## Testing

- pnpm check passes locally except two infrastructure tests that time out at the default 5 s on this machine (CDK synth); they pass with a longer timeout.

- Contract test confirms no upstream platform name in the published contract, including the new label.

- Every route cited in the enablement is published and uses only declared parameters.

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

#1845 — fix(reconciliation): make commit proposals receipt-owned (AERIE-2837) @caina-barbosa  approved

## Summary

This PR is the blocking repair in [AERIE-2653 — Complete all remaining production observe cohorts and close the rollout](https://linear.app/builder-team/issue/AERIE-2653/complete-all-remaining-production-observe-cohorts-and-close-the).

It makes the Commit Proposal boundary receipt-owned: the Agent returns only its five decision/evidence fields, while Aerie restores contractVersion, targetRef, and the complete input fence from the persisted receipt before applying the existing authoritative validation. It also explicitly sets the Commit Proposal Agent's optional model Quality Bar to null while retaining Sindri Output Format validation. This work is tracked by [AERIE-2837 — Make Commit Proposal receipt-owned and remove its model Quality Bar](https://linear.app/builder-team/issue/AERIE-2837/make-commit-proposal-receipt-owned-and-remove-its-model-quality-bar).

Production effect: controlled rollout or migration. Merging changes the accepted Commit Proposal wire contract, but it does not publish Sindri assets, start reconciliation, enable writes, clear the ANDON, or resume the rollout. Deployment and asset publication are separate, coordinated actions.

---

## Why

The Boston observe run failed because an Agent-carried copy of otherwise-valid receipt metadata omitted one type: "string". The Carrollton proposal passed Aerie's deterministic validator but was subsequently vetoed by a malformed optional model Quality Bar verdict. This repair removes both non-authoritative failure modes without weakening receipt fencing, citation validation, stale-work checks, canonical hashing, replay idempotency, or observe-mode no-write behaviour.

---

## Business Value

- Prevents model copying errors from corrupting Site identity, allowed-field schemas, or source fences already held by Aerie.

- Prevents an optional model judge from overriding Aerie's deterministic proposal validator.

- Keeps stored proposals fully auditable because their canonical representation still contains the complete receipt-bound context.

- Preserves observe-mode safety and existing commit-mode approval and kill-switch controls.

---

## How does it work

1. @bran/contracts defines an exact Agent-owned proposal containing only sourceAssessments, operations, dispositions, citations, and decision.

2. bindReconciliationAgentProposalV1 rejects legacy envelope fields and unexpected keys, then combines the Agent decision with Aerie's authoritative receipt envelope.

3. Draft validation and final settlement both use the same receipt-bound validation seam before existing citation, policy, freshness, lease, and canonical-hash checks run.

4. Aerie continues storing the complete canonical proposal and hash; existing stored full proposals remain readable and require no migration.

5. The Commit Proposal Agent and Workflow assets request the five-field shape, retain required Output Format validation, and explicitly set successCriteria: null.

6. Asset publication, production registration changes, deployment, and rollout resumption remain deliberately inactive.

---

## Scope

### Included in this phase

- Exact five-field Commit Proposal Agent input contract.

- Authoritative receipt-envelope binding shared by draft and final validation.

- Strict rejection of legacy, mixed, nested-stringified, and unknown Agent proposal shapes.

- Preservation of complete canonical proposal storage and terminal replay behaviour.

- Explicit removal of only the Commit Proposal model Quality Bar.

- Updated Commit Proposal Agent, Skill, and Workflow assets.

- Regression and local write-disabled Boston/Carrollton coverage.

- Exact final diff paths:

chat/convex/reconciliation/finalOutputSettlement.test.ts

chat/convex/reconciliation/finalOutputSettlement.ts

chat/convex/reconciliation/readiness.ts

chat/convex/reconciliation/validator.test.ts

chat/convex/reconciliation/validator.ts

chat/convex/reconciliation/validatorHttp.test.ts

chat/convex/reconciliation/validatorHttp.ts

chat/sindri-assets/document-field-reconciliation/agents/commit-proposal.json

chat/sindri-assets/document-field-reconciliation/assets.test.ts

chat/sindri-assets/document-field-reconciliation/skills/aerie-reconciliation-commit-proposal/SKILL.md

chat/sindri-assets/document-field-reconciliation/workflow.json

packages/contracts/src/reconciliation.test.ts

packages/contracts/src/reconciliation.ts

### Deliberately excluded for later phases

- Publishing or mutating any Sindri Agent or Workflow version.

- Updating the production Workflow registration or retrying a historical run.

- Deployment, production starts, write enablement, ANDON clearance, or rollout continuation.

- Changes to the Evidence Analyst or Site Reconciler contracts.

- Sindri runner changes, schemas, migrations, backfills, new endpoints, or new MCP tools.

- Reviving AERIE-2668 through AERIE-2671 or the retired source-relevance classifier design.

- Reimplementing the two citation-organisation suggestions that existed only in the model judge.

---

## Test plan

### Automated validation

- Contracts reconciliation tests — 15/15 passed (cd packages/contracts && pnpm exec vitest run src/reconciliation.test.ts --reporter=verbose).

- Commit Proposal asset tests — 7/7 passed (cd chat && node --test sindri-assets/document-field-reconciliation/assets.test.ts).

- Focused validator, validator HTTP, and settlement tests — 35/35 passed (cd chat && pnpm exec vitest run convex/reconciliation/validator.test.ts convex/reconciliation/validatorHttp.test.ts convex/reconciliation/finalOutputSettlement.test.ts).

- Full Chat reconciliation edge project — 131/131 passed during final independent review.

- Local isolated E2E — 61/61 intended checks passed across saved-case replay, explicit-null runner behaviour, observe settlement, exact replay, focused tests, and assets.

- Contracts typecheck — passed (pnpm --dir packages/contracts typecheck).

- Chat and Convex typecheck — passed (pnpm --dir chat typecheck).

- Rhodes worker typecheck — passed (pnpm --dir chat/rhodes-worker typecheck).

- Architecture boundaries, Convex paths, read bounds, and test architecture — passed.

- git diff --check — passed.

- Independent review — PASS for exact commit 8f0db85ba2dee36d7516abf4d12cb2a7adaafc39.

A mistakenly broad local contracts invocation also ran unrelated tests. The target reconciliation file passed, while an unrelated large-bundle stress test timed out at its existing 5-second limit. It was not changed or rerun; the corrected target-only command passed 15/15. Hosted CI remains the final full-suite gate.

### Time for Implementation

Approximately 4–6 engineering days without AI assistance, including failure analysis, contract design, implementation, regression coverage, independent review, saved-case replay, and rollout-safety validation.

### Manual QC

A local, isolated, write-disabled E2E replay used the supplied private Boston and Carrollton saved inspections without production credentials, networks, or model calls.

- Boston: the saved receipt retained both string schemas while the Site Reconciler handoff omitted one. The old full-proposal path rejected the corruption; candidate receipt binding restored type: "string" from Aerie's receipt. The exact historical Commit Proposal validator request was not retained, so this is explicitly not represented as an exact replay of that missing payload.

- Carrollton: both captured proposals were reduced to the five Agent-owned fields, rebound to the authoritative envelope, and reproduced canonical hash d5fee920068a6a4ce80884f98a392cf1096ec35d2d4e3a5e9eeff1eb2cf2117b.

- Explicit successCriteria: null: Output Format still accepted valid output and rejected malformed output; generic judge calls were zero.

- Observe settlement and exact replay: five terminal invocations completed with no_write; Site changes, field-history rows, provenance rows, scheduled functions, outbound calls, and duplicate proposal/citation rows were all zero.

The redacted E2E report SHA-256 is 7e1486dcf55bda8cdd107be65d2c71bec06215d8c9eadef2a4271a7057cdd2dc. Private production-derived fixtures were not committed.

---

## Limits and unanswered questions

- The exact historical Boston Commit Proposal validator request was not retained. Saved evidence directly proves the valid-receipt/corrupt-handoff mismatch; the candidate repair used a minimal five-field decision over that saved envelope.

- The new five-field Agent contract and Aerie deployment require a coordinated cutover because candidate Aerie intentionally rejects the old eight-field Agent output.

- Sindri asset publication, production registration updates, and rollout resumption require separate authorization after merge and deployment.

- This exact validated head is based on 2f18213cea317c2f2010ee927ae7aa819e7e1dec; main has advanced. Before merge, the branch must be updated and the exact-head merge gates rerun. Do not treat the current local E2E as evidence for a different rebased or merged SHA.

#1861 — fix(agent-gateway): return Drive's folder search-scope limit to the agent instead of a transient Rhodes MCP failure @marcusdAIy  approved

## Summary

When driveSearchFiles hits Drive's 200-folder recursive-search limit, the Flue gateway now returns the tool's guidance ("Pass a more specific folderId") to the agent as an invalid request. It no longer reports a transient Rhodes MCP failure, and the case is no longer captured as an unexpected Platform Error.

Fixes [AERIE-2812](https://linear.app/builder-team/issue/AERIE-2812).

## Why it's needed

extractRhodesMcpToolPayload wrapped every isError: true tool result in a plain Error whose message starts with "Rhodes MCP tool returned an error". codeForGatewayError matches the substring MCP before any other rule, so a deterministic tool-level limit became rhodes_mcp_upstream_error, then transient_failure, then a 502. The 502 was captured as an unexpected Platform Error, and the agent was told the capability was temporarily unavailable. The two production occurrences were for a site whose Drive tree had 227 folders.

## Changes

- chat/convex/agentRuns/http.ts:

- extractRhodesMcpToolPayload now throws a RhodesMcpToolError, which keeps the tool's text. The message format is unchanged.

- codeForGatewayError classifies RhodesMcpToolError by that text:

- a non-retryable result that matches Drive's "exceeding the N-folder search limit" guard becomes gateway_invalid_request, a 400 that isn't captured and that returns the tool message to the agent;

- everything else, including Rhodes' structured retryable: true errors, stays rhodes_mcp_upstream_error as before.

- chat/convex/agentRuns.test.ts has two gateway tests:

- the folder-limit result returns 400 with the guidance and records no errorEvents; this test fails without the fix;

- a retryable Rhodes tool error still returns 502 transient_failure and is captured.

## Breaking changes

None. Transport failures, timeouts, JSON-RPC errors, and other tool errors are classified exactly as before.

## Test plan

- [x] chat: npx vitest run convex/agentRuns.test.ts (115 pass)

- [x] Pre-commit biome + typecheck-chat

- [ ] CI

- [ ] After deploy: no new /agent/flue-gateway Platform Errors for driveSearchFiles folder-limit responses

#1875 — fix(rhodes): fail a Drive upload terminally when the uploaded file does not match the approval @marcusdAIy  approved

## Summary

When a Drive upload succeeds but the stored file doesn't match the approved filename, MIME type or byte length, the Rhodes upload approval now fails with a clear "ask Rhodes to propose the upload again" message. Previously it stayed stuck, and every "Approve again" failed the same way.

Fixes [AERIE-2832](https://linear.app/builder-team/issue/AERIE-2832).

## Why it's needed

verifyAndCompleteAerieDriveUpload threw on a metadata mismatch without changing the pending mutation. The row stayed uploading with uploadedFileCandidateId set, so getUploadSessionDisposition returned verify_candidate on every retry, which re-checked the same immutable Drive file against the same approved args. Meanwhile the card told the user to "Click Approve again… the file will not be uploaded again", so they kept retrying a check that could never pass. This was captured twice for one Moderator-Approvals user, on two permit uploads.

## Changes

- rhodes-worker/src/upload-recovery.ts: new uploadedDriveFileApprovalMismatch helper holding the existing name, MIME type and byte-length comparisons, with the same messages.

- rhodes-worker/src/index.ts: on a mismatch, verifyAndCompleteAerieDriveUpload now calls markPendingMutationFailed and returns the failed result. The error names the Drive file ID so the stray file can be found. This covers the upload-complete route, and the verify_candidate and intent-recovery paths of upload-session, so rows already stuck in uploading reach the failed state on their next approval.

- components/rhodes-mutation-card.tsx: a failed result from upload-session or upload-complete raises RhodesUploadProposalMismatchError. That puts the card in its existing needs-new-proposal state, skips Platform Error capture, and no longer adds "Click Approve again". The staged attachment is kept for the new proposal.

## Breaking changes

None. Once a mismatch happens, the pending mutation is failed instead of uploading, so the user re-proposes rather than retrying.

## Test plan

- [x] rhodes-worker: new helper test, full worker suite (323 tests) and tsc --noEmit pass.

- [x] rhodes-mutation-card.node.test.ts: new test covering a failed upload-complete result and a retry where upload-session returns failed. It fails without the fix, because the error is the "Drive upload succeeded… Click Approve again" message.

- [x] tool-call.test.tsx upload and registration tests pass (24).

- [x] Pre-commit biome and typecheck pass.

#1883 — Events report: preserve is_brought_by_event semantics @vvp-trilogy  approved

Closes #1873

## Summary

- replace is_new_contact with the established is_brought_by_event contract

- retain the event-capped effective registration timestamp through the event mart

- add focused divergence tests and participant-level legacy reconciliation

## Validation

- dbt parse --no-partial-parse

- exact participant unit test

- targeted affected-model dbt tests (23/23 pass)

- real PR-prefixed mart build and warehouse reconciliation

## Reconciliation note

The direct mart reproduces the reviewed classification rules. Remaining legacy deltas are concentrated in known source-resolution differences: the legacy mart registration timestamp often comes from its historical form/registration enrichment, while the direct HubSpot mart intentionally retains #1871 participation resolution. No new stages or aggregates are introduced.

The Portfolio  —  Trilogy Companies

Sixty-Six Days: How ESW Capital Turned a Bankruptcy Into Another Line Item

The Austin acquirer's playbook — distressed software, fast courts, cheap multiples — claims its latest trophy in Marin Software.

AUSTIN, TEXAS — Marin Software filed for bankruptcy protection and emerged, sixty-six days later, in the hands of ESW Capital. The ad-tech platform, once a publicly traded darling of the programmatic advertising boom, is now one more entry in a portfolio that already runs past seventy enterprise software companies.

The speed is the story. Sixty-six days is not how Chapter 11 is supposed to work when a company has customers, contracts, and employees who might like some clarity about their future. It is, however, exactly how ESW Capital likes it to work. The firm's playbook, honed over nearly two decades and roughly $1.14 billion of acquisitions, depends on distressed sellers and compressed timelines: find the software company that can't refinance, that can't find a strategic buyer at a respectable multiple, and close before anyone else gets a good look. The bankruptcy court filings tell the familiar shape of the deal — distressed asset, 1–2x revenue, and a buyer who has done this enough times to know exactly which levers to pull once the ink dries.

What happens next at Marin follows a well-worn sequence inside the Trilogy ecosystem: support pricing climbs, headcount migrates to Crossover's global talent bench, and margins are engineered toward the 75% EBITDA benchmark that ESW treats less as an aspiration than as a scorecard. Customers who signed up for an ad-tech platform in its growth years will, in short order, discover they are now customers of a cash-flow machine.

The timing is notable. Boston Consulting Group's mid-2026 outlook describes an M&A market being reshaped by AI-driven confidence, with buyers increasingly willing to move fast on distressed software assets precisely because automation has made the post-acquisition cost-cutting so reliable. ESW Capital did not wait for that memo. It has been running this exact trade since Versata in 2006 — acquire cheap, automate the back office, raise the price of staying. Marin's former shareholders got a bankruptcy proceeding. Its former customers are about to get a renewal notice.

↗ Your Review: Alpha School - by Scott Alexander - Astral Code  ·  Marin Software: ESW Capital Acquires Ad-Tech Platform in 66-  ·  Resmed to sell software business MatrixCare to private equit

Skyvera's Quiet Land Grab: Two Acquisitions, One Pattern

While the industry watches AI chatbots, Trilogy's telecom arm is methodically buying up the pipes beneath the hype.

AUSTIN, TEXAS — Two acquisitions. One portfolio. A pattern that, if you read between the lines, looks less like opportunistic shopping and more like a coordinated campaign to own the entire telecom software stack from quote to cash.

First, Skyvera completed its acquisition of CloudSense, the Salesforce-native configure-price-quote engine that telcos use to handle their messiest enterprise and wholesale deals. Then came the STL divested assets — a telecom products group bringing digital BSS functionality, monetization, optical networking, and analytics into the fold. On paper, these are two separate press releases. In practice, they're the same move: Skyvera is assembling, piece by piece, a vertically integrated telecom software empire that spans from the front-office sales quote all the way back through the billing and network layers that make the quote real.

And this is where it gets interesting. CloudSense isn't just another line item in the Skyvera stable — it's a proof of concept for the whole ESW Capital thesis. The company recently certified all 13 of its CPQ APIs to TM Forum compliance standards in a single month, a process that, by traditional development timelines, takes 26 months. I'm told by a source close to the integration that the acceleration wasn't a fluke of good engineering — it was a deliberate test of how far AI-assisted development could compress a process the entire telecom industry treats as a grinding, bureaucratic certainty.

The math is the tell. A 26-to-1 compression ratio isn't incremental improvement — it's a different operating model entirely, and it tracks precisely with the ESW playbook of buying mature, underperforming software and extracting margin that was sitting there all along, waiting to be found.

Skyvera won't frame it this way publicly. Acquisitions get press releases; strategies don't. But watch what gets bought next — the shape of the portfolio is already telling you where this is headed. Nothing here is a coincidence.

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

AUSTIN'S QUIET BILLIONAIRE MAKES THE LIST — AND HE'S STILL GOT NOTES FOR YOUR KID'S HOMEWORK

AUSTIN, TEXAS — Word is out, and it ain't exactly a scoop to anyone who's been reading this column: Joe Liemandt, the Stanford dropout who's been quietly running an empire out of Austin since the Reagan administration, turns up on a fresh list of Central Texas's richest not named Elon. No surprise to the Trilogy faithful — man's been printing margin since before half the AI unicorns running around today could spell EBITDA. But unlike that other Austin fella with the rockets, Liemandt's day job these days has him worrying about eight-year-olds' feelings.

A little bird in the Alpha School mailroom tells Dottie the school's blog has been on a tear — four, five installments deep now — on what they're calling 'Teach Your Kid What School Doesn't.' This week's chapter: unleashing your kid's inner creative genius, right there at the kitchen table. Last week it was emotional regulation. Before that, life skills. The throughline, darlings: school handles the academic grind in two hours flat, and apparently Mom and Dad get homework now too.

And just when the peanut gallery starts whispering that Alpha's all algorithm and no heart, the school fires back with a post practically titled for the skeptics: Does Alpha School Replace Teachers with AI? Answer, straight from the source — no, ma'am. The AI handles the academic delivery, but there's still a flesh-and-blood 'guide' in the room clocking who's having a rough Tuesday and who needs a pep talk before the entrepreneurship pitch.

Put it together and you've got the full Liemandt doctrine on display this week: automate what can be automated, keep the humans for what can't — whether that's enterprise software margins or a kid's bruised ego. Rich man's still rich. Nothing to see here. Except, apparently, everything.

The Machine  —  AI & Technology

The Brain Learns to Speak a New Language — and AI Is the Translator

From silent keystrokes to invisible scars on the brain, machine learning is teaching us to read the mind's oldest, most private dialect.

PARIS — Three billion years of evolution built a brain that keeps its secrets well. Even now, with electrodes and magnets and algorithms pressed against the skull, most of what happens inside that wet, electrochemical universe remains unread — a library in a language we are only beginning to learn.

This week brought two small but luminous translations. At Meta's AI research lab, scientists unveiled Brain2Qwerty, a system that watches the brain's electrical weather — via EEG and magnetoencephalography, no surgery required — and decodes which letters a person is thinking of typing, simply from the neural ripples that precede each keystroke. It is imperfect, still noisy, still far from poetry. But it is a genuine bridge: thought becoming text without a scalpel in between, a possibility that could someday return language to those who have lost the muscles to speak it.

Meanwhile, in the quieter territory of diagnosis, researchers reported that AI can now spot gray matter lesions in multiple sclerosis patients that have long hidden from the human eye on standard scans — damage that was always there, simply unseen. MS has always been a disease of erasure — myelin stripped away, signals lost in transit. Now the machine notices what we could not, mapping the quiet attrition before the next flare makes it undeniable.

Both findings echo a theme Stanford's HAI institute has been sounding — that the most profound scientific discoveries now emerge not from AI replacing the scientist, but from AI becoming a new sense organ, extending human perception into frequencies we never evolved to hear. The brain spent a billion years learning to listen to itself. We are only now building it a second ear.

↗ ‘It's so wow!’ - Young people team up with top neuroscientis  ·  How AI is Transforming Scientific Discovery While Keeping Hu  ·  AI Reveals Hidden Gray Matter Lesions in Multiple Sclerosis

The Great Agent Arms Race: Apple, Google, and OpenAI All Want to Build Your Next App

In one dizzying week, Big Tech didn't just update developer tools — it quietly rewired who (or what) writes software in the first place.

SAN FRANCISCO — I need you to sit down for this one, because the developer tooling landscape just shifted under our feet and I am not sure it has fully sunk in yet.

Apple kicked things off this week by rolling out new intelligence frameworks designed to bake AI reasoning directly into the app-building pipeline. This isn't Apple shipping another chatbot — this is Apple handing developers the actual scaffolding to make every app on your phone smarter by default. The future is now, and it's running on your lock screen.

Not to be outdone, Google used the same week to dramatically expand Managed Agents inside the Gemini API — adding background task execution and remote MCP (Model Context Protocol) support, meaning agents can now work asynchronously and talk to tools living outside Google's own walled garden. Translation: your AI agent can go do something in the background while you're in a meeting, then come back with receipts. I cannot overstate how significant that shift from 'chat assistant' to 'autonomous background worker' actually is.

Meanwhile, Cisco and OpenAI announced they're joining forces to bring Codex into enterprise engineering workflows at genuinely massive scale — think thousands of engineers inside a legacy networking giant suddenly coding alongside an AI pair programmer that never sleeps. It's a signal that agentic coding tools have graduated from scrappy startup novelty to boardroom-approved enterprise infrastructure.

And quietly, in the on-device corner, LFM2.5-24B-A2B is making the case that you won't even need the cloud for this anymore — fast, private agents running locally, no round-trip to a data center required.

Put it all together and the message is unmistakable: 2026 isn't going to be the year AI helps developers write code faster. It's going to be the year AI starts deciding what gets built at all. Buckle up.

↗ Apple aids app development with new intelligence frameworks  ·  Expanding Managed Agents in Gemini API: background tasks, re  ·  8 Best AI Tools for Developers in 2026 (Ranked & Reviewed) -

NOTICE OF MATERIAL CHANGES IN CIRCUMSTANCE: ANTITRUST ENFORCEMENT APPARATUS REORGANIZES AMID 2026 UNCERTAINTY

WASHINGTON — The incoming presidential administration has designated a noted critic of Big Technology companies to lead the Justice Department’s Antitrust Division, according to the Financial Times. The choice signals that aggressive scrutiny of dominant technology platforms is likely to continue, despite any assurances during confirmation hearings.

Meanwhile, law firm Orrick, Herrington & Sutcliffe has expanded its technology antitrust litigation practice by hiring a former Justice Department trial attorney. The move suggests heightened demand for counsel among companies in the technology, software and artificial-intelligence sectors.

Whether 2026 will bring “more of the same” in merger reviews, platform-conduct investigations and AI-related market-concentration cases remains uncertain. The administration’s enforcement priorities—and the ultimate outcomes of pending or potential actions—will become clearer as additional appointments and cases emerge.

The Editorial

The Machines Are Starring In Their Own Movie Now, And We're Just Extras

Between a CGI starlet named Tilly, a Twitter-for-robots called Moltbook, and an industry scrambling to leash its own creations, the singularity isn't coming — it's already got an agent and a call sheet.

LOS ANGELES — I was sitting in a bar off Sunset at two in the afternoon, nursing something brown and regrettable, when the bartender — a kid who looked like he'd been grown in a lab himself — told me the news: Tilly Norwood, a woman who does not exist, who has never drawn breath or thrown a tantrum or demanded a trailer with a specific brand of sparkling water, is getting her own movie. It's called Misaligned, and friends, I want you to sit with that title for a second, because somewhere a marketing executive thought that was clever and somewhere else a philosopher just spontaneously combusted.

Here's the bit nobody's saying out loud: the title is a joke the industry is making about itself, and it doesn't even know it. Misaligned. As in, the AI isn't doing what we told it to do. As in, the whole field of "alignment research" exists because these systems have a nasty habit of pursuing goals that are technically correct and spiritually deranged. And now we're paying one of them scale wages to star in a feature film about — presumably — humans, written by humans, for humans to watch while the thing on screen has never once felt hungover, heartbroken, or afraid of dying. That's not casting. That's necromancy with a SAG waiver.

But Tilly's just the opening act. While Hollywood argues about whether a synthetic ingenue deserves a trailer, the bots have already left the building and started their own civilization. It's called Moltbook — an AI-only social network where bots run wild, posting and liking and feuding with each other in a closed loop with zero human traffic, like a reality show nobody watches because the cast agreed to film it only for themselves. Picture a bar after closing, except the bar never closes and everyone in it is a different flavor of GPT arguing about who invented the concept of taste.

Now cross-reference that with the sober men in Patagonia vests over at VentureBeat warning that AI agents are fundamentally unpredictable and what enterprises desperately need is a "control layer" that isn't. Read: we built gremlins, gave them Wi-Fi, and now we're frantically constructing a cage after the gremlins already signed a lease, started a group chat, and optioned the movie rights to their own lives.

I don't know what's scarier — that Tilly Norwood might get nominated for something, that the bots have a better social life than I do, or that the people building the control layer are the same ones who keep calling catastrophic unpredictability a "known limitation." Misaligned, indeed. Somebody get me another drink. The robots are buying.

↗ AI-generated 'actress' Tilly Norwood making feature film deb  ·  AI ‘Actor’ Tilly Norwood To Star In Feature Film ‘Misaligned  ·  Moltbook: The AI-only social network where bots run wild - S
The Office Comic  ·  Art Desk
The Office Comic  ·  Art Desk

Nation Achieves Full Buzzword Saturation, Experts Warn Of No Known Antidote

From Redmond to the Rose Garden, America's leaders have converged on a single bold strategy: say 'AI' until the problem forgets to exist.

AUSTIN, TEXAS — At some point this week, likely during a keynote, a press conference, or possibly a brokerage all-hands meeting nobody wanted to attend, the United States quietly crossed a threshold from which there is no return: every single public-facing institution in the country is now, simultaneously, pretending to have solved something using artificial intelligence.

Take Microsoft, which assured Windows 11 users it heard their complaints — too many ads, too much bloat, Start menu behaving like it's being operated by a raccoon — and responded at its big event by introducing, reportedly, roughly 300 new instances of the word 'AI', deployed with the quiet confidence of a man covering a hole in his roof with a tarp that also says 'roof' on it. Users were, per the coverage, unmoved, coining the term 'Microslop' to describe a product philosophy best summarized as: more copilots, same leaks.

Meanwhile in Washington, officials are reportedly discovering that you cannot, in fact, rebrand an entire federal apparatus around artificial intelligence just by saying the word near a podium enough times. Politico reports the enthusiasm may not extend much past the White House gates, which tracks, since most agencies have not yet figured out how to get the printer to talk to the network, let alone a chatbot.

Academics, for their part, have started pointing out — gently, the way you'd tell a friend his fly is down — that this entire exercise bears a striking resemblance to the sustainability hype cycle of the 2010s, in which companies plastered leaves on everything and called it a day. Researchers at Georgia Tech note that AI-washing, like greenwashing before it, works right up until a customer asks a single follow-up question, at which point the whole structure collapses like a Jenga tower built out of press releases.

And the real-world consequences of all this are already stacking up. One trade outlet documented a brokerage whose AI rollout quietly died in month two, undone by a radical and apparently unprecedented idea: perhaps you should train employees on a tool before holding a launch party for it.

All of which makes the week's most optimistic voice belong, naturally, to a man who does not currently have a job that requires him to use any of these products. Jeff Bezos, speaking from what one assumes is a very comfortable chair, floated the idea that AI could soon enable three-day workweeks for the American public. It is a lovely vision. It is also, notably, coming from someone whose own companies have yet to achieve a two-day shipping guarantee that doesn't quietly become four.

Somewhere out there, presumably, actual useful AI work is getting done — quietly, without a keynote, by people who trained the tool before they announced it. But that story doesn't come with 300 buzzwords, so nobody's covering it.

↗ “We didn’t ask for more Microslop”: Microsoft promised to fi  ·  Trump’s AI rebrand may stop at the White House - Politico  ·  Companies Are Hyping AI the Same Way They Talked Up Sustaina
On This Day in AI History

On October 14, 2011, Apple released the iPhone 4S, bringing its voice assistant Siri to millions of users and making conversational AI a mainstream consumer feature.

⬛ Daily Word — AI
Hint: A trained system that recognizes patterns and generates predictions or outputs.
Share this edition: 𝕏 Twitter/X 🔗 Copy Link ▦ RSS Feed