<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Merced</title>
    <description>The latest articles on DEV Community by Alex Merced (@alexmercedcoder).</description>
    <link>https://dev.to/alexmercedcoder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F288069%2Fe752e411-5aa7-4ea9-b89b-5f670f94a8ca.png</url>
      <title>DEV Community: Alex Merced</title>
      <link>https://dev.to/alexmercedcoder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexmercedcoder"/>
    <language>en</language>
    <item>
      <title>Apache Data Lakehouse Weekly: October 28 to November 4, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Thu, 05 Nov 2026 02:32:21 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-28-to-november-4-2026-155h</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-28-to-november-4-2026-155h</guid>
      <description>&lt;p&gt;This was a week of votes. Apache Iceberg passed or nearly passed three separate v4 spec changes, Apache Parquet opened and then reset a vote on a new vector type, and Apache Arrow, Iceberg Rust, DataFusion Comet and the Iceberg Terraform provider all shipped releases. The quieter story sits underneath those votes. Across six dev lists, maintainers kept running into the same two problems: specs that leave room for two correct readings, and a flood of AI-assisted pull requests that outpaces the people who review them.&lt;/p&gt;

&lt;p&gt;The six lists produced 463 messages in the eight days ending November 4. Iceberg led with 117 messages across 37 threads. Apache Ossie, still incubating, came second with 125 messages, a sign of how much design work a young semantic standard needs before its first release. Polaris followed with 95, Parquet with 52, Arrow with 47 and DataFusion with 27.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;p&gt;The v4 table format took three large steps forward in a single week. Ryan Blue closed the vote on &lt;a href="https://lists.apache.org/thread/f7nwynr69g18kj61nt5h1f45cn8g768t" rel="noopener noreferrer"&gt;stats-only fields for v4&lt;/a&gt; with 15 +1 votes and no objections, as recorded in &lt;a href="https://lists.apache.org/thread/d90t8lbgomb23d8dtllnncsbx27g69k3" rel="noopener noreferrer"&gt;the result thread&lt;/a&gt;. The change adds a &lt;code&gt;stats-fields&lt;/code&gt; list that assigns table field IDs to things that are not real columns, such as partition fields or an expression like &lt;code&gt;to_lower_case&lt;/code&gt;. Engines can then store statistics for those derived values in the &lt;code&gt;content_stats&lt;/code&gt; struct. In plain terms, Iceberg can now record min and max values for the expressions people actually filter on, not only for the raw columns they store.&lt;/p&gt;

&lt;p&gt;The design discussion behind that vote, in &lt;a href="https://lists.apache.org/thread/ygsww828k5z5fj5otz2hpcjcmqwhmz60" rel="noopener noreferrer"&gt;the stats-only fields thread&lt;/a&gt;, carried a useful detail. Andrei Tserakhau raised collations, and Ryan proposed a new type with standardized metadata for those rather than an expression. His reasoning was simple: a collation always produces a string, so binding an expression adds work with no payoff. He also left the handling of unbindable expressions to implementations, arguing that a strict "must ignore" rule hides real errors.&lt;/p&gt;

&lt;p&gt;Daniel Weeks then opened a vote on &lt;a href="https://lists.apache.org/thread/th30oq0rcvn5gmn2qdx790k8vf4fz1ob" rel="noopener noreferrer"&gt;default value expressions for v4&lt;/a&gt;. The proposal expands &lt;code&gt;write-default&lt;/code&gt; so a column default can be an expression from Iceberg's expressions spec, not only a literal. The thread collected binding +1 votes from Steven Wu, Russell Spitzer, Ryan Blue, Gang Wu, Eduard Tudenhöfner, Fokko Driesprong, Amogh Jahagirdar and Yufei Gu within two days. Péter Váry and Gianluca Graziadei left small review comments on the spec PR. For teams that evolve schemas often, this matters: a new column can get a computed default without a backfill job.&lt;/p&gt;

&lt;p&gt;Steven Wu's vote to &lt;a href="https://lists.apache.org/thread/pwzmjq579svsw7qh0nzpqwg25lqrdgrv" rel="noopener noreferrer"&gt;add a &lt;code&gt;_last_updated_time&lt;/code&gt; row lineage column&lt;/a&gt; had the most texture. The proposal records the wall-clock timestamp of the snapshot that last changed a row, next to the existing &lt;code&gt;_last_updated_sequence_number&lt;/code&gt;. It adds an optional &lt;code&gt;snapshot_timestamp&lt;/code&gt; field in v4 manifests, and writers leave it null so readers inherit the snapshot's &lt;code&gt;timestamp-ms&lt;/code&gt;. Upgrading to v4 needs no manifest rewrites. Daniel Weeks voted +1 but asked to change the type from &lt;code&gt;timestamptz&lt;/code&gt; to &lt;code&gt;timestamp&lt;/code&gt;, since the inherited value carries no time zone. Ryan Blue then wrote that the spec text still needs more editing before it is ready. Expect a revised PR before this one closes.&lt;/p&gt;

&lt;p&gt;Two more v4 threads show where the format is heading. Kevin Liu asked directly whether &lt;a href="https://lists.apache.org/thread/5jfzckl0cc9z683kz9vfv41pmhrm1tdb" rel="noopener noreferrer"&gt;v4 should stop writing ORC and Avro data files&lt;/a&gt;. Existing files stay readable. His case rests on two points. Iceberg's own format test kit already lists features those formats lack, such as variant shredding, and the draft vector type does not support ORC. He also noted that recent ORC and Avro format changes Iceberg needed came from Iceberg contributors themselves, with Gang Wu adding geo types to ORC and Fokko adding nanosecond timestamps and fixed-size UUIDs to Avro. The thread poses four questions, including what bar a format must clear to become writable again.&lt;/p&gt;

&lt;p&gt;Pachu Shrinivas revived the &lt;a href="https://lists.apache.org/thread/c1gnghzh90y64xo677fmgr570mzh2lmy" rel="noopener noreferrer"&gt;deprecation of equality deletes in v4&lt;/a&gt; with a practical worry. Equality deletes do not conflict with concurrent compaction, because compaction can preserve the data sequence number from planning time. Deletion vectors (DVs) are scoped to one data file. So when compaction rewrites that file, either the streaming writer or the compaction job fails. Streaming shops will want an answer to this before v4 lands.&lt;/p&gt;

&lt;p&gt;That same theme showed up from an unexpected direction. Michalis Papadimitriou from the TornadoVM team shared &lt;a href="https://lists.apache.org/thread/sm9mwhs7qlgfw250l36bh2m0k29rhdn7" rel="noopener noreferrer"&gt;a proof of concept for GPU-accelerated merge-on-read scans and table maintenance&lt;/a&gt;. TornadoVM compiles plain Java methods into GPU kernels. The library sits on Iceberg 1.12 public APIs, so Iceberg still plans and commits while the GPU handles per-row work. The team reports 3.9x to 4.8x faster merge-on-read scans at 5 billion rows on two A10 GPUs versus 128 CPU threads. It also reports equality-delete to DV conversion on TPC-DS SF100 in 0.77 seconds versus 81.9 seconds for Spark compaction. These are the team's own numbers. Their pitch ties directly to the v4 decision: if new equality deletes are forbidden, converting existing ones becomes required work. They asked whether the code belongs out of tree, like Comet, or in a contrib module.&lt;/p&gt;

&lt;p&gt;Steven Wu also &lt;a href="https://lists.apache.org/thread/sbwmpx1tddw2bofh19f6dxx3pjgz0txo" rel="noopener noreferrer"&gt;consolidated the Monday sync into a single "V4 Metadata" meeting&lt;/a&gt;. It now covers the adaptive metadata tree, column files, content stats, relative paths, constraints and row timestamps. The Tuesday column-files sync goes away. The Thursday file and vector types sync stays for a few more sessions, which Philipp Fischbeck and Russell Spitzer used this week in &lt;a href="https://lists.apache.org/thread/0cv0kfg2lnlyzqcl2n22gnzv9wbszl57" rel="noopener noreferrer"&gt;the file and vector types thread&lt;/a&gt; to agree that a vector should be a primitive type in Iceberg. Russell's reasoning: consumers treat a vector as one whole value, not a list of cells to edit.&lt;/p&gt;

&lt;p&gt;Alex Stephen added an AI angle on top of that work with a proposal for &lt;a href="https://lists.apache.org/thread/zv614sbcz0doshl4xpddpcj3oolfgo3b" rel="noopener noreferrer"&gt;AI functions for FILE and VECTOR types&lt;/a&gt;. The idea is a vendor-neutral generative function and an embedding function in the Spark and Flink connectors, so users can work with multimodal Iceberg data without picking one AI vendor's SQL dialect. Alex Cruise posted a separate proposal for &lt;a href="https://lists.apache.org/thread/sl67qzcqqnqpdk25c90wq7xyqfq1ogmy" rel="noopener noreferrer"&gt;pluggable Puffin blob types with a compaction-aware lifecycle&lt;/a&gt;. His goal is "progressive indexing": adding new index types to large, old files without rewriting the data. He framed it as complementary to the v4 secondary index proposal, and he published a gentler backgrounder alongside the formal text.&lt;/p&gt;

&lt;p&gt;Index work also moved in a dedicated sync. Huaxin Gao &lt;a href="https://lists.apache.org/thread/lgzcj734x9fopo2t6fnx5pb1lgc8jbr4" rel="noopener noreferrer"&gt;summarized how databases, catalogs and REST APIs model indexes&lt;/a&gt;. Every catalog API she checked scopes an index to its table. SQL databases split on the question. Daniel Weeks gave the proposal a +1, and Péter Váry said he prefers nesting indexes under the table path in the REST spec.&lt;/p&gt;

&lt;h3&gt;
  
  
  REST catalog and auth
&lt;/h3&gt;

&lt;p&gt;The REST catalog spec got a useful clarification this week, and the trigger came from Polaris. Anand Kumar Sankaran asked what &lt;a href="https://lists.apache.org/thread/1nfwnk1j8sppmsry675ygr1jbxyhvrdx" rel="noopener noreferrer"&gt;the metrics reporting endpoint should return when the server cannot store a report&lt;/a&gt;. Eduard Tudenhöfner replied that metrics reporting is best-effort, the Java &lt;code&gt;RESTMetricsReporter&lt;/code&gt; never surfaces errors, and clients are not expected to retry. Yufei Gu wanted that written into the spec, asking where the line sits if a failed write can return 204. Daniel Weeks drew the line clearly. A server should never return a success code for a failed request, but whether a client retries is a client choice. The spec stays as is. The practical guidance: a metrics endpoint behaves like any REST endpoint and can return a 4xx or 5xx when it fails.&lt;/p&gt;

&lt;p&gt;Alex Dutra brought news from Community over Code in Glasgow. The group agreed to &lt;a href="https://lists.apache.org/thread/vk1yzvdnr4t8c6kywf4s2npwfkz6nvpz" rel="noopener noreferrer"&gt;downscope the OAuth2 AuthManager v2 proposal&lt;/a&gt;. The reboot supports one grant (&lt;code&gt;client_credentials&lt;/code&gt;), two client authentication methods, simplified token renewal and limited legacy v1 support. It now fits in a single PR. Christian Thiel, who backed the approach in Glasgow, put it on the catalog sync agenda.&lt;/p&gt;

&lt;p&gt;Youngrae Kim closed the vote to &lt;a href="https://lists.apache.org/thread/c5ldjw25fplxjfplfx8fnvbkv598yy3p" rel="noopener noreferrer"&gt;add &lt;code&gt;none&lt;/code&gt; to the &lt;code&gt;X-Iceberg-Access-Delegation&lt;/code&gt; header values&lt;/a&gt; with seven +1 votes. A client can now tell the server it wants no credential vending at all. That small change unblocks a Polaris discussion covered below. Yong Zheng also &lt;a href="https://lists.apache.org/thread/1w67w09tjzgos8lbw98moyyyc2zm34q9" rel="noopener noreferrer"&gt;proposed replacing &lt;code&gt;example&lt;/code&gt; with &lt;code&gt;examples&lt;/code&gt;&lt;/a&gt; in the REST OpenAPI document to match OpenAPI 3.1.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spec gaps found by readers
&lt;/h3&gt;

&lt;p&gt;Sylwester Lachiewicz found a real interoperability bug in the spec's text on &lt;a href="https://lists.apache.org/thread/tct2yp45ytsb6dqw1tq7b8gnfnp7jndo" rel="noopener noreferrer"&gt;name mapping for files that carry only some field IDs&lt;/a&gt;. He checked four implementations and found four behaviors. Java resolves by ID only if any field has an ID. PyIceberg uses IDs only if every field, including list elements and map keys, has one. Iceberg Rust lets the first top-level column decide. Iceberg Go resolves per field. This is not theoretical. Delta tables with column mapping, written without IcebergCompatV2, store IDs on top-level columns but not on map keys and values. Read the same table through PyIceberg and Java and you get different results. He wants the community to pick one reading and write it down.&lt;/p&gt;

&lt;p&gt;Maintenance code drew attention too. Sebastian Daberdaku asked for eyes on &lt;a href="https://lists.apache.org/thread/5f40shqmwc2l647oskjg1vv8pq7q8od7" rel="noopener noreferrer"&gt;a fix that makes &lt;code&gt;remove_orphan_files&lt;/code&gt; use the catalog's Hadoop configuration&lt;/a&gt;. When a catalog reaches storage with different credentials than the cluster, the listing step fails with AccessDenied or sees no files. Daniel Weeks suggested reading the configuration from the FileIO instead, and Russell Spitzer backed avoiding new API surface. Sebastian showed why that falls short: S3FileIO, GCSFileIO and ADLSFileIO do not implement &lt;code&gt;HadoopConfigurable&lt;/code&gt;. Vova Kolmakov raised a sharper risk in &lt;a href="https://lists.apache.org/thread/cgsbm3rbplyo8wnm6281dwp0rx5vrtbn" rel="noopener noreferrer"&gt;the &lt;code&gt;file_list_view&lt;/code&gt; location thread&lt;/a&gt;. A raw &lt;code&gt;startsWith&lt;/code&gt; check on &lt;code&gt;s3://bucket/table&lt;/code&gt; also matches &lt;code&gt;s3://bucket/table-backup&lt;/code&gt;, so files in a sibling directory can be treated as orphans and deleted. The fix treats the location as a directory. Munendra S N asked for review of &lt;a href="https://lists.apache.org/thread/6jg89899o7j968wjss7vordchp1m00l1" rel="noopener noreferrer"&gt;a GCS fix that separates real delete failures from missing objects&lt;/a&gt;, since the current code silently swallows permission errors.&lt;/p&gt;

&lt;p&gt;Aaron Niskode-Dossett resurfaced a stale PR that &lt;a href="https://lists.apache.org/thread/bt639rksgy0s6frv6dgq3l5rgpo4lg2g" rel="noopener noreferrer"&gt;pushes aggregates down for GROUP BY on identity partition columns&lt;/a&gt; in Spark. Today Iceberg answers COUNT, MIN and MAX from metadata only when there is no GROUP BY. Grouping by an identity partition column is the exact case where the metadata already holds the answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Releases and community
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://lists.apache.org/thread/lm4sskbfojckzmo6l3fkko1wcoz5v8h6" rel="noopener noreferrer"&gt;Iceberg Rust 0.11.0 shipped&lt;/a&gt; after Danny Jones ran an RC3 vote that passed with three binding and seven non-binding votes, per &lt;a href="https://lists.apache.org/thread/rfc6bc7lq1xllv2hd4sy80qy39d1vlcc" rel="noopener noreferrer"&gt;the result&lt;/a&gt;. The release adds client-side encryption on the write path and incremental v3 support, including row lineage, nanosecond timestamps, delete vectors and Variant in metadata. The delay came from licensing. Danny &lt;a href="https://lists.apache.org/thread/bvnhbx81620ho11vo1nyps3pnp9x0bth" rel="noopener noreferrer"&gt;closed the loop on the pyiceberg-core attribution issue&lt;/a&gt;: the compiled Python wheels now carry every bundled dependency's NOTICE and LICENSE text. Kevin Liu tested the RC against PyIceberg's integration suite and confirmed every crate passes a &lt;code&gt;cargo publish&lt;/code&gt; dry run.&lt;/p&gt;

&lt;p&gt;Matt Topol &lt;a href="https://lists.apache.org/thread/t53xb61k1gg3qmf5rc4zbmfc3g2zfqvs" rel="noopener noreferrer"&gt;announced the Iceberg Terraform Provider v0.2.0&lt;/a&gt; after a vote with four binding +1s. It adds an &lt;code&gt;iceberg_tables&lt;/code&gt; data source, SigV4 request signing and better OAuth2 and schema evolution support, and it ships to both the Terraform and OpenTofu registries. On the Python side, Orest Tokovenko proposed &lt;a href="https://lists.apache.org/thread/967dbjpjqt6kl9pnwv39vkvlvxv9rkcn" rel="noopener noreferrer"&gt;dropping Python 3.10 from PyIceberg&lt;/a&gt;. Python 3.10 reached end of life on October 1, and PyArrow 26 no longer ships 3.10 wheels. Fokko Driesprong agreed, and the PR is up. Neelesh Salian scheduled an &lt;a href="https://lists.apache.org/thread/0kvq4nc2085zp7r74cs3kykw9v2hczdg" rel="noopener noreferrer"&gt;Iceberg Go sync for November 17&lt;/a&gt; to cover v4 adoption and the remaining breaking changes before a 1.0 tag.&lt;/p&gt;

&lt;p&gt;The most human thread of the week came from a dashboard. Russell Spitzer shared &lt;a href="https://lists.apache.org/thread/ykdw479g77k7p8yd67q930ryvh66ly63" rel="noopener noreferrer"&gt;Iceberg community health stats&lt;/a&gt;, and several people, including Kevin Liu and Ryan Blue, noted his first email never reached them, part of an ongoing ASF mail delivery problem. Jared Yu offered a theory for a weak "first to second contribution" number. He sees new contributors arriving with AI tools, expecting fast progress, then stalling because a small group of maintainers cannot review the volume. His phrase for it was a "dopamine crash." That observation connects to almost every other list this week.&lt;/p&gt;

&lt;p&gt;Two meetups are on the calendar: a &lt;a href="https://lists.apache.org/thread/0bgzpkz65c8pltv9owzwlmmv1kw2hz0t" rel="noopener noreferrer"&gt;virtual Iceberg meetup on November 13&lt;/a&gt; about building an open lakehouse with Spark, Iceberg and the Polaris REST catalog, and a &lt;a href="https://lists.apache.org/thread/3jlgthdg0w921888t39qdjyt0k2wfcc7" rel="noopener noreferrer"&gt;Tokyo meetup on December 7&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;p&gt;Polaris spent the week finishing 1.9.0 and arguing, productively, about where policy belongs. Jean-Baptiste Onofré posted &lt;a href="https://lists.apache.org/thread/3o0cfk9vyx3wm3d0f5rd2j1ovfcws825" rel="noopener noreferrer"&gt;the November board report draft&lt;/a&gt;, and it gives a clear snapshot of the project eight months after graduation. Polaris has 33 committers and 19 PMC members. Ayush Saxena became a committer on October 12. From August through October, 646 pull requests were opened and 529 merged. Excluding dependency bots, those numbers drop to 391 and 294. The open PR backlog grew from 102 to 137, and 76 people opened PRs this quarter, up from 57. The report says it plainly: the bottleneck moved from writing changes to reviewing them.&lt;/p&gt;

&lt;p&gt;The report also lists what shipped in 1.7.0 and 1.8.0. Highlights include event listeners that publish Polaris events to Kafka and OpenTelemetry, GCS principal attribution so the Polaris principal shows up in Google Cloud audit logs, and dedicated privileges for semantic models. Two CVEs were published this quarter, one low and one important, and both were fixed in a release before disclosure. No release shipped in October. 1.9.0 is being finalized now and includes a first beta of Polaris Directories.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who decides about credentials
&lt;/h3&gt;

&lt;p&gt;The longest Polaris thread asked who should control credential vending. Dmitri Bourlatchkov pushed &lt;a href="https://lists.apache.org/thread/wl3b2b3dnk7wn0l8w8clj4r0rr70rgpk" rel="noopener noreferrer"&gt;typed storage config options to skip credential vending in Azure and GCS&lt;/a&gt;, implemented by Vignesh in PR 5884. S3 already had this option. His use case is workload identity: engines already hold ambient credentials, so vended credentials add overhead and a second, unneeded way to reach storage. Yufei Gu countered that clients can simply not send the &lt;code&gt;X-Iceberg-Access-Delegation&lt;/code&gt; header, as Spark and Trino do by default. Dmitri replied that a server cannot assume every client behaves. Yufei then argued that vending is a property of the catalog, namespace or table, not the storage config, since one storage config will soon be shared across many entities. Dmitri disagreed and asked for more voices. This is a real design fork, and it lines up with the new Iceberg &lt;code&gt;none&lt;/code&gt; delegation value.&lt;/p&gt;

&lt;p&gt;That shared storage config is its own thread. Srinivas Rishindra posted &lt;a href="https://lists.apache.org/thread/vlsnqrvboyx1s4r3301zdjk12db5gyqr" rel="noopener noreferrer"&gt;a spec-only PR for multiple storage configurations per catalog&lt;/a&gt;. Storage configurations become named, immutable entities under a catalog. Admins can map a namespace or table name to a configuration before the object exists. The PR replaces two earlier attempts.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;/v1/config&lt;/code&gt; endpoint got closer scrutiny too. The &lt;a href="https://lists.apache.org/thread/rg61qjcknrs60rf63zz5g0ndxsvjscn8" rel="noopener noreferrer"&gt;soft-roll authorization thread for &lt;code&gt;GET /v1/config&lt;/code&gt;&lt;/a&gt; started as a simple merge. Yufei and JB pointed out the deeper issue: Polaris returns the entire catalog properties map as client defaults, mixing client settings like &lt;code&gt;rest-page-size&lt;/code&gt; with server settings like &lt;code&gt;default-base-location&lt;/code&gt;. Gating all of it on one privilege means a client with narrow grants loses settings it needs. Dmitri proposed a compromise. Vignesh dropped the second operation, kept &lt;code&gt;GET_CATALOG_CONFIG&lt;/code&gt; behind a flag that defaults to false, and documented that the default will not flip until a follow-up defines a client-facing config. Dmitri wants it in 1.9.0 and &lt;a href="https://lists.apache.org/thread/qn48m5sdg56j10fqlg45mjk60g9qmp5o" rel="noopener noreferrer"&gt;flagged it in the release thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Yufei raised a sharp edge in &lt;a href="https://lists.apache.org/thread/v4l4dp2gn9hnwd1sym9yc7g4pfnr4yz0" rel="noopener noreferrer"&gt;the &lt;code&gt;ALLOW_UNSTRUCTURED_TABLE_LOCATION&lt;/code&gt; thread&lt;/a&gt;. If an admin turns the flag off, a renamed table whose data still sits under the old namespace starts failing with 403 errors later. Alex Dutra and Russell Spitzer both argued against blocking the change, because it blocks a move from a less secure setup to a more secure one. Russell's framing was clean: an admin who wants a hole closed wants it closed now, and failing closed is fine. The group settled on documentation in 1.9.0 and a read-only admin report after it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics, discovery and federation
&lt;/h3&gt;

&lt;p&gt;The metrics endpoint debate that reached the Iceberg list started here. Anand's &lt;a href="https://lists.apache.org/thread/nr26wj17kvfvvgyyxh63mc7y95j8pgbc" rel="noopener noreferrer"&gt;PR to drop reports instead of returning 500 on a database failure&lt;/a&gt; logs the failure and increments a &lt;code&gt;polaris.metrics.reports.dropped&lt;/code&gt; counter. Dmitri argued retries belong on the server, since metric reports cannot conflict with other writes. Anand agreed and offered to build server-side buffering as a follow-up. Yufei asked to settle the semantics with Iceberg first, which Anand did. Given Daniel Weeks's answer on the Iceberg list, returning 204 for a failed write now looks like the wrong call.&lt;/p&gt;

&lt;p&gt;Dennis Huo proposed &lt;a href="https://lists.apache.org/thread/5w2dk760omggpzpz9pwylhb1wtlqf9rv" rel="noopener noreferrer"&gt;catalog discovery for data-plane clients&lt;/a&gt;. Today an engine has to learn the catalog name out of band, even though Iceberg's &lt;code&gt;/config&lt;/code&gt; endpoint is multi-catalog. Polaris's existing &lt;code&gt;listCatalogs&lt;/code&gt; is a management API that needs a root privilege. The new &lt;code&gt;listAccessibleCatalogs&lt;/code&gt; endpoint returns only catalogs the caller can call &lt;code&gt;getConfig&lt;/code&gt; on. JB and Dmitri approved the PR. This also fills a gap for the in-progress Polaris Shares API.&lt;/p&gt;

&lt;p&gt;Federation and auth produced several smaller threads. Laurent Goujon proposed &lt;a href="https://lists.apache.org/thread/psl1qvvvyt9j2ovgz7zw5t8ky75rjp6q" rel="noopener noreferrer"&gt;chain-aware authorization for views&lt;/a&gt; using Iceberg's optional &lt;code&gt;referenced-by&lt;/code&gt; parameter, which Polaris accepts and then drops today. Passing the chain of views lets an authorizer support definer views. Arnab Karmakar asked for a &lt;a href="https://lists.apache.org/thread/5kz573gropmjp2yxoks31fv9tprqjz1r" rel="noopener noreferrer"&gt;custom STS endpoint for SigV4 federated catalog connections&lt;/a&gt;, matching what storage vending already supports. Austen Tomek posted a draft for &lt;a href="https://lists.apache.org/thread/t2gf0gns82hzyy4yc0wgybkywy67sfgx" rel="noopener noreferrer"&gt;Cloudflare R2 with scoped credential vending&lt;/a&gt;, and Tommy Bollhofer offered to test &lt;a href="https://lists.apache.org/thread/y2p6fh0lsfsy6hht3967xycr8td6vyog" rel="noopener noreferrer"&gt;resumed remote signing work&lt;/a&gt; on FlashBlade storage with Trino, Spark, PyIceberg and DuckDB clients.&lt;/p&gt;

&lt;p&gt;Qiegang Long found a correctness bug worth reading. In &lt;a href="https://lists.apache.org/thread/mkkmwfxr77qkzn5yodwdrjcknss7o4xy" rel="noopener noreferrer"&gt;the conditional entity writes thread&lt;/a&gt;, he showed that a multi-table commit can assert a table is unchanged without including it in the atomic write. Two concurrent commits can both succeed, each changing one table while asserting the other. That is classic write skew. He opened the SPI change as a draft and brought it to the list first, as CONTRIBUTING asks for extension-point changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ossie inside Polaris
&lt;/h3&gt;

&lt;p&gt;Arnab also drafted &lt;a href="https://lists.apache.org/thread/cwzhcz0ogf7p305rrg6g22onnn8tc3mm" rel="noopener noreferrer"&gt;semantic model JSON Schema validation&lt;/a&gt;, validating stored semantic models against a bundled Apache Ossie schema and capping document size at 1 MiB. JB asked him to wait for the Ossie REST API proposal so Polaris does not lock in a validator interface that the standard then changes. Arnab agreed and linked his draft on the Ossie PR. That small exchange is the clearest sign yet that Polaris plans to be a home for Ossie semantic models.&lt;/p&gt;

&lt;h3&gt;
  
  
  How the project works
&lt;/h3&gt;

&lt;p&gt;Yufei opened a timely thread on &lt;a href="https://lists.apache.org/thread/zmj9qck863ck6v21l8k0587rp5zh87tq" rel="noopener noreferrer"&gt;PR quality and sharing the review load&lt;/a&gt;. He asked authors who use AI to act as the first reviewer of what the AI writes. Dmitri agreed and suggested sharpening AGENTS.md. JB pointed out that CONTRIBUTING.md already has a section on AI-assisted contributions and asked reviewers to link it rather than invent new rules. Youngrae Kim shared two practices from the contributor side: write the failing reproduction test first, and review PRs in areas you just touched. Yufei separately proposed &lt;a href="https://lists.apache.org/thread/9fgon6q614ldmbb2bhsnn51bhyn2kgx5" rel="noopener noreferrer"&gt;preferring Java records for simple value types&lt;/a&gt;, noting that AI agents now write the boilerplate that once justified the Immutables library. The group agreed for new code only.&lt;/p&gt;

&lt;p&gt;Alex Dutra also revived &lt;a href="https://lists.apache.org/thread/fbsl7g30n4xortknc0qlv0lsznvdxwg5" rel="noopener noreferrer"&gt;the CHANGELOG merge conflict thread&lt;/a&gt; and implemented &lt;code&gt;changelog.d&lt;/code&gt; fragments using Dmitri's naming scheme. Robert Stupp wrote a reply worth quoting in spirit. When contributors report recurring friction, saying others hit it less often does not resolve it. A useful reply names a drawback, proposes an alternative, or agrees to try.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;p&gt;Arrow shipped a patch release, got new funding, and started a conversation about AI contributions that mirrors Polaris and Iceberg. Raúl Cumplido &lt;a href="https://lists.apache.org/thread/k3h22q3dsq3mhxpoxzwcsmgzmsv0bg3x" rel="noopener noreferrer"&gt;announced Apache Arrow 26.0.1&lt;/a&gt; after &lt;a href="https://lists.apache.org/thread/o0pmjp797bylsg5ncolflo1q8sw5gm02" rel="noopener noreferrer"&gt;an RC1 vote&lt;/a&gt; that drew detailed verification reports across macOS, Debian, Fedora and Ubuntu. The release resolves 19 GitHub issues. The headline fix is security. Javier Guerrero &lt;a href="https://lists.apache.org/thread/jlhfc4ckv2hd7qjq28yf46pwrccrb6r0" rel="noopener noreferrer"&gt;asked whether the Brotli CVE fix lands in 26.0.1&lt;/a&gt;, since Arrow statically linked Brotli 1.0.9, which is affected by CVE-2026-111497. JB confirmed during verification that the bundled Brotli is now 1.2.1. If you ship PyArrow wheels inside a product, upgrade.&lt;/p&gt;

&lt;p&gt;The funding news came from Alenka Frim. Germany's Sovereign Tech Agency &lt;a href="https://lists.apache.org/thread/1n76bmg48746325gn7xg9zqzv3yym49o" rel="noopener noreferrer"&gt;contracted research and development work for PyArrow&lt;/a&gt;. Alenka, Nic Crane, Rok Mihevc and Tadeja Kadunc handled the application, with Open Source Collective as fiscal host. The contract funds an average of 1.9 full-time engineers through the rest of 2026 and all of 2027. It targets work that stalled because no corporate sponsor wanted to pay for it, starting with PyArrow type annotations. Antoine Pitrou, Weston Pace, Neal Richardson, Matt Topol and others replied with congratulations. Public money for core data infrastructure is still rare, and this is a good model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributions, human and otherwise
&lt;/h3&gt;

&lt;p&gt;Andy Grove &lt;a href="https://lists.apache.org/thread/1kx3f7zp9okqsx9oz7b665qlx9ck8mdz" rel="noopener noreferrer"&gt;gave the Java community a heads-up&lt;/a&gt; that DataFusion Comet plans to send PRs upstream for workarounds it carried against arrow-java. He was direct about the method: a human in the loop, AI writing the code, and real issues behind each PR. David Li thanked him and asked for patience, since contributor capacity on arrow-java is low. JB started reviewing. Raúl and Nic Crane, meanwhile, discussed &lt;a href="https://lists.apache.org/thread/fl0bn2p85ox6pjyyokl6hm9k4x1t227p" rel="noopener noreferrer"&gt;the CPython AI usage guidelines&lt;/a&gt;. Python uses one label that asks a PR author to explain the change in their own words, and a second label that closes the PR when that expectation is not met. Nic liked the "give them a chance, then close" approach and the automation that labels allow.&lt;/p&gt;

&lt;p&gt;JB also posted &lt;a href="https://lists.apache.org/thread/oncmqs0z5jtc8yq14xycln829py83mqm" rel="noopener noreferrer"&gt;a heads-up for Arrow Java 20.0.0 release prep&lt;/a&gt;, and Fred Park asked for review of &lt;a href="https://lists.apache.org/thread/jbx5n5rmpnpvs4pobm4k977xzflvlcmm" rel="noopener noreferrer"&gt;a &lt;code&gt;hostnameOverride&lt;/code&gt; property for the Flight SQL JDBC driver&lt;/a&gt;. The property lets users keep TLS certificate checks on when they connect through SSH tunnels, private endpoints or raw IP addresses. Today the only workaround turns certificate verification off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Format and tooling
&lt;/h3&gt;

&lt;p&gt;Mandukhai Alimaa bumped &lt;a href="https://lists.apache.org/thread/pp51hdow3gr51654ywfhffwsk22ywcnz" rel="noopener noreferrer"&gt;the canonical extension type for FILE&lt;/a&gt; and said a vote comes soon if nobody objects. This is Arrow's half of a cross-project effort. Parquet already merged a FILE logical type, Iceberg is designing FILE and VECTOR types, and Arrow needs a canonical in-memory form so engines can pass these values around without custom glue.&lt;/p&gt;

&lt;p&gt;Wes McKinney shared &lt;a href="https://lists.apache.org/thread/3m5ybj1f8mr7fhw1qotv2nvgo33ltfz3" rel="noopener noreferrer"&gt;an update on Arrow's conbench data&lt;/a&gt;. His team has run a Go port, now called BenchDB, in production for a couple of months, with historical data offloaded to Parquet files managed by an embedded DuckDB. He offered help porting Arrow's benchmark runner and said his company is willing to sponsor cloud costs. Arrow Rust 60.1.0 &lt;a href="https://lists.apache.org/thread/cx490bkojcnvfddlvyo3tbtc30q44rtz" rel="noopener noreferrer"&gt;passed its vote&lt;/a&gt; and is on crates.io, and ADBC 25 &lt;a href="https://lists.apache.org/thread/vcbdv4o32qhrq01lgx0y0nlb508np69n" rel="noopener noreferrer"&gt;closed its RC2 vote&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Jeffrey Vo raised the CI issue every Apache Rust and Java project now faces. In &lt;a href="https://lists.apache.org/thread/dmdc8n8oyonyxhw0fjc13zxqx90rfq1m" rel="noopener noreferrer"&gt;the &lt;code&gt;pull_request_target&lt;/code&gt; migration thread&lt;/a&gt;, he warned that GitHub will block the trigger by default on December 2, with brownouts on November 9 and November 16. A scan found arrow, arrow-java, arrow-site and arrow-erlang still use it. Raúl opened a tracking issue the same day.&lt;/p&gt;

&lt;p&gt;Antoine proposed &lt;a href="https://lists.apache.org/thread/kmdcl7rl011b63cytyyq459ddxhdtr8f" rel="noopener noreferrer"&gt;an informal Arrow gathering at Compute! Paris&lt;/a&gt; on the morning of Thursday, November 26. JB and Raúl plan to attend. Ian Cook posted the &lt;a href="https://lists.apache.org/thread/bdfrsq0xrl131sr6p242hdzl6znzxsfg" rel="noopener noreferrer"&gt;November 4 community meeting&lt;/a&gt; at 17:00 UTC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;p&gt;Parquet had the most dramatic vote of the week. Rok Mihevc called a vote to &lt;a href="https://lists.apache.org/thread/fm2373y1d0pk20x6rw8jdkl6kwvfoc32" rel="noopener noreferrer"&gt;add the FINITE_VECTOR logical type&lt;/a&gt; as specified in parquet-format PR 624. The type annotates the same structure used for LIST, so readers that do not know it still see a list. Every non-null vector has exactly &lt;code&gt;num_elements&lt;/code&gt; elements, and every element is finite: no NaN, no null, no infinity. Support came fast from Julien Le Dem, Ryan Blue, Daniel Weeks, Gang Wu, Russell Spitzer and others.&lt;/p&gt;

&lt;p&gt;Then Antoine Pitrou voted -1 (binding). His objection was not about vectors. It was about the sentence "Writers must enforce these rules." Parquet does not require writers to validate STRING data as UTF-8, and Parquet C++ does not do so. If FINITE_VECTOR demands writer-side validation, then the natural expectation is that STRING and JSON do too. That is a much larger change in Parquet's philosophy. Antoine said writers can validate, but it should stay an implementation choice. Rok asked him to propose wording on the PR. He did. Rok updated the PR with feedback from Antoine and Andrew Lamb and moved the vote to the new commit, asking earlier voters to look again. The vote stays open for at least 72 hours.&lt;/p&gt;

&lt;p&gt;That vote grew out of &lt;a href="https://lists.apache.org/thread/14798m7y24nj54n9mq32pxvzdy2d8x5b" rel="noopener noreferrer"&gt;the focused-call follow-up on numeric vector physical representation&lt;/a&gt;. Will Edwards worried that the annotation will "orphan" huge volumes of existing embedding data stored as plain lists of floats. Daniel Weeks told the group to stop arguing about performance, since speed is not the goal of the type, and confirmed that both Iceberg and Delta want it with these semantics. Ryan Blue expects the Iceberg spec to require writers to produce the annotation. Jan Finis drafted an alternative in PR 633 with two composable building blocks: an optional &lt;code&gt;elementCount&lt;/code&gt; on lists and an optional &lt;code&gt;isFinite&lt;/code&gt; property on float types. Rok replied that FINITE_VECTOR is narrow by design and does not block a general fixed-size list later. Julien made the meta point that settled the tone. Consensus on new types stalls easily, and narrowing scope is how projects keep moving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting the spec right
&lt;/h3&gt;

&lt;p&gt;Two threads this week dealt with how Parquet changes its own rules. Julien posted &lt;a href="https://lists.apache.org/thread/yl4xwyg1rs2dw8l5kzzdytsbv81ny9rm" rel="noopener noreferrer"&gt;a taxonomy of format changes&lt;/a&gt; that defines backward compatibility, forward compatibility, correct reads and "correct failed reads," where a reader errors out instead of returning wrong data. It also defines partial compatibility, where a reader can read the subset of columns it understands. Julien wants agreement on definitions before the implementation discussion resumes.&lt;/p&gt;

&lt;p&gt;The FILE type then gave that taxonomy an immediate test. Stefan Grafberger found &lt;a href="https://lists.apache.org/thread/yrghnfgghh6l86vg8hfhovo655c9qwtq" rel="noopener noreferrer"&gt;an ambiguity when a FILE value sets both &lt;code&gt;inline&lt;/code&gt; and &lt;code&gt;uri&lt;/code&gt;&lt;/a&gt;. If the object at the URI changes after the write, one reader returns the inline bytes and another returns the new object, and both follow the spec. He proposed "inline wins," with locator fields kept as provenance. Divjot Arora asked whether changing read rules for a released type counts as a compatible change. Julien answered directly. When the spec under-defines behavior, the project has to pick the correct reading, declare the others bugs, ship fixes, and keep compatibility with the clarified spec from then on.&lt;/p&gt;

&lt;p&gt;Jiayi Wang posted &lt;a href="https://lists.apache.org/thread/mdwh994bdfb60ytgy5cgcx8pdh60lkwh" rel="noopener noreferrer"&gt;the revised Parquet Modular Footer proposal&lt;/a&gt;. The new version stops treating row groups as physical boundaries. A column chunk is now just a contiguous set of pages for one column, and different columns can have different numbers of chunks. Stats are defined over row ranges, not row groups. The confusing &lt;code&gt;EncodedArray&lt;/code&gt; concept is gone, replaced by Parquet pages as modules. Julien called it "fairly transformational" and asked everyone to review, since the project wants to avoid changing the footer again for a while.&lt;/p&gt;

&lt;h3&gt;
  
  
  A release, with lessons
&lt;/h3&gt;

&lt;p&gt;Parquet Java 1.18.2 is close. Fokko Driesprong &lt;a href="https://lists.apache.org/thread/50hd11fj76dfz080h6j6880fylgp2o4b" rel="noopener noreferrer"&gt;proposed the patch release&lt;/a&gt; to carry Jackson 2.22.4 and Thrift and Snappy backports, and Russell noted the Jackson bump lets Iceberg remove a Trivy CVE exception. Manu Zhang volunteered as release manager and used the new automated release scripts. &lt;a href="https://lists.apache.org/thread/4shtj5szb363clbo77m3fp0lx79lxpbq" rel="noopener noreferrer"&gt;RC0 failed&lt;/a&gt; when Gang Wu found two problems. The signing key was missing from the KEYS file, and the source zip contained an entire Thrift build tree with 41 compiled object files and an 80 MB executable. Manu fixed the script and cut &lt;a href="https://lists.apache.org/thread/hhrrv38766df6rrlky61bbs830m26sko" rel="noopener noreferrer"&gt;RC1&lt;/a&gt;. His verification even ran Iceberg's CI against the RC, with the Jackson CVE ignores removed. Russell then spotted an incorrect SCM tag in the POM and pushed a fix to the release automation. New release tooling always finds its bugs on the first real run, and this team found them in public and fixed them fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache DataFusion
&lt;/h2&gt;

&lt;p&gt;DataFusion's list was short but pointed. Andy Grove ran the vote for &lt;a href="https://lists.apache.org/thread/lo6mr6kb05z3o870sn0kyw9yvhk2skvo" rel="noopener noreferrer"&gt;DataFusion Comet 1.2.0&lt;/a&gt;, the Spark accelerator that runs Spark plans on DataFusion. Manu Zhang voted -1 (non-binding) after finding that the JAR file is missing lz4 and zstd licenses, and he opened a fix. Martin Grigorov argued it should not block the release. Manu cited ASF release policy, which requires LICENSE and NOTICE files to cover everything in a package, including binary JARs. Andy approved the fix for the next release and moved forward. The vote &lt;a href="https://lists.apache.org/thread/2m1xwr5bj1wrojppn9rlw84k3kvsxydw" rel="noopener noreferrer"&gt;passed with nine +1 votes, five binding&lt;/a&gt;. The licensing question echoes the Iceberg Rust delay a week earlier: compiled artifacts carry obligations that source releases do not.&lt;/p&gt;

&lt;p&gt;Andrew Lamb opened two threads that set the tone for the next release cycle. He proposed &lt;a href="https://lists.apache.org/thread/sw9t8gh6l5tvxtrcq33pm0f109jh3qpw" rel="noopener noreferrer"&gt;slowing feature velocity to work down the bug backlog&lt;/a&gt; and asked for feedback on a GitHub issue. A few days later he announced that &lt;a href="https://lists.apache.org/thread/kwclzrx5hfklm43qn93hwg44m5f6hl0m" rel="noopener noreferrer"&gt;the 56.0.0 release is starting&lt;/a&gt;, with Xudong cutting &lt;code&gt;branch-56&lt;/code&gt; and an RC expected in days. He also called the vote for &lt;a href="https://lists.apache.org/thread/1k41cd8dg64ygwvg5d3hs8x966m95xqf" rel="noopener noreferrer"&gt;sqlparser-rs 0.64.0&lt;/a&gt;, which passed verification with 1,917 tests and no failures in one report.&lt;/p&gt;

&lt;p&gt;CI cost shaped two more threads. Andy announced that &lt;a href="https://lists.apache.org/thread/6mfjhpmjjzwsfnlslszcggzhfnt282l8" rel="noopener noreferrer"&gt;Comet fork PRs now run CI on the contributor's fork&lt;/a&gt;, not on shared ASF runners, matching what DataFusion and arrow-rs already do. Andrew said the change made a large difference in the runner time the ASF gets charged for. Jeffrey Vo then posted &lt;a href="https://lists.apache.org/thread/why9n4wzn937zxbbtjbgdxpsgjx1vkv0" rel="noopener noreferrer"&gt;a call to migrate away from &lt;code&gt;pull_request_target&lt;/code&gt;&lt;/a&gt; before GitHub's December 2 block, and Kumar Ujjawal found a PR already in progress. Andy also opened &lt;a href="https://lists.apache.org/thread/xbov7h74nhmmxblpknj529ctglx0f094" rel="noopener noreferrer"&gt;a discussion on the future of the &lt;code&gt;datafusion-spark&lt;/code&gt; crate&lt;/a&gt; after the weekly sync.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie
&lt;/h2&gt;

&lt;p&gt;Apache Ossie, the incubating open semantic interchange standard, was the busiest list after Iceberg. The project is preparing its first Apache release, and the week's threads read like a spec hardening under real data.&lt;/p&gt;

&lt;p&gt;Yufei Gu opened &lt;a href="https://lists.apache.org/thread/23f8fchdywvdz6vx5yl3dgqxf52yq7lc" rel="noopener noreferrer"&gt;a thread on stability expectations for the first release&lt;/a&gt;, which will be either 0.2.0-incubating or 0.3.0-incubating. His reading: 0.x is beta, minor releases can break things, patch releases cannot, and 1.0 brings backward compatibility within 1.x. He argued for shipping now, since converters need a version to build against instead of a moving main branch. JB agreed and said 1.0 can follow quickly once something is stable and verified. Kyoung Min Kim added a practical warning. The Python models hard-code the version string &lt;code&gt;0.2.0.dev0&lt;/code&gt; in a &lt;code&gt;Literal&lt;/code&gt; type, so a patch release breaks five converters unless that changes too. JB then posted &lt;a href="https://lists.apache.org/thread/gw799f0922t725t58vdf8d6hnqhrbxgj" rel="noopener noreferrer"&gt;the release resources prep&lt;/a&gt; with three PRs that stage release scripts, bump the version to 0.3.0-incubating and align converter dependencies. Ossie will use the ASF's ATR release tooling.&lt;/p&gt;

&lt;h3&gt;
  
  
  What a table name means
&lt;/h3&gt;

&lt;p&gt;The deepest technical thread asked &lt;a href="https://lists.apache.org/thread/309sy1hwx3noc8lv4krg9srmksfvdcnv" rel="noopener noreferrer"&gt;what &lt;code&gt;Dataset.source&lt;/code&gt; should guarantee&lt;/a&gt;. It ran 17 messages and pulled in real data from three producers. JB started from a gap one step before connections. Catalogs such as Apache Polaris allow dots in table names, yet the Ossie schema treats &lt;code&gt;source&lt;/code&gt; as a plain string with no delimiter or quoting rule. John DaCosta proposed a list form, &lt;code&gt;identifier: [prod, sales, eu.customers]&lt;/code&gt;, with dotted strings kept as shorthand. Damian Waldron ran the proposal against 164 datasets from 31 real ThoughtSpot models. All of them stayed valid shorthand, so the change costs nothing on real data. Chad CH Kim ran 53 sources from his generator and got the same result.&lt;/p&gt;

&lt;p&gt;Richard SG Kim then reframed the problem. The repo's own example uses &lt;code&gt;DATABASE.SCHEMA.RUNWAYS&lt;/code&gt;, where the first two parts are placeholders. A tool reading that file looks for a database literally called DATABASE. He proposed a &lt;code&gt;qualification&lt;/code&gt; field that separates two cases. A relative reference means the consumer must supply the missing parts. An absolute reference with too few parts is a broken document. Damian changed his mind on the list, and JB asked for three conformance behaviors written into the spec: import a relative reference the consumer can bind, reject one it cannot bind while naming the missing parts, and treat a short absolute reference as invalid. JB's key line: a converter should fail loudly, not write an empty value and exit 0.&lt;/p&gt;

&lt;h3&gt;
  
  
  Query semantics
&lt;/h3&gt;

&lt;p&gt;Chris Eubank proposed &lt;a href="https://lists.apache.org/thread/sgjxp8y8kym63ydc4mmmw6zsnorskxbo" rel="noopener noreferrer"&gt;the Layer 3 wide-table query interface&lt;/a&gt;. A Layer 3 query names dimensions, metrics and an optional filter. The engine picks the joins and lowers the query to Layer 2. Measure evaluation reuses Layer 2's &lt;code&gt;AGG()&lt;/code&gt; function, so the spec has one source of truth for measures. Aleksandr Kosachev confirmed the worked examples on ClickHouse and gave it a +1. A GitHub discussion on &lt;a href="https://lists.apache.org/thread/vq3wvrzky5ppy8gshj06c5zj1vcq07jf" rel="noopener noreferrer"&gt;how semantic engines should interpret relationship definitions&lt;/a&gt; explained the split. At Layer 2, relationships are descriptive metadata. At Layer 3, they drive join selection. Julian Hyde added that Layer 3 is limited on purpose: it lets you pick dimensions, metrics, filters and sort order, but offers no joins or unions.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;AGG()&lt;/code&gt; work itself moved in &lt;a href="https://lists.apache.org/thread/79szb82x4qfzkss65xgb02xgv2o4wqbd" rel="noopener noreferrer"&gt;the dataset-scoped metrics thread&lt;/a&gt;. Justin Talbot split his PR in two after JB's review. The first reserves &lt;code&gt;AGG()&lt;/code&gt; in the expression language. The second lets dataset metrics reference source columns, and it now requires the &lt;code&gt;source.&lt;/code&gt; qualifier, so adding a field named &lt;code&gt;quantity&lt;/code&gt; later cannot silently change what &lt;code&gt;SUM(quantity)&lt;/code&gt; means. Julian Hyde pushed on terminology: the project needs to pick "metric" or "measure" and use it consistently. The &lt;a href="https://lists.apache.org/thread/x6xzy2ytpqx6oyqtwbsw9bbxv4ymy9l6" rel="noopener noreferrer"&gt;October 28 working group notes&lt;/a&gt; track both workstreams.&lt;/p&gt;

&lt;p&gt;David Schwarzenbacher proposed fixing &lt;a href="https://lists.apache.org/thread/c1hy8vw7fqcp2y2hhxzj582516wqkoq6" rel="noopener noreferrer"&gt;two OSSIE_SQL_2026 rules by lazy consensus on November 9&lt;/a&gt;. &lt;code&gt;ROUND&lt;/code&gt; breaks ties half away from zero, and &lt;code&gt;/&lt;/code&gt; means true division, so &lt;code&gt;5 / 2&lt;/code&gt; is 2.5. Engines differ on both today, which means the same portable metric returns different numbers on different engines. Johannes Zemlin opened &lt;a href="https://lists.apache.org/thread/bznnb28wfsp4jb9h7356lnr9okf53mx9" rel="noopener noreferrer"&gt;the ANTLR4 reference grammar PR&lt;/a&gt; with valid and invalid conformance fixtures, keeping the written spec normative.&lt;/p&gt;

&lt;h3&gt;
  
  
  Converters, validators and the ecosystem
&lt;/h3&gt;

&lt;p&gt;Validation got a careful survey. Kyoung Min Kim mapped &lt;a href="https://lists.apache.org/thread/lxv3owbtxmz557t8v7fs42o4tvx9sd6w" rel="noopener noreferrer"&gt;what the 23 converters check today and where a vendor hook belongs&lt;/a&gt;. JB proposed two limits: a vendor checker only reads its own payload and dialects, and vendor findings never change core results. Andrew Nepogoda asked for stable, documented error codes and severities instead of free-form strings. Andrew also proposed &lt;a href="https://lists.apache.org/thread/tvlhmc7x7sqpkzgw4ty4z1cd5hz8s7vs" rel="noopener noreferrer"&gt;publishing the &lt;code&gt;apache-ossie&lt;/code&gt; Python package to PyPI&lt;/a&gt;, after main-branch changes broke converters he did not own. JB asked him to wait for the release prerequisites, citing legal checks on published artifacts. His related thread on &lt;a href="https://lists.apache.org/thread/s756h80gthdxk41rqrldvx5td0fggmv1" rel="noopener noreferrer"&gt;shared models and model-based validation&lt;/a&gt; moves ontology types into the shared package.&lt;/p&gt;

&lt;p&gt;New contributors kept arriving. Yurii Melnychuk asked how to &lt;a href="https://lists.apache.org/thread/v9hv2yl8hyq4y2ksv146smqpldfcyx74" rel="noopener noreferrer"&gt;contribute Coginiti's Rust converter&lt;/a&gt;, and Yufei confirmed &lt;code&gt;apache/ossie-converters&lt;/code&gt; is the home, with thin wrappers fine. Chen Ning from Dameng Database &lt;a href="https://lists.apache.org/thread/jx1k0lc9942yxo4yx8rzcltkt9xnrqdx" rel="noopener noreferrer"&gt;introduced himself&lt;/a&gt; with a consumer-side view: a text-to-SQL system is only as good as the semantic model it is grounded on. The GASP SaaS metrics standard &lt;a href="https://lists.apache.org/thread/hyo7xqcyn2339cjtnn31bwsjnxd6rxs3" rel="noopener noreferrer"&gt;announced it publishes its 306 metrics as Ossie files&lt;/a&gt;, with 164 staged datasets. Mike Carlo asked for a vote on &lt;a href="https://lists.apache.org/thread/mhjc9nb2892j5mknjm79kphb9605n3kz" rel="noopener noreferrer"&gt;making &lt;code&gt;custom_extensions&lt;/code&gt; data an object instead of a string&lt;/a&gt;, and Purvaja Narayanaswamy proposed &lt;a href="https://lists.apache.org/thread/fdo1lxy0h9p19jm26w256xxfxjtpl9y8" rel="noopener noreferrer"&gt;an Action concept for the ontology spec&lt;/a&gt; to describe business operations next to terms and metrics. Two GitHub discussions explored &lt;a href="https://lists.apache.org/thread/nm4kj3no0zk92x6c4y38gqwlfj1z5mdh" rel="noopener noreferrer"&gt;graph-based ontology integration with an RDF mapping&lt;/a&gt; and &lt;a href="https://lists.apache.org/thread/sc1nrgnkp8kgcqq6k65mc56q4y62yy47" rel="noopener noreferrer"&gt;whether Ossie is an interchange format or a source of truth&lt;/a&gt;. JB's answer to the second: both, in layers. Mario De Felipe gave the SAP view, where the ERP system owns structure and a small human-owned layer sits on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;p&gt;The biggest theme this week was ambiguity in specs, and how each project chose to resolve it. Iceberg found four readers giving four answers for partial field IDs. Parquet found two readers returning different bytes for the same FILE value. Ossie found that its own example file contains placeholder table names a tool will treat as real. Polaris and Iceberg disagreed for a day about whether a failed metrics write can return success. In every case, the fix followed the same pattern Julien Le Dem described on the Parquet list. Pick one correct reading, write it into the spec, and declare the other behaviors bugs. The Ossie thread went one step further by asking for conformance behaviors, so a tool that cannot do the right thing fails loudly instead of guessing. That principle belongs in every open format.&lt;/p&gt;

&lt;p&gt;The second theme was review capacity in the age of AI-written code. Polaris's board report put numbers on it: 137 open PRs and a backlog that grew 34% in a quarter. Iceberg's health dashboard surfaced the same pattern as a drop in second contributions. Arrow discussed borrowing CPython's labels for AI-generated PRs, and Andy Grove opened his Comet contributions with a note that a human stayed in the loop. DataFusion is pausing features to fix bugs. None of these projects banned AI tools. They are converging on one rule: the person who opens the PR owns it end to end and must explain it in their own words.&lt;/p&gt;

&lt;p&gt;The third theme was vectors and files moving across the whole stack at once. Parquet is voting on FINITE_VECTOR and clarifying FILE. Arrow is about to vote on a canonical FILE extension type. Iceberg treats vectors as primitives, proposed vendor-neutral AI functions over FILE and VECTOR columns, and is weighing whether v4 should write only Parquet. Read together, these threads describe an open lakehouse that stores embeddings and unstructured references as first-class typed data, with the same type meaning the same thing from file to memory to table. That only works because the same people sit on several of these lists. Daniel Weeks, Ryan Blue and Russell Spitzer voted on Parquet's vector type while shaping Iceberg's.&lt;/p&gt;

&lt;p&gt;Release hygiene was the fourth thread. Iceberg Rust waited weeks to fix NOTICE files in compiled wheels. Comet shipped with a known JAR licensing gap and a fix queued. Parquet's new release automation packed a Thrift build tree into a source zip on its first run. Arrow 26.0.1 existed mostly to pick up a Brotli CVE fix. And Arrow, DataFusion and Comet are all racing GitHub's December 2 block on &lt;code&gt;pull_request_target&lt;/code&gt;. Binary artifacts and CI pipelines now take as much care as the code itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;p&gt;The FINITE_VECTOR vote resets its 72-hour clock on the updated commit, so watch whether Antoine Pitrou's wording change holds the earlier +1 votes. Iceberg's default value expressions vote is ready to close, and the &lt;code&gt;_last_updated_time&lt;/code&gt; vote needs Daniel Weeks's type change and Ryan Blue's editing pass. Polaris 1.9.0 is close, and the credential vending debate needs more voices before PR 5884 merges on November 6. Ossie's lazy consensus on &lt;code&gt;ROUND&lt;/code&gt; and division closes November 9, and its first release candidate depends on the version string fix. DataFusion 56.0.0 should produce an RC, and GitHub's first &lt;code&gt;pull_request_target&lt;/code&gt; brownout lands November 9, so expect red CI on any repo that has not migrated.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;If you want to go further on Apache Iceberg, Apache Polaris, Apache Arrow, Apache Parquet and the open lakehouse, I have written a lot more on these topics. You can find all of my books, including &lt;em&gt;Apache Iceberg: The Definitive Guide&lt;/em&gt; and &lt;em&gt;Apache Polaris: The Definitive Guide&lt;/em&gt;, along with my self-published guides on lakehouses and agentic AI, at &lt;strong&gt;&lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>data</category>
      <category>database</category>
      <category>opensource</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>AI Weekly: Gemini 4 Carbon, Open Mistral, AMD's Surge</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Thu, 05 Nov 2026 02:20:51 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/ai-weekly-gemini-4-carbon-open-mistral-amds-surge-38j5</link>
      <guid>https://dev.to/alexmercedcoder/ai-weekly-gemini-4-carbon-open-mistral-amds-surge-38j5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Week of October 28 to November 4, 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Two frontier releases set the tone this week, and they pointed in opposite directions. Google announced its strongest model yet and gave it to almost nobody, while Mistral handed the world a trillion-parameter model to download. Around them, the tooling layer got faster and more careful, the agent standards gained another production-grade SDK, and AMD posted a quarter that says the AI buildout is far from finished.&lt;/p&gt;

&lt;p&gt;This issue follows the usual order. Models come first because they set what is possible. Tooling comes next because it decides who can use those models. Standards follow because they decide whether the pieces connect. Infrastructure closes the main sections because it sets the cost of everything above it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models: Gemini 4 Carbon Leads, but Access Is Narrow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 4 Carbon
&lt;/h3&gt;

&lt;p&gt;Google announced Gemini 4 Carbon on October 28, 2026. Carbon builds on Gemini 4 Argon and targets security and coding work that runs for days, according to &lt;a href="https://cybersecuritynews.com/google-launches-gemini-4-carbon/" rel="noopener noreferrer"&gt;Cybersecurity News&lt;/a&gt;. Google's own &lt;a href="https://blog.google/innovation-and-ai/technology/ai/google-ai-updates-october-2026/" rel="noopener noreferrer"&gt;October recap&lt;/a&gt; calls Carbon its strongest model yet for long-horizon engineering and cybersecurity defense. The timeline matters here. Google introduced Argon on September 30, opened it broadly on October 13, and shipped Carbon 15 days after that expansion, as &lt;a href="https://venturebeat.com/technology/google-unveils-gemini-4-carbon-retaking-the-worlds-no-1-spot-on-updated-harder-benchmarks-but-access-is-limited" rel="noopener noreferrer"&gt;VentureBeat&lt;/a&gt; laid out.&lt;/p&gt;

&lt;p&gt;Access is the catch. Carbon starts with selected cyber defenders in Google's Fairwind program, not a public launch. As of October 30, Google's public model catalog had no Carbon entry and no announced API date, per &lt;a href="https://evolink.ai/blog/gemini-4-carbon-release" rel="noopener noreferrer"&gt;EvoLink's review&lt;/a&gt;. The only Gemini 4 model in the API list is still &lt;code&gt;gemini-4-argon&lt;/code&gt;, and there is no Carbon model ID yet, according to &lt;a href="https://smartscope.blog/en/blog/gemini-4-carbon-availability-release-date-differences-argon-2026/" rel="noopener noreferrer"&gt;SmartScope&lt;/a&gt;. Google also says Carbon sits inside the U.S. government's voluntary pre-release testing process.&lt;/p&gt;

&lt;p&gt;The benchmark numbers are strong, and all of them are vendor-reported. Google reports 88.2% on SEC-bench Pro for vulnerability discovery, 54.8% on ExploitGym for exploitation and 71.0% on CWE-bench for patching. On Terminal-Bench 4.0, Google lists Carbon at 65.2% against Argon's 57.1%. Carbon's GraphWalks score rises from 84.2% to 96.2%, and its ExploitGym score rises from Argon's 42.0%, per &lt;a href="https://evolink.ai/blog/gemini-4-carbon-release" rel="noopener noreferrer"&gt;EvoLink&lt;/a&gt;. Google also says high-severity misalignment alerts fell by almost 80% in internal coding environments, and unsupported claims dropped by roughly half compared with Argon.&lt;/p&gt;

&lt;p&gt;Independent signals line up with Google's claims so far. Carbon scores 59 to Argon's 50 on the Artificial Analysis Intelligence Index v5.0, according to &lt;a href="https://felloai.com/all-we-know-about-google-gemini-4/" rel="noopener noreferrer"&gt;Fello AI's tracker&lt;/a&gt;. Pricing at launch is reported at $2 per million input tokens and $10 per million output tokens, the same introductory rates as Argon, per &lt;a href="https://teamorouter.com/blogs/gemini-4-carbon" rel="noopener noreferrer"&gt;TeamoRouter&lt;/a&gt;. Argon's $2 and $10 rate is set to run until November 30. Google has not restated a context window for Carbon. Third-party listings show 1 million tokens, which matches Argon's published spec.&lt;/p&gt;

&lt;p&gt;So what does Carbon change for practitioners this week? Very little, directly. You cannot call it. What it changes is the planning horizon. Carbon arrived inside the Gemini 4 generation number rather than as Gemini 4.1 or Gemini 5. &lt;a href="https://www.orcarouter.ai/blog/gemini-4-carbon-vs-gemini-4-argon" rel="noopener noreferrer"&gt;OrcaRouter's analysis&lt;/a&gt; read that as a sign Google will ship variants, not versions. If that holds, teams building on Argon today can expect a stronger sibling under the same API family, not a migration to a new one.&lt;/p&gt;

&lt;p&gt;Carbon also confirms a pattern that now covers three frontier labs. OpenAI's GPT-6 Astra rolled out first to its Daybreak cybersecurity program in September. Anthropic's Mythos-class models reached cyber defenders through Project Glasswing before wider release. Google now ships Carbon to Fairwind partners first. The frontier labs agree on one thing: the most capable cyber model goes to defenders before it goes to everyone.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Read This Week's Cyber Benchmarks
&lt;/h3&gt;

&lt;p&gt;Carbon's launch leans on security benchmarks, so it helps to know what each one measures. SEC-bench Pro tests whether a model can find real vulnerabilities in real code. ExploitGym, a benchmark built by UC Berkeley researchers with several frontier labs, tests whether a model can turn a known weakness into a working exploit. CWE-bench tests whether a model can write a correct patch for a weakness class from the Common Weakness Enumeration list. Terminal-Bench 4.0 measures long, multi-step work in a command-line environment, which is closer to how coding agents run in practice.&lt;/p&gt;

&lt;p&gt;Two cautions apply to every number in this section. First, these are lab-run results on lab-chosen settings. Reasoning effort, tool access and time budgets change scores by many points, and labs rarely publish all of those settings at launch. Second, exploitation scores cut both ways. A higher ExploitGym score means a better red-team assistant and a more dangerous model in the wrong hands. That is exactly why Google, OpenAI and Anthropic all gate their strongest cyber models.&lt;/p&gt;

&lt;p&gt;For a data platform team, the useful signal is the patching and secure-code results, not the exploit score. Google says Carbon more than doubled Argon's success rate on an internal secure-code generation test, per &lt;a href="https://cybersecuritynews.com/google-launches-gemini-4-carbon/" rel="noopener noreferrer"&gt;Cybersecurity News&lt;/a&gt;. If that holds when Carbon reaches the API, the main benefit for most teams is safer generated code in pipelines, connectors and SQL, where a single injection flaw exposes a whole warehouse.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistral Large 4 Goes Open Weight
&lt;/h3&gt;

&lt;p&gt;The other major release went the opposite way. On October 29, Mistral released the full downloadable weights for Mistral Large 4, nicknamed "Le Chonk," three weeks after a preview. &lt;a href="https://siliconangle.com/2026/10/29/mistral-releases-open-weights-for-mistral-large-4-providing-sovereign-control-for-the-companys-le-chonk-ai-model/" rel="noopener noreferrer"&gt;SiliconANGLE&lt;/a&gt; covered the launch, which Mistral posted on &lt;a href="https://mistral.ai/news/mistral-large-4-oss/" rel="noopener noreferrer"&gt;its news page&lt;/a&gt;. The weights live on Hugging Face as &lt;a href="https://huggingface.co/mistralai/Mistral-Large-4-1T-A52B" rel="noopener noreferrer"&gt;&lt;code&gt;mistralai/Mistral-Large-4-1T-A52B&lt;/code&gt;&lt;/a&gt;, with an NVFP4 build for Blackwell GPUs. The API model ID is &lt;code&gt;mistral-large-4&lt;/code&gt;, per &lt;a href="https://www.developersdigest.tech/blog/mistral-large-4-weights-huggingface-vllm-license-2026" rel="noopener noreferrer"&gt;Developers Digest&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The model has roughly one trillion total parameters. Reports on active parameters differ. One summary of Mistral's materials cites 49 billion active parameters and training on 3,800 NVIDIA GPUs in Europe, per &lt;a href="https://www.kucoin.com/news/flash/mistral-ai-opens-1t-parameter-mistral-large-4-model-weights" rel="noopener noreferrer"&gt;KuCoin's news digest&lt;/a&gt;. The repository name says 52 billion. Check the model card before you size your hardware.&lt;/p&gt;

&lt;p&gt;The license deserves a careful read. Large 4 ships under the Mistral Ecosystem Open-Weight License, a modified MIT license. You can use, modify, fine-tune and deploy it commercially. Cloud providers that resell it as a hosted service need a separate commercial license from Mistral, per &lt;a href="https://siliconangle.com/2026/10/29/mistral-releases-open-weights-for-mistral-large-4-providing-sovereign-control-for-the-companys-le-chonk-ai-model/" rel="noopener noreferrer"&gt;SiliconANGLE&lt;/a&gt; and &lt;a href="https://www.trendingtopics.eu/mistral-large-4-open-weights-artificial-analysis-meta-china-ranking/" rel="noopener noreferrer"&gt;Trending Topics&lt;/a&gt;. That is a shift from the Apache 2.0 license Mistral used for Large 3. In practice, it means fewer third-party hosts and more self-hosting.&lt;/p&gt;

&lt;p&gt;On independent rankings, the released Large 4 scores 26 points on Artificial Analysis's redesigned open-model index, one more than the preview. That puts it eighth overall and first among models from outside China, per &lt;a href="https://www.trendingtopics.eu/mistral-large-4-open-weights-artificial-analysis-meta-china-ranking/" rel="noopener noreferrer"&gt;Trending Topics&lt;/a&gt;. DeepSeek V4.1 Flash leads the open index at 32. Meta's Muse Spark Open sits at 25. Moonshot's Kimi K3.1 Pro scores 46, but its weights are not yet public.&lt;/p&gt;

&lt;p&gt;Mistral's own numbers, all vendor-reported, focus on coding agents. Mistral cites about 41% on Terminal-Bench 4.0, roughly level with GLM-5.3's reported 40%, per &lt;a href="https://www.online-tech-tips.com/mistral-releases-large-4-open-weight-frontier-ai-model/" rel="noopener noreferrer"&gt;Online Tech Tips&lt;/a&gt;. Mistral also claims Large 4 uses 47% fewer tokens per task. Its reported resilience to prompt-injection attacks rose from 93.3% in the preview to 97.1%, according to &lt;a href="https://forklog.com/en/?p=106097" rel="noopener noreferrer"&gt;ForkLog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is why Large 4 matters even though it does not top any chart. It is a frontier-class model that a European government or bank can run inside its own walls, under a license that permits commercial use. Data teams that cannot send sensitive tables to a hosted API now have another option at this capability level. The 47% token reduction claim, if it holds up in independent tests, also matters more than a few benchmark points. Agents burn tokens, and fewer tokens per task means lower cost per answer.&lt;/p&gt;

&lt;p&gt;Self-hosting a trillion-parameter model is not a laptop project. Even with an NVFP4 build, you need a multi-GPU node with hundreds of gigabytes of accelerator memory before you serve the first request. The realistic path for most teams starts with Mistral's hosted API to test quality, then a decision about whether the data sensitivity justifies owning the hardware. The license shapes that decision too. Because third-party resellers need their own deal with Mistral, the usual menu of cheap inference providers is shorter for Large 4 than for Apache-licensed models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing a Model This Week
&lt;/h3&gt;

&lt;p&gt;The practical picture for teams picking models right now is simple. If you need the strongest Google model you can actually call, that is still Gemini 4 Argon at &lt;code&gt;gemini-4-argon&lt;/code&gt;, with the introductory $2 and $10 pricing through November 30. Carbon is a planning signal, not an option. If you need open weights at the frontier tier and can run your own hardware, Mistral Large 4 is the strongest choice from outside China on the Artificial Analysis open index. If your security team needs the strongest cyber capability, every major lab now runs a vetting program, and you apply rather than sign up.&lt;/p&gt;

&lt;p&gt;Build for swapping. The gap between Argon and Carbon was 15 days. The gap between Large 4's preview and its weights was three weeks. Teams that hard-code one model ID into prompts, evaluations and cost models pay a migration tax every month. Keep model choice in configuration, keep an evaluation set that runs against any model, and track cost per completed task rather than cost per token.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Week's Model Ledger
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2rxnlvv2dtmwua5zf27w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2rxnlvv2dtmwua5zf27w.png" alt="The Week's Model Ledger" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two notes on the ledger. Both rows describe what each lab said or what reporters found, and every benchmark above is vendor-reported unless it cites Artificial Analysis. And no other major lab shipped a new frontier model in this window. OpenAI, Anthropic, Meta, xAI and DeepSeek all spent the week on products, pricing and infrastructure instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling: Faster Agents, Harder Boundaries
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Claude Message Threads Cut Latency for Long Sessions
&lt;/h3&gt;

&lt;p&gt;Anthropic added message threads to the Messages API in public beta on November 2, per &lt;a href="https://claude.com/resources/articles/message-threads" rel="noopener noreferrer"&gt;Anthropic's announcement&lt;/a&gt;. The feature solves a problem every agent builder knows. A coding agent sends hundreds of requests in one session, and each request resends every earlier message and tool result. Once the conversation reaches hundreds of thousands of tokens, the upload alone adds time before the model starts to answer.&lt;/p&gt;

&lt;p&gt;With message threads, the first request sends the full conversation and starts a thread. Each later request sends only the new messages plus the ID of the previous response. Anthropic holds the thread in memory between turns, encrypted and not written to disk. A thread expires five minutes after its last request, and the client then resends the full conversation.&lt;/p&gt;

&lt;p&gt;The numbers are concrete. With message threads on by default for most Claude Code users, requests between 500,000 and 1 million tokens saw median time to first token drop by about 35%. Token usage does not change, since Claude still reads the whole conversation each turn. Standard token rates and rate limits apply. The feature is live on the native Claude Platform, Claude Platform on AWS, Claude in Microsoft Foundry and Claude Models on Google Cloud (Anthropic managed).&lt;/p&gt;

&lt;p&gt;For teams building analytics agents, this is a quiet but real gain. An agent that pulls query results, schema descriptions and sample rows into context grows fast. Every tool result becomes upload overhead on every turn. Threads shift that overhead from per-turn to per-session, which matters most for exactly the long, context-heavy workflows data teams run.&lt;/p&gt;

&lt;p&gt;Anthropic also shipped governance features for enterprise buyers on October 28. Claude Enterprise now offers smart reports, in-app surveys and pooled group budgets, per &lt;a href="https://claude.com/resources/articles/smart-reports-surveys-pooled-budgets" rel="noopener noreferrer"&gt;Anthropic&lt;/a&gt;. Pooled budgets give a group one shared monthly amount, with individual limits kept as a guardrail. Admins get email alerts at 50%, 75%, 95% and 100% of a budget. This is the billing side of agentic work. Agents spend tokens unevenly, and per-seat caps punish the heaviest, most productive users first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Microsoft Opens the Copilot Agent Harness
&lt;/h3&gt;

&lt;p&gt;Microsoft opened the GitHub Copilot agent harness to outside developers through Microsoft Foundry, according to &lt;a href="https://thenewstack.io/tns-daily/october-30-2026/" rel="noopener noreferrer"&gt;The New Stack's October 30 daily&lt;/a&gt;. The harness entered public preview through Foundry Agent Service on Wednesday, October 28. It includes built-in sandboxing, reusable skills, MCP integrations and support for subagents. Microsoft runs the agent and manages its execution environment. Developers choose a supported model and configure instructions and tools.&lt;/p&gt;

&lt;p&gt;This continues a trend that every major lab and platform now follows. The harness, meaning the loop that manages context, tools, permissions and sandboxes around a model, is becoming a product of its own. Anthropic sells Claude Managed Agents. OpenAI ships Codex and ChatGPT Work. Microsoft now rents out the harness behind Copilot. The practical question for builders is portability. The New Stack's own follow-up headline flagged it: the harness makes agents easy until you want to switch. Skills and MCP tools carry across harnesses. Harness-specific orchestration features do not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Embedded Browsers Become an Attack Surface
&lt;/h3&gt;

&lt;p&gt;Security researchers published findings on October 29 about flaws in the embedded browsers of Cursor, GitHub Copilot, Codex, VS Code and Claude Desktop, per &lt;a href="https://cybersecuritynews.com/popular-ai-embedded-browsers-hacked/" rel="noopener noreferrer"&gt;Cybersecurity News&lt;/a&gt;. The researchers named the attack class EMBRACE, short for an embedded browser trusted like a real one. The flaws enabled code execution, file theft and address-bar spoofing on developer machines.&lt;/p&gt;

&lt;p&gt;The core problem is simple. Coding assistants added browsers to preview projects, read pages and track tabs. Those browsers often got extra access to the host app. In one example, Cursor exposed a &lt;code&gt;window.cursorBrowser.send()&lt;/code&gt; bridge that let any loaded page push content into the agent's instruction box without a user gesture. That is prompt injection with a direct pipe. Forever Security says Cursor patched its flaw on October 1. GitHub fixed the spoofing issue in Copilot 1.1.29 on October 13.&lt;/p&gt;

&lt;p&gt;The lesson for teams is about trust boundaries, not one vendor. Anything an agent reads is untrusted input. An embedded browser that can write into the agent's instructions removes the boundary entirely. Check that your tools are on patched versions, and treat any feature that lets web content talk to the agent as a security review item.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Written Code Meets Maintainer Capacity
&lt;/h3&gt;

&lt;p&gt;The coding tools are working, and open source maintainers are feeling it. The Apache Polaris November board report, &lt;a href="https://lists.apache.org/thread/3o0cfk9vyx3wm3d0f5rd2j1ovfcws825" rel="noopener noreferrer"&gt;drafted on the dev list&lt;/a&gt; by Jean-Baptiste Onofré, put numbers on the shift. From August through October, 76 people opened pull requests, up from 57 the quarter before. The open PR backlog grew from 102 to 137. The report states plainly that the main challenge moved from producing changes to reviewing them.&lt;/p&gt;

&lt;p&gt;Other projects describe the same pattern. On the Iceberg list, a community health dashboard showed a weak rate of second contributions, and one contributor &lt;a href="https://lists.apache.org/thread/ykdw479g77k7p8yd67q930ryvh66ly63" rel="noopener noreferrer"&gt;blamed a flood of AI-generated code&lt;/a&gt; landing on a small group of maintainers. Arrow committers &lt;a href="https://lists.apache.org/thread/fl0bn2p85ox6pjyyokl6hm9k4x1t227p" rel="noopener noreferrer"&gt;discussed borrowing CPython's labels&lt;/a&gt; that ask a PR author to explain a change in their own words, then close the PR if they cannot. Polaris maintainers &lt;a href="https://lists.apache.org/thread/zmj9qck863ck6v21l8k0587rp5zh87tq" rel="noopener noreferrer"&gt;agreed&lt;/a&gt; that anyone using AI must review the generated code end to end before submitting it.&lt;/p&gt;

&lt;p&gt;None of these projects banned AI tools, and several maintainers use them daily. The rule they are converging on is ownership. The person who opens the PR answers for every line. For companies that point coding agents at open source dependencies, that rule has a cost: budget human review time for every upstream contribution, or expect it to sit in a queue.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Sets a Hard Date for pull_request_target
&lt;/h3&gt;

&lt;p&gt;GitHub announced on November 2 that, starting December 2, 2026, GitHub Actions will block &lt;code&gt;pull_request_target&lt;/code&gt; events by default in all public repositories, unless an Actions event policy explicitly allows them, per the &lt;a href="https://github.blog/changelog/2026-11-02-pull_request_target-blocked-by-default-december-2" rel="noopener noreferrer"&gt;GitHub changelog&lt;/a&gt;. Enforcement was originally scheduled for November 2. Two brownouts come first. During each window, blocked workflows create failed runs with an error annotation and do not execute.&lt;/p&gt;

&lt;p&gt;This trigger runs a workflow in the context of the base repository, with access to its secrets, even when a fork opens the pull request. Combined with a checkout of the untrusted PR code, it gives attackers a path to repository secrets. GitHub already hardened &lt;code&gt;actions/checkout&lt;/code&gt; v7 in June to block the most common unsafe pattern, as &lt;a href="https://www.infoworld.com/article/4188038/github-actions-hardens-checkout-security-to-block-pwn-request-attacks.html" rel="noopener noreferrer"&gt;InfoWorld&lt;/a&gt; reported.&lt;/p&gt;

&lt;p&gt;The open source data stack is already scrambling. On the Apache Arrow dev list, Jeffrey Vo &lt;a href="https://lists.apache.org/thread/dmdc8n8oyonyxhw0fjc13zxqx90rfq1m" rel="noopener noreferrer"&gt;warned that arrow, arrow-java, arrow-site and arrow-erlang still use the trigger&lt;/a&gt;, with brownouts on November 9 and November 16. He posted &lt;a href="https://lists.apache.org/thread/why9n4wzn937zxbbtjbgdxpsgjx1vkv0" rel="noopener noreferrer"&gt;a matching call to action on the DataFusion list&lt;/a&gt;. If your team maintains a public repo with automation that labels or comments on PRs, audit it this week.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Retirements to Track
&lt;/h3&gt;

&lt;p&gt;The October change most likely to break your setup is a model retirement, not a feature. GitHub Copilot drops Claude Opus 5, Claude Opus 4.8 and GPT-5.6 Terra on November 16, an announcement from October 15 tracked by &lt;a href="https://devshot.co/blog/ai-coding-tool-changes-tracker" rel="noopener noreferrer"&gt;Devshot&lt;/a&gt;. Saved model settings in shared configs and team instructions point at specific models. Update them before the cutoff, or expect fallback behavior that nobody tested.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Short Tooling Checklist
&lt;/h3&gt;

&lt;p&gt;This week's tooling news adds up to a handful of concrete actions for teams that run coding and data agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turn on message threads in any long-running Claude agent you operate, and measure time to first token before and after on your largest sessions.&lt;/li&gt;
&lt;li&gt;Patch Cursor, Copilot and any other assistant with an embedded browser, and review which features let page content reach the agent's instructions.&lt;/li&gt;
&lt;li&gt;Search your public repositories for &lt;code&gt;pull_request_target&lt;/code&gt; before November 9, and move labeling and commenting jobs to safer triggers.&lt;/li&gt;
&lt;li&gt;Replace hard-coded model names in shared Copilot settings and team instruction files before November 16.&lt;/li&gt;
&lt;li&gt;If you evaluate managed harnesses such as Foundry Agent Service or Claude Managed Agents, keep your skills and MCP tools in a form you can move to another harness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Standards: MCP Adds a Tier 1 SDK, A2A Spreads
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Ruby SDK for MCP Reaches Tier 1
&lt;/h3&gt;

&lt;p&gt;The Model Context Protocol (MCP) defines how AI applications connect to tools and data sources. On October 30, the official Ruby SDK for MCP became a Tier 1 SDK, per the &lt;a href="https://blog.modelcontextprotocol.io/posts/ruby-sdk-tier-1/" rel="noopener noreferrer"&gt;MCP blog&lt;/a&gt;. Ruby joins TypeScript, Python, C#, Go and Rust at the top tier. Tier 1 means full spec feature support, a 100% conformance pass rate, support for new spec versions by their release date, issue triage within two business days and critical bug fixes within seven days.&lt;/p&gt;

&lt;p&gt;Starting with version 1.2.0 of the &lt;code&gt;mcp&lt;/code&gt; gem, the Ruby SDK fully supports the 2026-07-28 MCP spec. That revision made MCP stateless at the protocol layer. In Ruby terms, that means four concrete changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The stateless lifecycle (SEP-2575) runs alongside the classic session handshake, including &lt;code&gt;server/discover&lt;/code&gt; and the &lt;code&gt;subscriptions/listen&lt;/code&gt; notification stream.&lt;/li&gt;
&lt;li&gt;Multi round-trip requests (SEP-2322) work on both server and client, with a shim that lets new-style handlers serve older clients.&lt;/li&gt;
&lt;li&gt;Cache hints (SEP-2549) are emitted on the modern path, and the client sends standard and custom HTTP request headers (SEP-2243).&lt;/li&gt;
&lt;li&gt;Roots, Sampling and Logging are marked deprecated per SEP-2577, and clients warn when they declare those capabilities on a 2026-07-28 connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The climb was fast. The SDK was assessed at Tier 3 in March 2026, reached Tier 2 with its 1.0 release in July, and was confirmed at Tier 1 in September. Server conformance went from 25 of 30 scenarios to every scored scenario. Documented features went from 22 of 48 to 46. The team also committed to support the next MCP spec, targeted for late March 2027, by its release date.&lt;/p&gt;

&lt;p&gt;It is worth spelling out what "stateless" buys you, because it changes how MCP servers get deployed. Under the older spec, a client and server ran an initialize handshake and then held a session. Every request in that session had to reach the same server instance, which forced sticky load balancing and made horizontal scaling awkward. Under 2026-07-28, protocol version, client identity and capabilities travel with each request. Any server instance behind a plain load balancer can answer any call. For a data team exposing a catalog, a semantic layer or a query engine over MCP, that means the MCP server scales like any other stateless HTTP service.&lt;/p&gt;

&lt;p&gt;The Ruby SDK serves both eras side by side, so current clients keep working while 2026-07-28 clients use the stateless path. That dual-mode design is the right pattern for any server you run in production right now. Agents in the field will span several MCP versions for months.&lt;/p&gt;

&lt;p&gt;Why should data teams care about a Ruby SDK? A large share of internal business software runs on Rails. Billing systems, admin panels and internal tools hold exactly the operational data that agents need. A Tier 1 Ruby SDK means those teams can expose MCP servers with the same guarantees as Python or TypeScript shops, without a translation service in between.&lt;/p&gt;

&lt;p&gt;The SDK roadmap also covers the tasks extension and the newer Skills extension. The TypeScript SDK added Skills over MCP (SEP-2640) in &lt;a href="https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/v2.4.0" rel="noopener noreferrer"&gt;version 2.4.0&lt;/a&gt; on October 23. A server can publish a folder of skills, and a client can list, read and verify them, with size and digest checks on every file. Skills are reusable instructions for how to do a task. Serving them over MCP means an organization can publish its procedures once and let any compliant agent load them.&lt;/p&gt;

&lt;h3&gt;
  
  
  A2A Keeps Showing Up in Products
&lt;/h3&gt;

&lt;p&gt;The Agent2Agent (A2A) protocol lets agents from different vendors discover each other, delegate tasks and exchange results. It moved to the Agentic AI Foundation in August, joining MCP under the same roof, per &lt;a href="https://www.axios.com/2026/08/17/a2a-agentic-ai-foundation-open-ai-standards" rel="noopener noreferrer"&gt;Axios&lt;/a&gt;. This week brought two product signals.&lt;/p&gt;

&lt;p&gt;On November 4, Adobe put its marketing AI agent inside ChatGPT, Claude and Copilot. The agent tracks campaign results, forecasts audiences and helps with planning, and Adobe built it on both MCP and A2A, per &lt;a href="https://thenextweb.com/news/adobe-cx-enterprise-coworker-chatgpt-claude-gemini-copilot" rel="noopener noreferrer"&gt;The Next Web&lt;/a&gt;. On October 30, Cognigy shipped experimental A2A support in its releases 2026.19 and 2026.20, per &lt;a href="https://www.cognigy.com/product-updates/2026.19-20" rel="noopener noreferrer"&gt;Cognigy's product update&lt;/a&gt;. Its A2A server endpoint exposes a Cognigy agent to other platforms, supports both A2A 1.0 and 0.3, and streams over server-sent events. A separate node lets a Cognigy agent call a remote A2A agent as a single tool.&lt;/p&gt;

&lt;p&gt;The pattern is consistent. Vendors use MCP to reach tools and data, and A2A to reach other agents. The Cognigy detail about supporting both 1.0 and 0.3 is the most practical point here. Version skew is now a real cost. Anyone building an A2A endpoint should plan to serve at least two protocol versions for a while.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Data Standards Are Becoming AI Standards
&lt;/h3&gt;

&lt;p&gt;The most important standards work for data-driven AI this week happened on Apache mailing lists, not in AI foundations. Three threads stand out.&lt;/p&gt;

&lt;p&gt;Apache Parquet opened a vote to &lt;a href="https://lists.apache.org/thread/fm2373y1d0pk20x6rw8jdkl6kwvfoc32" rel="noopener noreferrer"&gt;add a FINITE_VECTOR logical type&lt;/a&gt;. The type marks a list as a fixed-length vector of finite numbers, with no NaN, null or infinity values. Readers that do not know the type still see a plain list. Antoine Pitrou cast a binding -1 over one sentence that required writers to enforce the rules, and Rok Mihevc revised the PR and reset the vote. Iceberg and Delta both want the type. Once it passes, an embedding column in Parquet carries a typed contract instead of a guess.&lt;/p&gt;

&lt;p&gt;Apache Iceberg is building on that base. Alex Stephen proposed &lt;a href="https://lists.apache.org/thread/zv614sbcz0doshl4xpddpcj3oolfgo3b" rel="noopener noreferrer"&gt;vendor-neutral AI functions for FILE and VECTOR types&lt;/a&gt; in the Spark and Flink connectors, covering both generation and embeddings. Kevin Liu asked whether &lt;a href="https://lists.apache.org/thread/5jfzckl0cc9z683kz9vfv41pmhrm1tdb" rel="noopener noreferrer"&gt;Iceberg v4 should stop writing ORC and Avro data files&lt;/a&gt;, in part because the draft vector type does not support ORC. The open table format is choosing Parquet as the home for AI-ready data.&lt;/p&gt;

&lt;p&gt;Apache Ossie, the incubating open semantic interchange standard, spent the week on a question every text-to-SQL agent runs into. In &lt;a href="https://lists.apache.org/thread/309sy1hwx3noc8lv4krg9srmksfvdcnv" rel="noopener noreferrer"&gt;the Dataset.source thread&lt;/a&gt;, contributors tested proposals against 164 real BI datasets and agreed on a rule: a converter that cannot resolve a table reference must fail loudly and name what it needs, not write an empty value and exit cleanly. A new contributor building text-to-SQL at Dameng Database &lt;a href="https://lists.apache.org/thread/jx1k0lc9942yxo4yx8rzcltkt9xnrqdx" rel="noopener noreferrer"&gt;put the stakes plainly&lt;/a&gt;: a text-to-SQL system is only as good as the semantic model it is grounded on. Ossie is also fixing &lt;a href="https://lists.apache.org/thread/c1hy8vw7fqcp2y2hhxzj582516wqkoq6" rel="noopener noreferrer"&gt;ROUND tie-breaking and true division&lt;/a&gt; by lazy consensus on November 9, so the same portable metric returns the same number on every engine. Agents that compute business metrics need that guarantee more than humans do, because nobody checks the agent's arithmetic by eye.&lt;/p&gt;

&lt;p&gt;Catalog standards moved in the same direction. On the Polaris list, Dennis Huo proposed &lt;a href="https://lists.apache.org/thread/5w2dk760omggpzpz9pwylhb1wtlqf9rv" rel="noopener noreferrer"&gt;catalog discovery for data-plane clients&lt;/a&gt;, a new &lt;code&gt;listAccessibleCatalogs&lt;/code&gt; endpoint that returns only the catalogs a caller is allowed to use. Today an engine must learn the catalog name out of band. For an agent, that gap is worse than an annoyance, because the agent has no human to tell it where to look. A discovery endpoint scoped to the caller's own permissions lets an agent find the data it is allowed to see and nothing else.&lt;/p&gt;

&lt;p&gt;The Iceberg REST spec also got a clarification that every agent tool builder will recognize. In &lt;a href="https://lists.apache.org/thread/1nfwnk1j8sppmsry675ygr1jbxyhvrdx" rel="noopener noreferrer"&gt;a thread on the metrics reporting endpoint&lt;/a&gt;, Daniel Weeks made the rule plain: a server should never return a success code for a failed request, and retry policy belongs to the client. MCP tool servers face the same choice whenever a side effect fails after the main work succeeds. The answer is the same. Report what happened, and let the caller decide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure: AMD's Record Quarter and the Memory Squeeze
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AMD's Data Center Business Nearly Doubles
&lt;/h3&gt;

&lt;p&gt;AMD reported third-quarter results on November 3, and the numbers say the AI buildout is accelerating, not plateauing. Total revenue reached about $13.4 billion, up 45%. Data center revenue hit a record $8.5 billion, up 97% year over year, and made up 64% of total sales, per the &lt;a href="https://investing.com/news/transcripts/earnings-call-transcript-amd-tops-q3-2026-estimates-as-stock-jumps-after-hours-93CH-4996894" rel="noopener noreferrer"&gt;Investing.com transcript&lt;/a&gt;. A year earlier, data center was nearly 47% of AMD's revenue, per &lt;a href="https://www.openingbelldailynews.com/p/stock-market-outlook-amd-earnings-data-center-ai-chips" rel="noopener noreferrer"&gt;Opening Bell Daily&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The guidance was the bigger story. AMD expects fourth-quarter revenue of $17 billion, plus or minus 3%, well above the $16.3 billion analysts expected, per &lt;a href="https://www.bloomberg.com/news/articles/2026-11-03/amd-sales-forecast-tops-estimates-on-soaring-ai-chip-demand" rel="noopener noreferrer"&gt;Bloomberg&lt;/a&gt;. On the call, AMD said it expects data center revenue to grow 50% sequentially in Q4. It also said that Q4 will be the quarter its data center AI business passes its server CPU business for the first time.&lt;/p&gt;

&lt;p&gt;The product behind the surge is the Instinct MI450 series, which launched this quarter. The MI450 clusters 72 chips into a single rack-scale system with up to 432 GB of HBM4 memory per GPU, per &lt;a href="https://startupfortune.com/amds-data-center-revenue-nearly-doubles-as-ai-chip-demand-accelerates/" rel="noopener noreferrer"&gt;Startup Fortune&lt;/a&gt;. Oracle Cloud Infrastructure committed to 50,000 MI450 GPUs starting in 2026. That is the largest single public cloud commitment to AMD accelerators to date.&lt;/p&gt;

&lt;p&gt;For practitioners, the AMD story is about supply and price. A second vendor shipping rack-scale systems at volume puts pressure on GPU rental rates and on the per-token prices labs charge. It also raises the stakes for software portability. Code that assumes one vendor's kernels and libraries now leaves money on the table. Open formats help here too. A query engine reading Arrow buffers and Parquet files does not care which accelerator sits under it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory Is the Real Bottleneck
&lt;/h3&gt;

&lt;p&gt;The supply chain reports this week point to memory, not compute, as the gating factor. Samsung reportedly concluded pricing negotiations for its 2027 high-bandwidth memory (HBM) supply and targets volume production of HBM4E in the first half of 2027, per a &lt;a href="https://404kresearch.substack.com/p/456x-morning-brief-november-4-2026-f25" rel="noopener noreferrer"&gt;November 4 industry brief&lt;/a&gt;. The same brief cites a reported multi-year agreement with AMD covering HBM4 and standard DRAM.&lt;/p&gt;

&lt;p&gt;Base dies are the newer pressure point. An HBM stack sits on a logic base die, and next-generation designs customize that die per customer. Reports say Samsung's Taylor, Texas Fab 2 plans to dedicate most of its planned HBM base-die capacity to AMD, with equipment move-in in 2029 and volume production in 2030. Separate reports say NVIDIA has asked for its custom HBM base dies to be built at TSMC, per a &lt;a href="https://404kresearch.substack.com/p/456x-morning-brief-november-3-2026-fac" rel="noopener noreferrer"&gt;November 3 industry brief&lt;/a&gt;. Treat both as reports, not confirmed contracts. The direction is clear either way. Memory capacity is being locked up years in advance, and the customization of base dies ties each memory supplier more tightly to each chip designer.&lt;/p&gt;

&lt;p&gt;Analysts also flagged HBM supply as the main near-term risk to AMD's own GPU shipments, per &lt;a href="https://tradingkey.com/news/market-movers/262274635-market-movers-amd-20261104" rel="noopener noreferrer"&gt;TradingKey&lt;/a&gt;. When memory is scarce, waste at the model and data layers stops being a rounding error. A model that uses 47% fewer tokens per task, as Mistral claims for Large 4, needs less KV cache per request. A context-handling feature like message threads does not cut tokens, but it cuts transfer and wait time. Every layer of the stack is now being judged on how much memory it wastes.&lt;/p&gt;

&lt;p&gt;Power is the other constraint. The same November 4 brief reports that NVIDIA is working with utilities to explore throttling data center power draw during grid peaks. Treat that as a report until NVIDIA describes it publicly. The idea is sound either way. A training cluster that can shed load for an hour when the grid strains is easier to permit and cheaper to connect than one that demands a fixed peak.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the Infrastructure News Means for Buyers
&lt;/h3&gt;

&lt;p&gt;Three practical points come out of this week's numbers. First, accelerator choice is widening. AMD shipping rack-scale MI450 systems at volume, with a major public cloud commitment behind them, means more capacity on the market in 2027 and more pricing pressure on hosted inference. Second, memory shortages will shape what gets built. Models and serving stacks that cut KV cache use, and data formats that let engines read less, buy real capacity when HBM is booked years ahead. Third, portability now has a dollar value. Workloads tied to one vendor's kernels cannot follow the best price, while engines built on open in-memory formats like Apache Arrow move between accelerators with far less friction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Formats and Accelerators Meet in the Lakehouse
&lt;/h3&gt;

&lt;p&gt;Two Apache threads this week show where accelerated hardware meets open data formats. On the Iceberg list, the TornadoVM team shared &lt;a href="https://lists.apache.org/thread/sm9mwhs7qlgfw250l36bh2m0k29rhdn7" rel="noopener noreferrer"&gt;a proof of concept for GPU-accelerated merge-on-read scans and table maintenance&lt;/a&gt; built on Iceberg 1.12 public APIs. TornadoVM compiles plain Java methods into GPU kernels. The team reports 3.9x to 4.8x faster merge-on-read scans at 5 billion rows on two A10 GPUs versus 128 CPU threads. It also reports converting equality deletes to deletion vectors 106x cheaper than Spark compaction on TPC-DS SF100. Those are the project's own numbers. The interesting design choice is that Iceberg still plans and commits every change. The GPU only does the per-row work in between.&lt;/p&gt;

&lt;p&gt;On the Parquet list, Jiayi Wang posted &lt;a href="https://lists.apache.org/thread/mdwh994bdfb60ytgy5cgcx8pdh60lkwh" rel="noopener noreferrer"&gt;a revised proposal for the Parquet Modular Footer&lt;/a&gt;. It stops treating row groups as physical boundaries and defines statistics over row ranges instead. Julien Le Dem called it "fairly transformational." A footer that describes columns independently makes it easier for readers to fetch only the metadata they need, which matters for wide AI feature tables with thousands of columns.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Python Data Stack Gets Funded and Patched
&lt;/h3&gt;

&lt;p&gt;One more infrastructure item sits under nearly every AI data pipeline. Germany's Sovereign Tech Agency &lt;a href="https://lists.apache.org/thread/1n76bmg48746325gn7xg9zqzv3yym49o" rel="noopener noreferrer"&gt;contracted research and development work for PyArrow&lt;/a&gt;, the Python library that moves columnar data between Pandas, Polars, DuckDB, Spark and most model-training data loaders. The contract funds an average of 1.9 full-time engineers through the rest of 2026 and all of 2027, aimed at work no corporate sponsor wanted to pay for. The first target is PyArrow type annotations, which help both human developers and coding agents write correct code against the library.&lt;/p&gt;

&lt;p&gt;The same week, Apache Arrow &lt;a href="https://lists.apache.org/thread/k3h22q3dsq3mhxpoxzwcsmgzmsv0bg3x" rel="noopener noreferrer"&gt;released version 26.0.1&lt;/a&gt;. The patch bundles Brotli 1.2.1, replacing a statically linked Brotli 1.0.9 affected by CVE-2026-111497, as &lt;a href="https://lists.apache.org/thread/jlhfc4ckv2hd7qjq28yf46pwrccrb6r0" rel="noopener noreferrer"&gt;a user asked on the list&lt;/a&gt;. If you ship PyArrow inside a container or a product, rebuild on 26.0.1. Arrow is also preparing a vote on a &lt;a href="https://lists.apache.org/thread/pp51hdow3gr51654ywfhffwsk22ywcnz" rel="noopener noreferrer"&gt;canonical FILE extension type&lt;/a&gt;, the in-memory partner to Parquet's FILE logical type, so engines can pass references to images, audio and documents without custom glue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practitioner Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plan for gated frontier models.&lt;/strong&gt; The strongest model from each major lab now reaches vetted security partners first. Build your roadmap on what you can call today, and treat announcements as previews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price open weights by total cost.&lt;/strong&gt; Mistral Large 4 is free to download, but serving it needs serious hardware, and its license limits who can host it for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cut wasted context.&lt;/strong&gt; Message threads lower latency without lowering tokens. Pair them with tighter tool results, so agents carry less text from turn to turn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trust boundaries.&lt;/strong&gt; Embedded browsers, CI triggers and agent harnesses all moved this week because untrusted input reached privileged code. Look for the same pattern in your own agent tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardize the data layer.&lt;/strong&gt; Typed vectors in Parquet, AI functions in Iceberg and portable metrics in Ossie give agents data they can use without guessing. Push your vendors toward these open standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Data Layer Tie-In
&lt;/h2&gt;

&lt;p&gt;Every section above lands on the same question: does the agent understand the data it touches? NVIDIA's Agent Knowledge Foundation, announced at GTC Berlin on October 21, gives one answer. It bundles retrieval models, a new Auto Ontology library and models for structured data, per &lt;a href="https://thenewstack.io/nvidia-agent-knowledge-foundation/?p=22841182" rel="noopener noreferrer"&gt;The New Stack&lt;/a&gt;. &lt;a href="https://github.com/NVIDIA/auto-ontology" rel="noopener noreferrer"&gt;Auto Ontology&lt;/a&gt; is an Apache 2.0 framework that builds a graph-based semantic layer over databases so agents generate SQL with approved definitions and lineage. It exposes that context through an MCP server, a CLI and a REST API.&lt;/p&gt;

&lt;p&gt;The open lakehouse community is working on the same problem from the standards side. Apache Ossie defines a portable semantic model. Apache Polaris contributors are &lt;a href="https://lists.apache.org/thread/cwzhcz0ogf7p305rrg6g22onnn8tc3mm" rel="noopener noreferrer"&gt;preparing to store and validate Ossie models&lt;/a&gt;, and they paused that work so it aligns with Ossie's REST API before anything locks in. Iceberg and Parquet are giving vectors and files first-class types. MCP is the common door agents use to reach all of it.&lt;/p&gt;

&lt;p&gt;Put those together and the stack for trustworthy agentic analytics comes into focus. Data sits in open table formats on object storage. A catalog governs access. A semantic layer, described in an open standard, tells the agent what each metric means and how to compute it. MCP connects the agent to that layer. Each piece is open, and each can be replaced without rewriting the others. That is the outcome worth pushing for, because the alternative is a semantic layer locked inside one vendor's agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;p&gt;GitHub's first &lt;code&gt;pull_request_target&lt;/code&gt; brownout hits on November 9, so expect failed CI runs on public repos that have not migrated. Ossie's lazy consensus on ROUND and division closes the same day. Copilot's model retirements and the second brownout both land on November 16. Watch Google's Gemini API changelog for the first &lt;code&gt;gemini-4-carbon&lt;/code&gt; entry, since that, not the announcement, is when Carbon becomes something you can build on. Watch for independent benchmark replication of Mistral Large 4's coding and token-savings claims. And watch the Parquet FINITE_VECTOR vote, which resets its 72-hour clock on the revised commit. Argon's introductory $2 and $10 pricing also ends November 30, so budget for whatever comes next.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;The tools change every week, but the foundations under them move slower. If you want to go deeper on agentic AI, AI-assisted development, MCP, and the open lakehouse that gives agents trustworthy data, you can find all of my books at &lt;strong&gt;&lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Apache Data Lakehouse Weekly: October 21-28, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 28 Oct 2026 14:17:35 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-21-28-2026-5f15</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-21-28-2026-5f15</guid>
      <description>&lt;p&gt;Last week the projects decided what new things the lakehouse should hold: files, vectors and semantic models. This week they worked on whether anyone can trust what those things say about themselves. Iceberg passed votes on tight stats, table constraints and a new REST header value, and opened another on stats-only fields. Polaris worked out who is allowed to skip credential vending, how storage configuration should live in a catalog, and how a transaction should span tables. Parquet kept arguing about what a vector promises and what a null count actually counts. Ossie, the incubating semantic interchange project, started preparing its first release.&lt;/p&gt;

&lt;p&gt;Underneath the spec work sat a harder problem that showed up on almost every list. Maintainers on Iceberg, Arrow and Polaris all said, in different words, that AI-generated pull requests and shared CI capacity are now growing faster than the number of people who can review and run them. That theme gets its own section near the end, because it may shape these projects more over the next year than any single spec change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The v4 spec learns to make promises
&lt;/h3&gt;

&lt;p&gt;The biggest outcome of the week was Anoop Johnson's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15596.html" rel="noopener noreferrer"&gt;vote to replace per-column tight_bounds with a file-level tight_stats flag&lt;/a&gt;. It &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15661.html" rel="noopener noreferrer"&gt;passed on October 27&lt;/a&gt; with 9 binding +1s from Amogh Jahagirdar, Daniel Weeks, Eduard Tudenhöfner, Fokko Driesprong, Gang Wu, Russell Spitzer, Ryan Blue, Steven Wu and Szehon Ho. Andrei Tserakhau, Anurag Mantripragada, Hongyue Zhang and Huaxin Gao added non-binding +1s, and nobody voted against it.&lt;/p&gt;

&lt;p&gt;The change sounds small but it matters a great deal for query planning. In the earlier design, each column carried its own flag saying whether its lower and upper bounds were exact. The new design puts one &lt;code&gt;tight_stats&lt;/code&gt; flag on the data file, and that flag covers null counts, NaN counts and value counts as well as bounds. If the flag is missing, readers must assume the stats are not tight. This is the vote that came out of Anoop's discussion last week about extending "tight" beyond min and max. With it in place, an engine can answer &lt;code&gt;count(*) WHERE col IS NULL&lt;/code&gt; from metadata alone and know the answer is exact.&lt;/p&gt;

&lt;p&gt;Two details in the spec are worth calling out for anyone who runs table maintenance. Deletion vectors no longer widen stats automatically, so applying a delete does not quietly downgrade a file's metadata. And engines may re-tighten stats without rewriting data files. That opens the door to a cheap maintenance job that recomputes stats on files whose rows were partly deleted, instead of a full compaction. The spec PR is apache/iceberg#18585.&lt;/p&gt;

&lt;h3&gt;
  
  
  Table constraints arrive, and primary keys replace identifier fields
&lt;/h3&gt;

&lt;p&gt;Huaxin Gao's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15594.html" rel="noopener noreferrer"&gt;vote to add table constraints to the v4 spec&lt;/a&gt; &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15660.html" rel="noopener noreferrer"&gt;also passed on October 27&lt;/a&gt;, with 8 +1s, 5 of them binding by Huaxin's count. Ryan Blue, Russell Spitzer, Steven Wu and Eduard Tudenhöfner marked their votes binding, and Szehon Ho also voted +1. Andrei Tserakhau, Anoop Johnson and Junwang Zhao voted non-binding.&lt;/p&gt;

&lt;p&gt;The spec adds three constraint kinds to table metadata: &lt;code&gt;check&lt;/code&gt;, &lt;code&gt;unique&lt;/code&gt; and &lt;code&gt;primary-key&lt;/code&gt;. Each one carries an &lt;code&gt;enforced&lt;/code&gt; flag, so a table can declare a constraint that the writer promises to honor without the catalog trying to police every commit. More precisely, the flag controls whether writers must verify the rows they add or modify. An unenforced constraint is still useful. It tells the optimizer and downstream tools what the data is supposed to look like, which is how many warehouses have long treated declared keys. Each snapshot also records a status for every constraint: validated, valid, invalid or unvalidated. That last part is the clever bit. It means a reader can tell whether a constraint was actually checked for the data it is about to read, rather than trusting a declaration that may have gone stale three commits ago.&lt;/p&gt;

&lt;p&gt;In v4 the primary key replaces identifier field IDs, the older mechanism used mostly for upserts and CDC. Upgraded tables get an unenforced primary key built from their identifier fields, so nothing breaks on migration. During review, Ryan raised &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15605.html" rel="noopener noreferrer"&gt;a question about type promotion&lt;/a&gt; for columns referenced by a check constraint. Huaxin's reply says his comments were addressed, so check PR #17822 for the final rule before relying on it. For practitioners, this is the change that will matter most in a year's time. Optimizers in many engines already use declared keys for join elimination and better cardinality estimates, and Iceberg tables will finally have a standard place to declare them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stats-only fields head to a vote
&lt;/h3&gt;

&lt;p&gt;Ryan Blue &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15604.html" rel="noopener noreferrer"&gt;opened a discussion on stats-only fields&lt;/a&gt; on October 22 and moved it to &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15668.html" rel="noopener noreferrer"&gt;a formal vote&lt;/a&gt; on October 27. Earlier drafts called the idea non-materialized columns. A new &lt;code&gt;stats-fields&lt;/code&gt; list assigns table field IDs to things that are not columns, such as the output of a partition transform or an expression like &lt;code&gt;to_lower_case(name)&lt;/code&gt;. Their stats can then live in &lt;code&gt;content_stats&lt;/code&gt; and drive pruning without ever appearing in the schema.&lt;/p&gt;

&lt;p&gt;Ryan explained the name change in his opening mail. "Stats-only fields" says what the feature does, while "non-materialized columns" described what it is not. He also considered unifying the idea with generated columns, such as default-value expressions, and decided against it for the same reason the group kept expressions inside check constraints. Splitting them would mean adding an expression and then a column that depends on it, and that indirection buys nothing. The spec PR is apache/iceberg#18405.&lt;/p&gt;

&lt;p&gt;Péter Váry initially wanted to tie the feature to derived or generated columns, which he revived last week. Ryan argued that keeping it out of the schema is simpler and avoids committing the spec to generated-column semantics too early. Péter &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15623.html" rel="noopener noreferrer"&gt;came around and gave his +1&lt;/a&gt;. In the vote thread, binding +1s from &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15671.html" rel="noopener noreferrer"&gt;Daniel Weeks&lt;/a&gt;, &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15672.html" rel="noopener noreferrer"&gt;Amogh Jahagirdar&lt;/a&gt; and &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15673.html" rel="noopener noreferrer"&gt;Steven Wu&lt;/a&gt; arrived quickly. Anoop Johnson and Maximilian Michels added non-binding support. The vote runs 72 hours and should close around October 30.&lt;/p&gt;

&lt;p&gt;The proposal already has a follow-up. Andrei Tserakhau &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15652.html" rel="noopener noreferrer"&gt;started a thread on collation bounds&lt;/a&gt;, which would let an engine keep separate min and max values for a case-insensitive or locale-aware ordering of a string column. Ryan &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15665.html" rel="noopener noreferrer"&gt;prefers a new type&lt;/a&gt; with standardized collation metadata over overloading stats-only fields. Either way, the pattern is clear: v4 is turning stats from a best-effort hint into a typed, declared contract.&lt;/p&gt;

&lt;h3&gt;
  
  
  The File type creates its first follow-up work
&lt;/h3&gt;

&lt;p&gt;Last week the community voted a File type into v4, letting a column hold a reference to an external object such as an image or PDF. This week the follow-ups began. Sung Yun &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15648.html" rel="noopener noreferrer"&gt;proposed a batch remote signing endpoint&lt;/a&gt; for the REST spec. His reasoning is simple. With remote signing, a client asks the catalog to sign each object request. When a table holds one Parquet file per few million rows, that is manageable. When each row can point at its own object, the number of signatures grows with rows instead of files. The design is at s.apache.org/irc-batch-signing and the PR is #18254.&lt;/p&gt;

&lt;p&gt;A related REST change passed outright. youngrae kim's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15632.html" rel="noopener noreferrer"&gt;vote to allow "none" as an X-Iceberg-Access-Delegation value&lt;/a&gt; &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15675.html" rel="noopener noreferrer"&gt;passed with 7 +1s&lt;/a&gt;, including binding votes from Yufei Gu, Sung Yun and Eduard Tudenhöfner. A client can now tell the server it does not want any delegated credentials, for example because it already has its own storage access. This closes a long-running awkward case where a server could not satisfy a delegation request and had no clean way to say so. As the Polaris section shows, it landed just in time for Polaris to use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Auth, CDC and correctness
&lt;/h3&gt;

&lt;p&gt;Alex Dutra brought back an idea from a Community Over Code Glasgow session on REST client auth. He &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15655.html" rel="noopener noreferrer"&gt;proposed a new BearerAuthManager&lt;/a&gt; that reads a token from a local file and simply sends it. The work on a second-generation OAuth2Manager stalled on scope creep, so the plan is to shrink that effort and separate who produces a token from who uses it. A sidecar or platform agent refreshes the file, and the Iceberg client stays out of the identity business. The Glasgow group agreed on two tracks. The first is a downscoped OAuth2Manager v2 with minimal functionality, done right and standards-compliant. The second is the BearerAuthManager, which is opinionated, lightweight and has no dependencies. Users who need in-process authentication would keep OAuth2Manager, and everyone else could switch to the file-based approach. Alex is starting with the bearer manager because it is simpler, and he promised a separate thread for the downscoped OAuth2 work. It addresses an issue that has been open for about a year (#13550).&lt;/p&gt;

&lt;p&gt;On streaming ingestion, koodin 9 &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15638.html" rel="noopener noreferrer"&gt;proposed Kafka Connect CDC writes without equality deletes&lt;/a&gt;. The sink coordinator would resolve deletes against the base snapshot into deletion vectors and commit the data and DVs together in one RowDelta. Since v4 already forbids writing new equality deletes, the sink needs some answer here. The background matters. An earlier delta writer for the sink (#14797) was never merged, mainly because equality deletes committed by a streaming sink slow down every reader until compaction runs. Flink takes a different route, converting equality deletes into deletion vectors after commit with a maintenance task that keeps a primary key index in Flink state. The new proposal does the lookup before commit with a stateless scan that prunes candidate files by partition and deleted keys. It reads only the key columns and row positions, and hides the lookup behind an interface so a real index can replace it later. For concurrency, the RowDelta validates from the base snapshot, uses the deleted keys as the conflict filter, and checks that the files the new DVs point to still exist, which catches a concurrent compaction. Andrei Tserakhau &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15647.html" rel="noopener noreferrer"&gt;asked whether the sink should do CDC at all&lt;/a&gt;, since append-only ingestion plus a Spark MERGE already works. Péter Váry &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15649.html" rel="noopener noreferrer"&gt;asked for performance testing first&lt;/a&gt; and warned that a slow resolve step could starve concurrent commits.&lt;/p&gt;

&lt;p&gt;Two correctness threads deserve attention from anyone maintaining an Iceberg implementation. Marius Grama &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15583.html" rel="noopener noreferrer"&gt;reported a silent correctness bug&lt;/a&gt;, first seen in Trino, where stats on non-key columns in equality delete files wrongly prune delete manifests. The fix in PR #18338 ignores those stats, and Péter's view is that equality deletes are being phased out anyway. Andrei also &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15585.html" rel="noopener noreferrer"&gt;found that NaN and Infinity do not round-trip&lt;/a&gt; in JSON single-value serialization. Java writes the strings "NaN" and "Infinity" but cannot read them back. iceberg-rust, PyIceberg and iceberg-cpp write null and lose the value. iceberg-go refuses to write them at all. Raghvendra Yadav backed standardizing on the strings Java already writes. It is a small bug, but five implementations disagreeing on one value is exactly the kind of drift a multi-language spec has to catch early.&lt;/p&gt;

&lt;p&gt;Yuya Ebihara's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15573.html" rel="noopener noreferrer"&gt;HLL sketch proposal for Puffin&lt;/a&gt;, covered last week, picked up +1s from Denys Kuzmenko, Junwang Zhao, Raghvendra Yadav and Jian Chen. It would add &lt;code&gt;apache-datasketches-hll-v1&lt;/code&gt; next to Theta for distinct-value estimates. The REST OpenAPI thread from Yong Zheng also &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15570.html" rel="noopener noreferrer"&gt;drew replies&lt;/a&gt; from Alex Dutra, Péter Váry and Yufei Gu about making the spec valid OpenAPI 3.1.&lt;/p&gt;

&lt;h3&gt;
  
  
  Releases, subprojects and security
&lt;/h3&gt;

&lt;p&gt;The only release vote on the list was the Iceberg Terraform Provider. Matt Topol's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15610.html" rel="noopener noreferrer"&gt;0.2.0 RC0&lt;/a&gt; got a full verification and +1 from Xuanwo, then a &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15625.html" rel="noopener noreferrer"&gt;-1 from Alex Stephen&lt;/a&gt; because LICENSE and NOTICE files were out of date. Matt cut &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15644.html" rel="noopener noreferrer"&gt;RC1 on October 26&lt;/a&gt;. Version 0.2.0 matters because it is the release that lets the provider be listed in the Terraform Registry, which makes managing Iceberg catalogs as infrastructure code much easier.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15640.html" rel="noopener noreferrer"&gt;Rust sync notes&lt;/a&gt;, posted by Danny Jones, say the group agreed to ship 0.11 from the current branch "ASAP" without recutting. The DataFusion Iceberg integration has moved out of the repo and will see its first release under DataFusion governance. Matt opened a v4 tracking issue, iceberg-rust#3513, and the group discussed a File Format API like the one in Java, with a Vortex proposal doc linked. The group also agreed to start a roughly three-month community roadmap modeled on DataFusion's, partly to give contributors a clear signal about which PRs are wanted. Kevin Liu &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15657.html" rel="noopener noreferrer"&gt;uploaded the recording&lt;/a&gt; to YouTube.&lt;/p&gt;

&lt;p&gt;For Python users, Orest Tokovenko &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15676.html" rel="noopener noreferrer"&gt;proposed dropping Python 3.10 from PyIceberg&lt;/a&gt;. Python 3.10 reached end of life on October 1, and PyArrow 26 ships no 3.10 wheels. The proposal sets &lt;code&gt;requires-python &amp;gt;=3.11&lt;/code&gt; and raises the PyArrow floor from 18 to 26 in one PR. If you pin old PyArrow versions in production, now is the time to plan an upgrade.&lt;/p&gt;

&lt;p&gt;Russell Spitzer also posted a &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15674.html" rel="noopener noreferrer"&gt;Confluent connector vulnerability update&lt;/a&gt;. The vulnerable 1.9.2 Kafka Connect zip on Confluent Hub was uploaded by Confluent, not built by the project, so the project will not patch that artifact. PR #15212 adds an official runtime zip instead. The only remaining scanner findings are Jackson CVEs inside Parquet's bundled copy, which ties neatly into the parquet-java 1.18.2 release discussed below.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community health
&lt;/h3&gt;

&lt;p&gt;The thread most worth reading in full is Russell Spitzer's &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15654.html" rel="noopener noreferrer"&gt;Iceberg Community Health Stats&lt;/a&gt;. Russell built a dashboard at russellspitzer.com/iceberg-community-health and flagged a drop in contributors who come back for a second PR after their first, especially in the Java repo. He took the idea from Patrick McFadin's Cassandra project health dashboard, which he saw at Community Over Code. Russell said he has no prescriptions yet, only worry about the decline in "First to Second" contributors across the ecosystem. He was also open about how he built it, describing the site as "pretty viciously vibe-coded." The data and code are on GitHub, and he invited people to dig in. Jared Yu said AI-generated PRs are burying a small group of maintainers, which slows reviews for everyone, including genuine first-timers. Several people said Russell's original mail landed in spam, and Kevin Liu is chasing ASF Infra about delivery. Hongyue Zhang asked to put the dashboard on the community sync agenda. Yufei Gu and Ryan Blue also joined the discussion.&lt;/p&gt;

&lt;p&gt;On the event side, Talat Uyarer &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15658.html" rel="noopener noreferrer"&gt;finalized the Bay Area meetup agenda&lt;/a&gt; for November 2 at Google in Sunnyvale. Anurag Mantripragada &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15659.html" rel="noopener noreferrer"&gt;announced that the Iceberg and Spark sync goes monthly&lt;/a&gt; at 9 AM Pacific, starting November 11.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.9.0: scope settles, the date holds for now
&lt;/h3&gt;

&lt;p&gt;Polaris 1.9.0 is still in the &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06055.html" rel="noopener noreferrer"&gt;scoping thread JB Onofré opened on October 4&lt;/a&gt;. This week Yufei Gu &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06249.html" rel="noopener noreferrer"&gt;asked to include PR #5263&lt;/a&gt; because it fixes a potential table corruption issue. Dmitri Bourlatchkov &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06250.html" rel="noopener noreferrer"&gt;added #5856 to the milestone&lt;/a&gt;. JB &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06252.html" rel="noopener noreferrer"&gt;agreed to both&lt;/a&gt; and still wants Directories in the release as a beta feature. He wrote that he wants to put the release to a vote before Halloween, even after &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06235.html" rel="noopener noreferrer"&gt;losing power and internet in a storm&lt;/a&gt; midweek. As of October 28 there was no release candidate.&lt;/p&gt;

&lt;p&gt;If Directories ship as beta, 1.9.0 will be the first Polaris release where the catalog governs raw object-store prefixes next to tables. Last week's review raised real concerns, including Ankur Kotwal's scanner bug and Tornike Gurgenidze's argument that the inventory table should be the source of truth. So the beta label will matter. Treat it as a preview to test, not a feature to put production pipelines on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Storage access gets more flexible
&lt;/h3&gt;

&lt;p&gt;The busiest design area was how Polaris talks to object storage. Dmitri Bourlatchkov &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06231.html" rel="noopener noreferrer"&gt;proposed typed storage config options&lt;/a&gt; to skip credential vending on Azure and GCS. They are &lt;code&gt;AzureStorageConfigInfo.skipSasTokenGeneration&lt;/code&gt; and &lt;code&gt;GcpStorageConfigInfo.skipCredentialDownscoping&lt;/code&gt;, matching the existing AWS &lt;code&gt;stsUnavailable&lt;/code&gt; option. Ayush Saxena &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06234.html" rel="noopener noreferrer"&gt;weighed in&lt;/a&gt;, vignesh a implemented it in PR #5884, and Dmitri &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06263.html" rel="noopener noreferrer"&gt;linked it directly&lt;/a&gt; to the Iceberg "none" vote. Together they give a clean path for engines that already hold their own storage credentials, such as workloads running inside a trusted network.&lt;/p&gt;

&lt;p&gt;At the opposite end, Tommy Bollhofer &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06221.html" rel="noopener noreferrer"&gt;described a real deployment&lt;/a&gt; that needs more than credential vending can offer. His team runs Polaris against an on-prem FlashBlade whose STS supports only AssumeRoleWithWebIdentity. As a result they hand static storage keys to every engine, which defeats the point of a governed catalog. The keys go to every service in every environment: Polaris itself, Trino, Spark for table maintenance, and PyIceberg and DuckDB clients. Each new environment adds rotation work and widens the blast radius of a leaked key. Tommy also noted his client versions are mixed. Trino runs on Iceberg 1.12, Spark on the 1.10 runtime, and PyIceberg and DuckDB use their own Iceberg implementations, so client-side support for remote signing will vary. His longest jobs are Spark maintenance runs that take minutes, so he thinks remote signing could ship without token refresh support at first. His team offered to test early builds against FlashBlade and report which engines work. Alex Dutra &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06255.html" rel="noopener noreferrer"&gt;judged that enough evidence&lt;/a&gt; to restart remote signing and is preparing an experimental PR on top of the earlier work. Combined with Sung Yun's batch signing proposal in Iceberg, remote signing looks set to become a first-class option rather than a niche one.&lt;/p&gt;

&lt;p&gt;Yufei Gu also &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06232.html" rel="noopener noreferrer"&gt;changed direction on multiple storage configurations per catalog&lt;/a&gt;. After Srinivas Rishindra's &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06239.html" rel="noopener noreferrer"&gt;input&lt;/a&gt;, the group agreed to skip a transitional phase and &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06251.html" rel="noopener noreferrer"&gt;make storage configuration its own catalog-scoped entity&lt;/a&gt; with REST endpoints. The open question is how a table binds to one. Yufei prefers a table property set at create time over a "pending binding" model. Separately, Yufei &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06260.html" rel="noopener noreferrer"&gt;proposed blocking a risky config change&lt;/a&gt;: flipping &lt;code&gt;ALLOW_UNSTRUCTURED_TABLE_LOCATION&lt;/code&gt; from true to false can strand renamed tables behind 403 errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transactions, sharing and discovery
&lt;/h3&gt;

&lt;p&gt;Qiegang Long's multi-table transaction work moved from proof of concept to design. He &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06209.html" rel="noopener noreferrer"&gt;opened umbrella issue #5833&lt;/a&gt; and &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06243.html" rel="noopener noreferrer"&gt;posted the design doc&lt;/a&gt;. Engines would get &lt;code&gt;BEGIN ... COMMIT&lt;/code&gt; across statements and tables. Writes are staged on Iceberg table branches and published with the existing multi-table commit API. The proof of concept runs Spark and Trino at READ COMMITTED and REPEATABLE READ isolation. Ankur Kotwal &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06257.html" rel="noopener noreferrer"&gt;argued for a server-side publish step&lt;/a&gt;, citing the gaps he hit while adding &lt;code&gt;commit_transactions&lt;/code&gt; to PyIceberg. His examples were concrete. PyIceberg can fast-forward a branch but cannot cherry-pick, so a Python client could not re-apply appends onto a main branch that has moved. He also found that a delete matching no rows staged nothing, so the transaction went out without its "main has not moved" check. Gaps like that are easier to close once on the server than in every client. On snapshot expiry, Ankur suggested rejecting snapshot removal while a registered read point still covers it, while keeping a 410 response for unregistered handles so routine expire jobs do not start failing. An Iceberg cross-post is coming, since any real answer has to work for every REST catalog, not just Polaris.&lt;/p&gt;

&lt;p&gt;The long-running Open Sharing design also moved. Dmitri Bourlatchkov &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06211.html" rel="noopener noreferrer"&gt;pushed for a Shares API&lt;/a&gt; that does not assume any particular authentication scheme. Dennis Huo &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06230.html" rel="noopener noreferrer"&gt;split the work into two API specs&lt;/a&gt;, one for shares and membership and one for consumers, listings and credentials. Madhan Neethiraj, who works on Apache Ranger, &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06233.html" rel="noopener noreferrer"&gt;asked how authorization would work&lt;/a&gt;. Dennis &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06240.html" rel="noopener noreferrer"&gt;answered that every layer becomes pluggable&lt;/a&gt;: what is shared, who can read it, how it is authorized and how consumers authenticate.&lt;/p&gt;

&lt;p&gt;Dennis also &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06265.html" rel="noopener noreferrer"&gt;proposed a catalog discovery endpoint&lt;/a&gt;, &lt;code&gt;GET /api/catalog/polaris/v1/catalogs&lt;/code&gt;. Today a client with only a catalog role needs to know the catalog name before it can configure itself. Polaris already has a &lt;code&gt;listCatalogs&lt;/code&gt; call, but it is a management API. It needs a root-level privilege and returns the full catalog model, including storage configuration. The new endpoint is for data-plane readers. At first it would return only catalog names, the value a client passes as the warehouse to the REST &lt;code&gt;/config&lt;/code&gt; endpoint. Dennis also tied it to the in-progress Shares API, where a consumer needs some way to discover what has been shared with it. JB &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06264.html" rel="noopener noreferrer"&gt;supported the idea&lt;/a&gt;, suggested the name &lt;code&gt;listAccessibleCatalogs&lt;/code&gt;, and set a simple rule: a catalog is listed if and only if &lt;code&gt;getConfig&lt;/code&gt; would succeed for that caller. He also asked for paging from day one. This is a small feature that would make life easier for tools and agents that connect to Polaris without being told where to look.&lt;/p&gt;

&lt;h3&gt;
  
  
  Labels, semantic models and other threads
&lt;/h3&gt;

&lt;p&gt;The IRC Labels design &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06212.html" rel="noopener noreferrer"&gt;settled on option B&lt;/a&gt;, in which Iceberg REST labels are a read-only view over Polaris tags. Dmitri &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06218.html" rel="noopener noreferrer"&gt;clarified&lt;/a&gt; that importing labels from federated catalogs happens only when sub-catalog RBAC for federated catalogs is enabled, and Andrei Tserakhau &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06222.html" rel="noopener noreferrer"&gt;agreed&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Arnab Karmakar &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06266.html" rel="noopener noreferrer"&gt;asked for review of PR #5205&lt;/a&gt;, which validates semantic models against a bundled Apache Ossie JSON Schema, version 0.2.0.dev0, with a 1 MiB size cap. It is an early sign of Ossie definitions being consumed inside a catalog, which is the whole point of a semantic interchange standard.&lt;/p&gt;

&lt;p&gt;Not every thread was about features. vignesh a &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06220.html" rel="noopener noreferrer"&gt;proposed dropping metrics reports&lt;/a&gt; instead of returning HTTP 500 when the reporter's database write fails. Yufei &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06256.html" rel="noopener noreferrer"&gt;objected&lt;/a&gt; that the Iceberg spec never says metrics are best effort, and that some deployments feed metrics into billing or auditing. He wants the question raised with Iceberg first. Harshita Joshi &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06262.html" rel="noopener noreferrer"&gt;asked for review&lt;/a&gt; of a fix for staged creates, used by DuckDB, which were dropping a catalog's default table properties. Prithvi S &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06246.html" rel="noopener noreferrer"&gt;explored opt-in table soft-delete&lt;/a&gt;, and Dmitri &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06248.html" rel="noopener noreferrer"&gt;moved to soft-roll authorization&lt;/a&gt; on &lt;code&gt;GET /v1/config&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The AI review bot thread from last week continued. Robert Stupp &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06206.html" rel="noopener noreferrer"&gt;asked which tool runs the reviews and who pays&lt;/a&gt;. Yufei &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06210.html" rel="noopener noreferrer"&gt;answered&lt;/a&gt; that the tool is his own project, can use more than one model provider, and is funded by his employer, and that ASF Infra sponsorship is being explored. Every comment will be labeled as AI-generated. vignesh a &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06207.html" rel="noopener noreferrer"&gt;worried&lt;/a&gt; that the bot misses decisions made on the list and in syncs, and that newer contributors will treat its comments as required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A busy release week
&lt;/h3&gt;

&lt;p&gt;ADBC Libraries 25 &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35241.html" rel="noopener noreferrer"&gt;passed its vote&lt;/a&gt; with 6 binding +1s from Bryce Mecum, Curt Hagenlocher, Gang Wu, Matt Topol, Raúl Cumplido and Sutou Kouhei, plus a non-binding +1 from Xuanwo. David Li &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35248.html" rel="noopener noreferrer"&gt;announced it on October 26&lt;/a&gt;. The headline is the C# core reaching 1.0.0, with C# drivers at 0.25.0. The C, C++, GLib, Go, Python and Ruby packages are at 1.13.0, and Java, R and Rust at 0.25.0. Bryce worked with Dewey to get three R packages, adbcdrivermanager, adbcpostgresql and adbcsqlite, accepted on CRAN. npm publishing still needs rework.&lt;/p&gt;

&lt;p&gt;On the Rust side, Jeffrey Vo ran votes that delivered patch releases on three older lines: &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35242.html" rel="noopener noreferrer"&gt;57.3.2, 58.4.1 and 59.3.2&lt;/a&gt;, each passing with 3 binding +1s. That completes the multi-branch backport plan Andrew Lamb announced last week. Jeffrey also ran a vote on &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35253.html" rel="noopener noreferrer"&gt;60.1.0&lt;/a&gt;, a minor release on the newest line, which passed on October 28 with binding votes from Jeffrey, Andrew Lamb and L. C. Hsieh. Xuanwo found that the release audit script fails on a missing license header in &lt;code&gt;.config/nextest.toml&lt;/code&gt;, which Jeffrey &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35245.html" rel="noopener noreferrer"&gt;will fix next release&lt;/a&gt;. Matt Butrovich tested arrow-pyarrow on Python 3.15 using PyO3's forward compatibility flag.&lt;/p&gt;

&lt;p&gt;Arrow Java 20.0.0, which JB flagged as imminent last week, saw no vote. No list message explains the delay. On GitHub, a release-candidate CI job for macOS on ARM has been failing since a bundled protobuf upgrade, and a fix PR is open. That is the likely cause, but it is an inference, not a statement from the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Funding for PyArrow
&lt;/h3&gt;

&lt;p&gt;Alenka Frim &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35254.html" rel="noopener noreferrer"&gt;announced that the Sovereign Tech Fund is investing in PyArrow&lt;/a&gt;. Germany's Sovereign Tech Agency will fund about 1.9 full-time roles for the rest of 2026 and all of 2027. The applicants were Alenka Frim, Nic Crane, Rok Mihevc and Tadeja Kadunc. The money covers PyArrow type annotations, the long-standing bug backlog, documentation, extension type support and tooling to help maintainers handle agentic PRs. Alenka said the contract funds work that has stalled and is unlikely to attract regular corporate sponsors. Alenka, Rok and Tadeja have already started on type annotations, building on work Rok has invested in for a long time. Nic is working through bug reports that have sat open for years. In 2027 Alenka plans to research building the full documentation without PyArrow installed, then improve the Python User Guide, API examples and Cookbook. Tadeja will focus on extension types and related compute kernels. Open Source Collective is fiscal host, on behalf of Arctos Alliance. Curt Hagenlocher, Antoine Pitrou and Raúl Cumplido replied with congratulations. For a library that sits under pandas and much of the Python data stack, paid maintenance time is good news for everyone downstream.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI contributions and CI pressure
&lt;/h3&gt;

&lt;p&gt;The AI contributions thread picked up again. Raúl Cumplido &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35246.html" rel="noopener noreferrer"&gt;opened a PR&lt;/a&gt; to write down reviewer guidance. Nic Crane &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35249.html" rel="noopener noreferrer"&gt;posted an impact report&lt;/a&gt; that found about a third of recent PRs skip AI disclosure. His seven recommendations include moving the PR cap into &lt;code&gt;.asf.yaml&lt;/code&gt; before November, mandatory disclosure, and a bot that converts non-disclosing PRs to drafts. He also suggested giving active non-committer reviewers the collaborator role so they can help triage. Raúl &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35255.html" rel="noopener noreferrer"&gt;pointed to CPython's new AI triage labels&lt;/a&gt; as a model.&lt;/p&gt;

&lt;p&gt;Nic's report is worth reading in full because its diagnosis applies well beyond Arrow. He named three problems. Maintainers spend time reviewing PRs that are later abandoned, or that need more rounds of feedback because they were mostly AI-generated. Maintainers also spend time enforcing AI rules, while non-committer reviewers have little power to flag problem PRs. And the volume itself keeps growing. His other recommendations include adopting a rule against AI-written review replies and auto-drafting PRs that sit idle for 14 days with conflicts, failing CI or requested changes. He also suggested gating PR opening on triage state, as pandas does, and tracking monthly how many new-contributor PRs get no human response. He singled out growing the merge group from people already triaging as the only measure that adds capacity rather than cutting inflow. Nic noted, with some irony, that he used AI to help analyze the data.&lt;/p&gt;

&lt;p&gt;Jarek Potiuk &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35214.html" rel="noopener noreferrer"&gt;opened the most heated thread of the week&lt;/a&gt; on making Arrow's GitHub Actions CI lighter. Using an Apache Magpie workflow-optimization skill, he estimated Arrow used 110,000 to 125,000 runner minutes the previous week, with Linux packaging about 40 percent of that. He suggested 30 to 40 percent savings, partly by running extra workflows nightly instead of per PR. He also noted that &lt;code&gt;pull_request_target&lt;/code&gt; is being disabled for ASF repos in November. That change affects three Arrow workflows, including the PR limit bot. Jarek suggested replacing the bot with the &lt;code&gt;.asf.yaml&lt;/code&gt; &lt;code&gt;creation_cap&lt;/code&gt; setting, which enforces the same limit of three open PRs per contributor with no workflow at all. He also spotted that nightly failure reports had been silent since October 21. The report job installs the latest Python 3, now 3.15, and a dependency has no 3.15 wheel yet, so the job fails before sending email. Pinning Python 3.13 fixes it. Benson Muite suggested Fedora's Packit for RPM builds. Raúl disputed one of Jarek's findings, saying nightly reports do work. Andrew Lamb reported 3 to 7 hour CI queue waits for arrow-rs and DataFusion contributors, and his numbers showed Airflow using far more shared runner time than the Arrow repos. The exchange got sharp before Jarek apologized on October 27. The underlying issue is real: the ASF's shared runner pool is now a bottleneck that contributors feel directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flight SQL and community
&lt;/h3&gt;

&lt;p&gt;Tornike Gurgenidze's Flight SQL proposal to advertise a server's Substrait dialect continued. Curt Hagenlocher &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35212.html" rel="noopener noreferrer"&gt;asked whether clients could negotiate a dialect version&lt;/a&gt;. Tornike &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35226.html" rel="noopener noreferrer"&gt;replied&lt;/a&gt; that &lt;code&gt;GetSqlInfo&lt;/code&gt; cannot take parameters, so negotiation would need a new RPC. He argued the existing minimum and maximum Substrait version codes are enough for now. Ian Cook &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35213.html" rel="noopener noreferrer"&gt;posted logistics&lt;/a&gt; for the October 21 community meeting.&lt;/p&gt;

&lt;p&gt;One housekeeping note: mail-archive.com is missing several Arrow messages from this week, including the 60.1.0 vote opener and some of Andrew Lamb's replies. JB reported on the Ossie list that some ASF list mail was not being delivered and that Infra was working on it, which likely explains the gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  parquet-java 1.18.2 becomes the release to watch
&lt;/h3&gt;

&lt;p&gt;Manu Zhang &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28158.html" rel="noopener noreferrer"&gt;proposed a parquet-java 1.18.2 patch release&lt;/a&gt; on October 26. The 1.18.x branch already carries several fixes. They stop writers from flushing incomplete files after a failure and fix a dictionary lookup collision between dotted field names and nested paths. They also correct Bloom filter column path handling, release row-group buffers properly and fix protobuf handling of empty and recursive messages. The release also bumps Jackson to 2.22.3 to clear CVEs. Steve Loughran &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28159.html" rel="noopener noreferrer"&gt;asked to include&lt;/a&gt; master's Thrift and Snappy upgrades, Fokko Driesprong &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28162.html" rel="noopener noreferrer"&gt;backed the release&lt;/a&gt;, and Manu opened backport PRs. Divjot Arora also replied in support.&lt;/p&gt;

&lt;p&gt;This matters beyond Parquet. The Jackson CVEs inside Parquet's bundled copy are the last scanner findings blocking a clean Iceberg Kafka Connect runtime, as Russell Spitzer noted on the Iceberg list. Meanwhile the 1.19.0 release candidates have sat unreleased since September, so 1.18.2 is the realistic near-term upgrade for Java users.&lt;/p&gt;

&lt;h3&gt;
  
  
  The vector debate goes another round
&lt;/h3&gt;

&lt;p&gt;The numeric vector thread, started by Rok Mihevc in September, kept going. Jan Finis &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28150.html" rel="noopener noreferrer"&gt;proposed an alternative&lt;/a&gt;: put finiteness on float elements and an optional fixed size on LIST, rather than adding a new FINITE_VECTOR type. He argued that design stays forward compatible, while a new union member would make older engines reject the column. Ryan Blue &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28157.html" rel="noopener noreferrer"&gt;held to FINITE_VECTOR&lt;/a&gt;. He floated allowing both LIST and FINITE_VECTOR annotations on the same column, and argued that types carry guarantees, as UTF-8 does for strings. Finiteness lets readers skip per-element checks and catches bad data at write time.&lt;/p&gt;

&lt;p&gt;Curt Hagenlocher &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28152.html" rel="noopener noreferrer"&gt;pointed out&lt;/a&gt; that SQL Server, MySQL and SAP ASE already reject non-finite floats. Will Edwards &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28154.html" rel="noopener noreferrer"&gt;suggested putting VECTOR on hold&lt;/a&gt; until there is a broader proposal for ML tensors and sparse or quantized data. He warned that writers that do not know VECTOR will rewrite files as plain lists, and repeated that Iceberg may be the better home for finiteness. Fokko Driesprong &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28156.html" rel="noopener noreferrer"&gt;said the group is "running in circles,"&lt;/a&gt; while noting people are willing to do the work and that Parquet should be self-contained. Rok's format PR #624 is still open. For anyone storing embeddings in Parquet today, nothing changes yet, but the decision will shape how Iceberg's own vector type is defined.&lt;/p&gt;

&lt;h3&gt;
  
  
  Precise definitions and safer readers
&lt;/h3&gt;

&lt;p&gt;Andrew Bell &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28148.html" rel="noopener noreferrer"&gt;asked a deceptively simple question&lt;/a&gt; about the difference between &lt;code&gt;num_values&lt;/code&gt; and &lt;code&gt;num_rows&lt;/code&gt; in DataPageHeaderV2. Adam Reeve &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28149.html" rel="noopener noreferrer"&gt;explained&lt;/a&gt; that &lt;code&gt;num_values&lt;/code&gt; counts leaf-level values including nulls, &lt;code&gt;num_rows&lt;/code&gt; counts logical rows, and V2 pages never split a row. Antoine Pitrou &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28155.html" rel="noopener noreferrer"&gt;went further&lt;/a&gt;. He noted that the null-count fields are ambiguous at nesting levels deeper than one and proposed precise definitions, in which &lt;code&gt;num_values&lt;/code&gt; really counts levels. This could become a spec clarification, which would help every implementer who has had to reverse-engineer the answer from parquet-java.&lt;/p&gt;

&lt;p&gt;Antoine also continued his fuzzing thread. Steve Loughran &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28160.html" rel="noopener noreferrer"&gt;asked which code areas fuzzing hits most&lt;/a&gt;, and Antoine &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28161.html" rel="noopener noreferrer"&gt;named three bug classes&lt;/a&gt;: unvalidated metadata such as negative lengths or invalid enums, memory allocations sized from metadata instead of actual file size, and unchecked integer overflow in arithmetic on metadata values. It is a useful checklist for anyone writing or auditing a Parquet reader. His Community Over Code Glasgow talk is linked in the thread. Julien Le Dem &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28147.html" rel="noopener noreferrer"&gt;posted the October 21 sync logistics&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie
&lt;/h2&gt;

&lt;h3&gt;
  
  
  First release prep and a new committer
&lt;/h3&gt;

&lt;p&gt;The incubating semantic interchange project took two steps toward maturity. Josh Klahr &lt;a href="https://lists.apache.org/thread/m56ofoo4b7k2199xt0yzmgnmo9kn5c7c" rel="noopener noreferrer"&gt;announced Yufei Gu as a new committer&lt;/a&gt;, with congratulations from Russell Spitzer, Dmitri Bourlatchkov, Chris Eubank, Ayush Saxena and others. Yufei's Polaris background is useful here, since Polaris is already validating semantic models against Ossie's schema. After &lt;a href="https://lists.apache.org/thread/j7dyl0o8qch8tnyj5o4spd1qrjlx7dtv" rel="noopener noreferrer"&gt;the converters moved to their own repository&lt;/a&gt;, JB Onofré &lt;a href="https://lists.apache.org/thread/nqnnzw42f1f4t35gqd1pxo69b7rpx39p" rel="noopener noreferrer"&gt;started the release-prep PRs&lt;/a&gt; for the first core release: version properties, source release, distribution and Maven publication. No vote has been called yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  The spec takes shape
&lt;/h3&gt;

&lt;p&gt;Chris Eubank put the &lt;a href="https://lists.apache.org/thread/sgjxp8y8kym63ydc4mmmw6zsnorskxbo" rel="noopener noreferrer"&gt;Wide Table Query Interface&lt;/a&gt; under lazy consensus through November 4. A Layer 3 query names dimensions, metrics and a filter, and the engine lowers it to Layer 2 using &lt;code&gt;AGG()&lt;/code&gt;. Justin Talbot &lt;a href="https://lists.apache.org/thread/r3mphx5o1n5xs1h7q5cw15p5hb1hcfm6" rel="noopener noreferrer"&gt;proposed reserving AGG()&lt;/a&gt; for evaluating measures and letting dataset-scoped metrics reference source columns directly. Together these define how a BI tool or AI agent asks for "revenue by region last quarter" without writing SQL against physical tables.&lt;/p&gt;

&lt;p&gt;John DaCosta &lt;a href="https://lists.apache.org/thread/zkxh5k42l39bg0clj6mff2mb1h12ml5o" rel="noopener noreferrer"&gt;asked what Dataset.source should guarantee&lt;/a&gt;. Chris said the group agrees on a source discriminator, table, query or file, with connection details kept in vendor extensions. He framed the core goal as sharing semantics across tools while querying data where it already lives. A real ERP export then started a &lt;a href="https://lists.apache.org/thread/gjyf0ktfbcsks404jp6ojg0klr3fm39f" rel="noopener noreferrer"&gt;debate over which time field slices a metric&lt;/a&gt;, after a 14 versus 15 mismatch traced back to that choice. Julian Hyde argued the time hint belongs on the dataset, not the metric, except for semi-additive measures like balances.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/vmgv5ffryw70wxbvtwnohhhz2zzx0ocf" rel="noopener noreferrer"&gt;expression portability work&lt;/a&gt; continued too. Richard SG Kim migrated 176 expressions to the portable form and found it 22 to 27 percent shorter. Chris told contributors that the ClickHouse and Trino dialect PRs only need a rebase, since adding a dialect is no longer a core spec change. Johannes Zemlin &lt;a href="https://lists.apache.org/thread/s5x6lo5gvxhyowb4pcohtplnly5rmgtm" rel="noopener noreferrer"&gt;shared an initial ANTLR4 grammar&lt;/a&gt; for Ossie expressions, and Ayush Saxena &lt;a href="https://lists.apache.org/thread/c2gf1l279l0y0qn69hhz5k84t46d9hth" rel="noopener noreferrer"&gt;fixed NOT-operator precedence&lt;/a&gt;. Ossie has no mail-archive.com mirror, so these links go to lists.apache.org.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Metadata you can trust
&lt;/h3&gt;

&lt;p&gt;Look at the week's spec decisions side by side and they share one goal. Iceberg's tight_stats flag says the counts are exact. Table constraints say whether a key was actually validated for this snapshot. Stats-only fields give expression stats a declared identity. Parquet's FINITE_VECTOR debate is about whether a type should guarantee its contents. Antoine's null-count definitions would make a page header mean one thing in every reader. In each case, the project is turning metadata that is "probably right" into metadata that is guaranteed.&lt;/p&gt;

&lt;p&gt;That shift matters most for automated consumers. A human analyst can sanity-check a suspicious number. A query planner skipping files, or an AI agent answering a question from metadata, cannot. The more of the lakehouse that carries guaranteed facts, the more work engines and agents can skip safely, and the cheaper and faster the whole stack gets. Ossie's spec work fits the same pattern one layer up, where semantic definitions become portable contracts rather than tool-specific settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Storage access is being rethought from both ends
&lt;/h3&gt;

&lt;p&gt;Iceberg's "none" delegation value and Polaris's skip-vending options cover clients that already have storage access. Remote signing in Polaris and batch signing in Iceberg cover the opposite case, where clients should never hold storage credentials at all. The File type is forcing the question, because a column of object references multiplies the number of storage requests. Expect the REST spec and Polaris to keep moving together here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Maintainers under pressure
&lt;/h3&gt;

&lt;p&gt;The most important theme was not a spec. Russell Spitzer's dashboard shows fewer returning contributors in Iceberg Java. The Iceberg Rust group wants a roadmap partly to manage AI-generated PRs. Nic Crane found a third of Arrow PRs skip AI disclosure. Polaris is trialing an AI reviewer while contributors worry about its blind spots. Arrow's CI thread shows the shared ASF runner pool is a real bottleneck, and the Sovereign Tech Fund grant explicitly pays for tooling to handle agentic PRs.&lt;/p&gt;

&lt;p&gt;Contributions are getting cheaper to produce, while review time and CI minutes are not. These projects are building the open infrastructure that AI agents will read from, and they are also among the first communities to feel what agents do to open source maintenance. Expect disclosure rules, PR caps and funded maintainer time to spread across ASF data projects quickly. If you contribute to any of them, disclose AI assistance and keep PRs small. It is the easiest way to keep your work out of the triage pile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Watch for the stats-only fields vote result around October 30 and a Polaris 1.9.0 vote by October 31, including whether Directories ship as beta. A parquet-java 1.18.2 vote, the iceberg-rust 0.11 release, binding votes on the Iceberg Terraform Provider 0.2.0 RC1 and Arrow Java 20.0.0 are all possible in the next two weeks. Ossie's Wide Table lazy consensus closes November 4, and its first core release vote could follow. The Iceberg Bay Area meetup runs November 2 in Sunnyvale, and the monthly Iceberg and Spark sync starts November 11.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources &amp;amp; Further Learning
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Get Started with Dremio&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.dremio.com/get-started?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=apache-newsletter-2026-10-28&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Try Dremio Free&lt;/a&gt;: Build your lakehouse on Iceberg with a free trial&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.dremio.com/use-cases/lake-to-iceberg-lakehouse/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=apache-newsletter-2026-10-28&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Build a Lakehouse with Iceberg, Parquet, Polaris &amp;amp; Arrow&lt;/a&gt;: Learn how Dremio brings the open lakehouse stack together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Free Downloads&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://hello.dremio.com/wp-apache-iceberg-the-definitive-guide-reg.html" rel="noopener noreferrer"&gt;Apache Iceberg: The Definitive Guide&lt;/a&gt;: O'Reilly book, free download&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hello.dremio.com/wp-apache-polaris-guide-reg.html" rel="noopener noreferrer"&gt;Apache Polaris: The Definitive Guide&lt;/a&gt;: O'Reilly book, free download&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Books by Alex Merced&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Architecting-Apache-Iceberg-Lakehouse-open-source/dp/1633435105/ref=sr_1_5?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_TP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-5" rel="noopener noreferrer"&gt;Architecting an Apache Iceberg Lakehouse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Enabling-Agentic-Analytics-Apache-Iceberg-ebook/dp/B0GQXT6W3N/ref=sr_1_7?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-7" rel="noopener noreferrer"&gt;Enabling Agentic Analytics with Apache Iceberg and Dremio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Lakehouses-Apache-Iceberg-Agentic-Hands/dp/B0GQNY21TD/ref=sr_1_9?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-9" rel="noopener noreferrer"&gt;The 2026 Guide to Lakehouses, Apache Iceberg and Agentic AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Book-Using-Apache-Iceberg-Python/dp/B0GNZ454FF/ref=sr_1_16?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-16" rel="noopener noreferrer"&gt;The Book on Using Apache Iceberg with Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bigdata</category>
      <category>data</category>
      <category>database</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AI Weekly: GPT-6.1 Terra, Agent Skills and Anthropic's S-1</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 28 Oct 2026 14:01:55 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/ai-weekly-gpt-61-terra-agent-skills-and-anthropics-s-1-16k5</link>
      <guid>https://dev.to/alexmercedcoder/ai-weekly-gpt-61-terra-agent-skills-and-anthropics-s-1-16k5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Week of October 21-28, 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenAI shipped a cheaper mid-tier model built for computer use. Anthropic handed Agent Skills to a neutral foundation and then filed to go public. Its S-1 put real numbers on what frontier AI costs to run.&lt;/p&gt;

&lt;p&gt;Coding agents also kept moving approval decisions from people to classifiers. Here is what changed, what it costs and what you need to do about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models: GPT-6.1 Terra Cuts the Mid-Tier Price in Half
&lt;/h2&gt;

&lt;p&gt;This was a mid-tier week, not a flagship week. OpenAI released GPT-6.1 Terra, Moonshot shipped Kimi K3.1 Pro, and MiniMax posted open weights. Anthropic released no new public model. It did describe an unreleased research model that built working exploit chains, and it launched an agent app on top of Opus 5.5.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI GPT-6.1 Terra (October 26)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://community.openai.com/t/gpt-6-1-terra-delivering-fast-and-capable-computer-use-at-a-lower-price/1409900" rel="noopener noreferrer"&gt;OpenAI released GPT-6.1 Terra&lt;/a&gt; on October 26. The API model ID is &lt;code&gt;gpt-6.1-terra&lt;/code&gt;, and it is the only snapshot so far. OpenAI pitches it for visual reasoning, computer use and clear writing. It sits between GPT-6 Luna below and GPT-6.1 Sol and GPT-6 Astra above.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://developers.openai.com/api/docs/models/gpt-6.1-terra" rel="noopener noreferrer"&gt;model card&lt;/a&gt; lists these specs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context window:&lt;/strong&gt; 1,050,000 tokens, with a max input of 922,000 tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max output:&lt;/strong&gt; 128,000 tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge cutoff:&lt;/strong&gt; June 1, 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; text and image. &lt;strong&gt;Output:&lt;/strong&gt; text only&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reasoning effort:&lt;/strong&gt; none, low, medium (default), high, xhigh and max&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints:&lt;/strong&gt; Chat Completions, Responses and Batch. Tool calling needs the Responses API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pricing is the headline. Standard rates are $1 per million input tokens and $5 per million output tokens. Cached input costs $0.05 per million, and cache writes with 30-minute retention cost $1.25 per million. OpenAI says that is 50% below GPT-5.6 Terra and one-tenth the per-token price of GPT-6 Astra.&lt;/p&gt;

&lt;p&gt;Read the fine print on long prompts. Prompts over 272,000 input tokens cost 2x on input and cache rates and 1.5x on output. Batch and Flex run 50% below Standard. Regional processing adds 10%, and fast mode costs 2x Standard.&lt;/p&gt;

&lt;p&gt;The benchmark numbers all come from OpenAI, so treat them as vendor-reported. &lt;a href="https://decrypt.co/381883/openai-launches-gpt-6-1-terra-half-good-half-price" rel="noopener noreferrer"&gt;Decrypt reports&lt;/a&gt; that Terra solved 50.3% of Terminal-Bench 4.0 tasks at max effort, up from 21.5% for GPT-5.6 Terra. On an internal test of prompts built to trick models, the factual error rate at low effort fell from 53.6% to 16.7%. At max effort the error rate dropped to 4.3%. OpenAI also says Terra matches GPT-6 Astra on Agents' Last Exam and finishes tasks more than 3x faster than Astra and Sol on average. OpenAI posted no numeric score for that Agents' Last Exam claim.&lt;/p&gt;

&lt;p&gt;Terra is live in ChatGPT Work and Codex for Plus, Pro, Business, Enterprise and Edu users, per the &lt;a href="https://learn.chatgpt.com/docs/changelog" rel="noopener noreferrer"&gt;Codex changelog&lt;/a&gt;. It is not available in Chat, and it does not support UAE inference residency. &lt;a href="https://github.blog/changelog/2026-10-26-gpt-6-1-terra-in-github-copilot" rel="noopener noreferrer"&gt;GitHub added Terra to Copilot&lt;/a&gt; the same day.&lt;/p&gt;

&lt;p&gt;One practical detail came from the developer forum, not OpenAI. A user reports that &lt;code&gt;reasoning.effort: "none"&lt;/code&gt; on Terra accepts &lt;code&gt;temperature&lt;/code&gt; and &lt;code&gt;top_p&lt;/code&gt;, which GPT-6.1 Sol blocked. That is unconfirmed, so test it before you rely on it.&lt;/p&gt;

&lt;p&gt;What does Terra change? It makes computer-use agents cheaper to run at volume. A model that reads screens and fills forms at $1 in and $5 out lets you put an agent on back-office work that did not pencil out at Sol prices. OpenAI itself still points heavy research and complex coding to Sol or Astra.&lt;/p&gt;

&lt;h3&gt;
  
  
  Moonshot Kimi K3.1 Pro (October 23)
&lt;/h3&gt;

&lt;p&gt;Moonshot released Kimi K3.1 Pro on October 23. The &lt;a href="https://platform.kimi.ai/docs/guide/kimi-k3-1-pro-quickstart" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; lists two model IDs: &lt;code&gt;kimi-k3.1-pro&lt;/code&gt; and &lt;code&gt;kimi-k3.1-pro-highspeed&lt;/code&gt;. Moonshot says the highspeed variant runs 2-3x faster. Context is 1M tokens. Output defaults to 131,072 tokens and can go as high as 1,048,576.&lt;/p&gt;

&lt;p&gt;Reasoning is always on. You pick &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; or &lt;code&gt;max&lt;/code&gt; through a top-level &lt;code&gt;reasoning_effort&lt;/code&gt; field, and &lt;code&gt;max&lt;/code&gt; is the default. You cannot turn thinking off. The model takes image and video input and supports tool calling and strict JSON Schema output.&lt;/p&gt;

&lt;p&gt;Moonshot's guide says pricing is flat, with no tiering by context length. Its pricing page did not render the K3 table when we checked. &lt;a href="https://simonwillison.net/2026/Oct/23/kimi-k31-pro/" rel="noopener noreferrer"&gt;Simon Willison reported&lt;/a&gt; $2 per million input tokens and $10 per million output tokens. Confirm those numbers in the Kimi console before you budget against them.&lt;/p&gt;

&lt;p&gt;The benchmark story is messy. On launch week, Moonshot's own quickstart still showed placeholder values ("xx.x%") for Terminal-Bench 4.0 and Terminal-Bench-Science. The one hard number in the guide is a finance hallucination test. Moonshot says its claim-level hallucination rate fell from 23.35% on K3 to 6.85% on K3.1 Pro. That figure is vendor-reported, and Moonshot calls the test a stress test, not a general error rate.&lt;/p&gt;

&lt;p&gt;Secondary coverage cites a Moonshot figure of 65.7% on Terminal-Bench 4.0, against 66.4% for Claude Opus 5.5. We did not find that number on a Moonshot page, so treat it as unverified. Press reports also put K3.1 Pro at 55 on the Artificial Analysis Intelligence Index.&lt;/p&gt;

&lt;p&gt;Moonshot says full weights will ship by November 4. It has not named a license. If you plan to self-host, wait for the license file before you commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  MiniMax M3.1 Flash Weights Go Public (October 23)
&lt;/h3&gt;

&lt;p&gt;Last week we noted that MiniMax promised weights for M3.1 Flash. They landed. The repo &lt;a href="https://huggingface.co/MiniMaxAI/MiniMax-M3.1-Flash" rel="noopener noreferrer"&gt;&lt;code&gt;MiniMaxAI/MiniMax-M3.1-Flash&lt;/code&gt;&lt;/a&gt; is public and ungated on Hugging Face. Coverage puts the model at 428 billion total parameters with 23 billion active per token, a 1M context and text, image and video input. Hugging Face lists about 220 billion stored parameters in the safetensors files, so check the model card for how MiniMax counts.&lt;/p&gt;

&lt;p&gt;The license is not Apache or MIT. Hugging Face tags it as "other." Coverage describes a community license that requires written permission from MiniMax for products above $20 million in yearly revenue. One write-up also says commercial products must display "Built with MiniMax M3.1-Flash." Read the license file in the repo before you ship anything on it. MiniMax recommends SGLang, vLLM and TokenSpeed for serving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Anthropic: Duet, Google Cloud and an Unreleased Cyber Model
&lt;/h3&gt;

&lt;p&gt;Anthropic shipped no new public model this week. It did three things that matter for model users.&lt;/p&gt;

&lt;p&gt;First, &lt;a href="https://claude.com/resources/articles/claude-duet" rel="noopener noreferrer"&gt;Anthropic introduced Claude Duet&lt;/a&gt; on October 21. Duet is a proactive agent app built on Claude Opus 5.5. We cover it in the Tooling section below.&lt;/p&gt;

&lt;p&gt;Second, &lt;a href="https://claude.com/resources/articles/claude-models-on-google-cloud-anthropic-managed" rel="noopener noreferrer"&gt;Claude Models on Google Cloud (Anthropic managed)&lt;/a&gt; went live on October 22. Anthropic runs the Claude API, and you reach it through your Google Cloud project. Google Cloud IAM controls access, and usage lands on your Google Cloud bill and draws down existing spend commitments. The &lt;a href="https://platform.claude.com/docs/en/release-notes/overview" rel="noopener noreferrer"&gt;release notes&lt;/a&gt; confirm fast mode for Opus 5.5 is available there too. The older Vertex AI offering is now called Claude Models on Google Cloud (Google managed). Pick that one if you need Google as the data processor or strict regional controls.&lt;/p&gt;

&lt;p&gt;Third, Anthropic published &lt;a href="https://www.anthropic.com/research/discovering-vulnerabilities-with-claude" rel="noopener noreferrer"&gt;a research post on October 27&lt;/a&gt; about an unreleased internal research model. Anthropic says the model found and chained flaws in Chrome, Safari, Android, Windows and Linux into proof-of-concept exploits. Google assigned 62 Chrome CVEs, all rated critical or high, including 13 sandbox escapes. On Linux, Anthropic says the model took 48 minutes to leak a kernel pointer and about five more minutes to reach shell execution, through CVE-2026-98432.&lt;/p&gt;

&lt;p&gt;These claims come from Anthropic's own account. &lt;a href="https://thehackernews.com/2026/10/anthropics-unreleased-ai-model-chains.html" rel="noopener noreferrer"&gt;The Hacker News notes&lt;/a&gt; that it is hard to tell how much of each chain the model built alone. All flaws were reported and patched. Anthropic did not say whether it will release the model. It did point to its Cyber Verification Program, which gives vetted security teams access to stronger cyber capabilities.&lt;/p&gt;

&lt;p&gt;The lesson for everyone else is simple. Patch cycles need to get shorter. If a model can turn four Chrome bugs into a sandbox escape in a lab, attackers will try the same thing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google: Genie 4 and Two Gemini API Changes
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://deepmind.google/blog/genie-4-a-new-generation-of-world-simulation/" rel="noopener noreferrer"&gt;Google DeepMind introduced Genie 4&lt;/a&gt; on October 27. It is a real-time world model that generates audio, ambient sound and dialogue along with the scene. You steer it with natural language and keyboard controls. Google uses Gemini 3.8 Flash as a guiding agent to keep scenes coherent. Google gave no resolution, frame rate or session length. It says details "can still shift or drift over time." Genie 4 is a research preview for trusted testers, with Google AI Ultra and Gemini API early access to follow.&lt;/p&gt;

&lt;p&gt;Two quieter changes in the &lt;a href="https://ai.google.dev/gemini-api/docs/changelog" rel="noopener noreferrer"&gt;Gemini API changelog&lt;/a&gt; matter more for data teams. On October 26, Google turned on request storage by default for new paid-tier projects. Calls to &lt;code&gt;generateContent&lt;/code&gt;, &lt;code&gt;streamGenerateContent&lt;/code&gt; and &lt;code&gt;batchGenerateContent&lt;/code&gt; now default to &lt;code&gt;store=true&lt;/code&gt;. Existing projects keep their current setting. The changelog does not say how long Google keeps stored requests.&lt;/p&gt;

&lt;p&gt;If you send customer data or regulated data through new Gemini projects, set &lt;code&gt;store=false&lt;/code&gt; per request or turn off logging in the Logs and Datasets settings. Do it before your first production call, not after.&lt;/p&gt;

&lt;p&gt;On October 27, Google released the Gemini API CLI (&lt;code&gt;gemini-api&lt;/code&gt;) in beta. It is a stateless, zero-dependency command-line client for coding agents, scripts and CI pipelines. It works with the Interactions API and can run Gemini managed agents.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI Platform: Decisions API and Service Tier Controls
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://developers.openai.com/changelog" rel="noopener noreferrer"&gt;OpenAI developer changelog&lt;/a&gt; had two smaller entries. On October 21, OpenAI added settings to restrict which service tiers each project or a whole organization can use. That helps you stop a test project from burning money on a priority tier.&lt;/p&gt;

&lt;p&gt;On October 22, the Decisions API reached general availability on &lt;code&gt;gpt-6-luna&lt;/code&gt;. Each request now handles up to 400 questions, up from 200 in beta. Shared input can be cached across requests for prompt-cache discounts, and you can pass structured data with &lt;code&gt;input_json&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quiet Labs
&lt;/h3&gt;

&lt;p&gt;We found no new model from Meta, xAI, Mistral, DeepSeek or Qwen dated in this window. DeepSeek's news page has nothing after its October 17 Flash update. xAI's release notes show only the Grok Voice 3.0 items we covered last week. Mistral's Large 4 weights deadline of October 31 is still ahead.&lt;/p&gt;

&lt;p&gt;The community filled some of the gap. ISTA-DASLab posted &lt;a href="https://huggingface.co/ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF" rel="noopener noreferrer"&gt;GGUF quantizations of DeepSeek-V4.1-Flash-1017&lt;/a&gt;, including a 2-bit build. Press reports say it runs on a single 12GB GPU. We did not test that claim.&lt;/p&gt;

&lt;h3&gt;
  
  
  What This Means for Practitioners
&lt;/h3&gt;

&lt;p&gt;The price floor keeps dropping in the middle of the market. A frontier lab now sells a 1M-context computer-use model at $1 in and $5 out. Open weights keep arriving, but with custom licenses that cap revenue or require sign-off. And defaults keep shifting under you, like Gemini's new storage setting. Read changelogs every week, not every quarter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling: Approval Classifiers Go Mainstream
&lt;/h2&gt;

&lt;p&gt;The tooling theme this week was who says yes. GitHub made LLM-judged approvals generally available. Anthropic launched an agent that asks before it pays or signs. Claude Code and Codex both tightened permission defaults. The common pattern is a classifier that approves safe actions and stops for a human on the risky ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot Assisted Permissions Reach GA (October 26)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.blog/changelog/2026-10-26-github-copilot-assisted-permissions-generally-available" rel="noopener noreferrer"&gt;GitHub made assisted permissions generally available&lt;/a&gt; in Copilot CLI, the Copilot app and VS Code. When Copilot wants to run a command, touch a file path or open a URL, an LLM judges the request. Requests it rates "clearly safe" run on their own. Everything else waits for you.&lt;/p&gt;

&lt;p&gt;Copilot now has three approval modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual:&lt;/strong&gt; always ask&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assisted:&lt;/strong&gt; the classifier approves safe requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow All:&lt;/strong&gt; approve everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You turn it on with &lt;code&gt;/permissions&lt;/code&gt; in the CLI, the Tool permissions picker in the app or the permissions picker in VS Code. GitHub did not publish the classifier's criteria.&lt;/p&gt;

&lt;p&gt;The admin controls are the important part. Enterprise settings can block Allow All while keeping Assisted. Admins can also disable Assisted, set the default mode for new sessions and fall back to Manual when the default is not allowed. Platform teams finally get a middle path between "ask every time" and "approve everything."&lt;/p&gt;

&lt;h3&gt;
  
  
  Copilot Server-to-Server Auth and Usage Metrics
&lt;/h3&gt;

&lt;p&gt;On October 27, &lt;a href="https://github.blog/changelog/2026-10-27-github-copilot-supports-server-to-server-authentication" rel="noopener noreferrer"&gt;Copilot added server-to-server authentication&lt;/a&gt; in public preview. Agents built with the Copilot SDK can now call Copilot for an organization without a signed-in user. You grant a GitHub App the read-only &lt;code&gt;Copilot Requests&lt;/code&gt; permission, install it on the org and pass its short-lived installation token to the SDK.&lt;/p&gt;

&lt;p&gt;Billing follows the app. Usage is billed to the organization that owns the installation, and that org's model policies, budgets and spending limits apply. Owners can spot app usage in AI usage CSV reports through the &lt;code&gt;app_client_id&lt;/code&gt; field. This is how you run a Copilot-powered bot in CI without tying it to one employee's seat.&lt;/p&gt;

&lt;p&gt;GitHub also widened its usage data. On October 22, the usage metrics API started reporting &lt;a href="https://github.blog/changelog/2026-10-22-custom-skills-agents-and-mcp-servers-in-usage-metrics-api" rel="noopener noreferrer"&gt;custom skills, agents and MCP servers&lt;/a&gt;. On October 23, it added &lt;a href="https://github.blog/changelog/2026-10-23-usage-metrics-api-adds-usage-from-tools-like-opencode" rel="noopener noreferrer"&gt;usage from tools like OpenCode&lt;/a&gt;. A &lt;a href="https://github.blog/changelog/2026-10-22-global-default-for-copilot-features-generally-available" rel="noopener noreferrer"&gt;global default for Copilot features&lt;/a&gt; also reached GA on October 22.&lt;/p&gt;

&lt;p&gt;GPT-6.1 Terra arrived in Copilot on October 26 for Pro, Pro+, Max, Business and Enterprise plans. GitHub says it bills "at provider list pricing under usage-based billing." New models turn on by default unless an admin disables the global default or the model itself. If your org pins models, check your policy before the rollout reaches you.&lt;/p&gt;

&lt;p&gt;GitHub Universe runs October 28-29. Expect more Copilot news next week.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code 2.1.307 Through 2.1.312
&lt;/h3&gt;

&lt;p&gt;Claude Code shipped six releases between October 21 and October 27, according to npm. The &lt;a href="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; leaned toward permissions, sandboxing and cloud sessions.&lt;/p&gt;

&lt;p&gt;On approvals and safety, these changes stand out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bypass mode and &lt;code&gt;rm&lt;/code&gt;:&lt;/strong&gt; In the Desktop app and VS Code, the dangerous &lt;code&gt;rm&lt;/code&gt; and &lt;code&gt;rmdir&lt;/code&gt; prompt in bypass permissions mode now denies the command at once with a rewrite hint. Unattended sessions keep going instead of hanging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell fix:&lt;/strong&gt; Some &lt;code&gt;Set-Location&lt;/code&gt; and &lt;code&gt;cd&lt;/code&gt; commands with extra arguments were auto-approved. They now prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows hook fix:&lt;/strong&gt; PreToolUse and PermissionRequest hooks let some tool calls through when Git Bash was missing. That is fixed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ultrareview&lt;/code&gt; trust:&lt;/strong&gt; &lt;code&gt;claude ultrareview&lt;/code&gt; now requires workspace trust. Scripts must pass &lt;code&gt;--trust-workspace&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandbox fallback:&lt;/strong&gt; Commands excluded from the sandbox now ask before writing to protected paths when the sandbox is on but cannot run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Telemetry went back and forth. Version 2.1.307 added a &lt;code&gt;claude_code.safety_event&lt;/code&gt; OpenTelemetry event for every tool call that a rule, auto mode, hook or sandbox stopped. Version 2.1.312 stopped sending that event six days later. If you built a dashboard on it, check it now.&lt;/p&gt;

&lt;p&gt;Version 2.1.307 also added &lt;code&gt;/claude-api api-version&lt;/code&gt;, which moves your Claude API code to API version &lt;code&gt;2026-10-21&lt;/code&gt;. That pairs with the breaking API release we covered last week.&lt;/p&gt;

&lt;p&gt;On models and cost, &lt;code&gt;ultrathink&lt;/code&gt; in the terminal now runs its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API. Usage messages now say "5-hour limit" instead of "session limit." On Bedrock, Vertex, Foundry and Mantle, Claude Code now loads model settings from a signed file on downloads.claude.ai. You can turn that off with &lt;code&gt;CLAUDE_CODE_MODEL_CATALOG=off&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For enterprises, 2.1.312 added &lt;code&gt;oidc.user_id_claim&lt;/code&gt; to the Claude apps gateway. You can now identify people by a claim other than &lt;code&gt;sub&lt;/code&gt;, such as Microsoft Entra ID's &lt;code&gt;oid&lt;/code&gt;. Version 2.1.310 added cloud sessions and Remote Control permissions to Enterprise custom roles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Codex CLI 0.164.0 and 0.165.0
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/openai/codex/releases/tag/rust-v0.164.0" rel="noopener noreferrer"&gt;OpenAI shipped Codex CLI 0.164.0&lt;/a&gt; on October 23. Credentials got the most attention:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise MCP connections can now sign in with eligible Codex account grants or a dedicated sign-in, including OAuth clients that need secrets.&lt;/li&gt;
&lt;li&gt;Codex masks credentials during supported remote Bash and Zsh snapshot sessions, including credentials from custom providers.&lt;/li&gt;
&lt;li&gt;On Windows, HTTPS and WebSocket connections now answer proxy challenges with the user's Negotiate or NTLM credentials.&lt;/li&gt;
&lt;li&gt;Queued prompts now wait for pending permission choices before they continue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The release also added &lt;code&gt;/presets&lt;/code&gt;, ten numbered slots for saved prompts and slash commands. You can now set model, effort, speed and permission profile inline with &lt;code&gt;/model&lt;/code&gt; and &lt;code&gt;/permissions&lt;/code&gt;. The Amazon Bedrock setup wizard is on by default.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/openai/codex/releases/tag/rust-v0.165.0" rel="noopener noreferrer"&gt;Codex CLI 0.165.0&lt;/a&gt; followed on October 27. It added GPT-6.1 Terra to the model catalog and a built-in Google Cloud Vertex AI provider, set with &lt;code&gt;model_provider = "gcp"&lt;/code&gt;. Reasoning effort changes mid-conversation are now on by default for supported models. Memory v2 is the default for fresh profiles and can import memories from other agents.&lt;/p&gt;

&lt;p&gt;Two fixes matter for approvals. Fresh TUI sessions now honor the server's default approval reviewer. And Codex closed a marketplace URL validation gap that let Git connect to a host other than the one checked against allow patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Duet: An Agent That Asks Before It Pays
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://claude.com/resources/articles/claude-duet" rel="noopener noreferrer"&gt;Anthropic introduced Claude Duet&lt;/a&gt; on October 21 as a research preview. Duet runs on Opus 5.5 in its own cloud virtual machine with a browser, so your laptop can be closed. It sends a morning brief from your connected apps and checks them every few hours. It messages you only when something needs a decision.&lt;/p&gt;

&lt;p&gt;The approval model is the interesting part. Duet reads and drafts on its own. Before it sends a message, makes a payment, signs a document or deletes anything, it shows you the action and waits. Anthropic says an auto mode classifier handles those approval checks. Two actions are off-limits even with approval: trading securities and moving money between accounts.&lt;/p&gt;

&lt;p&gt;Anthropic also published &lt;a href="https://claude.com/resources/articles/claude-duet-safety-privacy-and-security" rel="noopener noreferrer"&gt;a safety and privacy note&lt;/a&gt; on October 23. A dedicated classifier blocks sharing of card numbers and government IDs. Duet never sees passwords or sign-in tokens directly.&lt;/p&gt;

&lt;p&gt;Duet is included in Pro and Max plans and shares their usage limits. Background checks count toward those limits. Access starts with a US waitlist for Pro and Max users on iOS, Android and claude.ai. Team and Enterprise plans are not included yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Security and Claude Enterprise
&lt;/h3&gt;

&lt;p&gt;On October 21, &lt;a href="https://claude.com/resources/articles/claude-security-now-scans-continuously-and-tracks-fixes" rel="noopener noreferrer"&gt;Claude Security started scanning continuously&lt;/a&gt; in public beta for Claude Enterprise. It runs a baseline scan, then rescans changes on a schedule set by risk. Findings close when the fix lands and reopen if the issue comes back. Anthropic says thousands of organizations have found over a million vulnerabilities with it since the April beta.&lt;/p&gt;

&lt;p&gt;The new pieces are an API, personal access tokens, webhooks and an MCP connector for Claude.ai and Claude Code. Role-based access controls decide who can view, triage and create projects. Anthropic is giving organizations $25,000 in free usage credits per month for two months, for usage through December 31, 2026.&lt;/p&gt;

&lt;p&gt;On October 23, &lt;a href="https://claude.com/resources/articles/unified-claude-enterprise" rel="noopener noreferrer"&gt;chat and Cowork merged for Claude Enterprise&lt;/a&gt;. A conversation starts as chat, and tasks that need code or files move to a cloud environment. The admin controls cover cost directly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model entitlements by role&lt;/li&gt;
&lt;li&gt;Spend limits at the organization, group and member level&lt;/li&gt;
&lt;li&gt;Pooled monthly budgets for groups&lt;/li&gt;
&lt;li&gt;A new setting that keeps the experience on Sonnet and Haiku models to save money&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Network egress is off by default for Enterprise cloud sessions, and connector credentials stay outside the sandbox. Organizations on zero data retention, HIPAA-ready setups or customer-managed keys stay on their current setup for now.&lt;/p&gt;

&lt;p&gt;On October 23, Anthropic also opened a &lt;a href="https://platform.claude.com/docs/en/release-notes/overview" rel="noopener noreferrer"&gt;Claude Tag API in beta&lt;/a&gt; for Enterprise orgs. It manages Claude Tag settings on Slack channels through Admin API keys with &lt;code&gt;read:claude_tag&lt;/code&gt; or &lt;code&gt;write:claude_tag&lt;/code&gt; scopes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quiet Week Elsewhere
&lt;/h3&gt;

&lt;p&gt;Cursor's changelog had no entries dated in this window. Its last post was October 20. We found nothing dated October 21-28 from Google Antigravity, Jules, Devin or Kiro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standards: Agent Skills Moves to the Agentic AI Foundation
&lt;/h2&gt;

&lt;p&gt;Standards had the busiest week of the quarter. AGNTCon + MCPCon North America ran October 22-23 in San Jose. Anthropic donated Agent Skills, OpenAI donated Open Responses, and MCP set a new release calendar. The talks focused less on new features and more on security and identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Skills Joins AAIF With Three Other Projects (October 22)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/donating-agent-skills-to-the-agentic-ai-foundation" rel="noopener noreferrer"&gt;Anthropic donated Agent Skills to the Agentic AI Foundation&lt;/a&gt; on October 22. Agent Skills is the open format where a skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt; file plus any scripts or reference files it needs. Anthropic handed over the standard, its name and logo, the GitHub organization and the agentskills.io domain.&lt;/p&gt;

&lt;p&gt;The adoption numbers are large. Anthropic says more than 70 agent platforms have integrated Agent Skills since the standard was published in December 2025. It names ChatGPT, Cursor, GitHub Copilot and VS Code. Anthropic also reports 1 million published skills and nearly 280 million installs.&lt;/p&gt;

&lt;p&gt;Governance now looks like MCP's. Engineers from Anthropic, Google, OpenAI and others will maintain the standard as individuals. David Soria Parra and Mahesh Murag are the lead maintainers. The proposed roadmap adds versioned releases, a formal proposal process and security guidance for people who write and install skills. No dates came with that roadmap. You do not need to join AAIF to use or contribute to the spec.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://aaif.io/news/agentic-ai-foundation-announces-four-new-projects" rel="noopener noreferrer"&gt;AAIF announcement&lt;/a&gt; named four new hosted projects:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq5x5ehutgic5lpe7ovww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq5x5ehutgic5lpe7ovww.png" alt="That brings AAIF to 10 hosted projects, up from three at its December 2025 launch. The other six are A2A, Agent Router, agentgateway, AGENTS.md, goose and MCP." width="553" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That brings AAIF to 10 hosted projects, up from three at its December 2025 launch. The other six are A2A, Agent Router, agentgateway, AGENTS.md, goose and MCP. The announcement did not state licenses for the four new projects.&lt;/p&gt;

&lt;p&gt;Open Responses deserves a closer look. It turns the shape of OpenAI's Responses API into a shared schema with common streaming events. If other providers adopt it, one client library can talk to many model APIs. That is the same move MCP made for tools.&lt;/p&gt;

&lt;p&gt;Why does this matter? Skills, tools, model interfaces, sandboxes and training environments now sit under one neutral roof. A skill you write for one agent has a real path to run in others. And no single vendor controls how the format changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP Locks In a Twice-Yearly Release Calendar (October 27)
&lt;/h3&gt;

&lt;p&gt;The MCP project merged &lt;a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3398" rel="noopener noreferrer"&gt;SEP-3398: Release Cycle Updates&lt;/a&gt; on October 27. Core Maintainers accepted it on October 14. It sets a fixed schedule for the Model Context Protocol spec.&lt;/p&gt;

&lt;p&gt;Here is how it works. Spec releases land on the last Tuesday of March and September. Each release gets an eight-month cycle, and cycles overlap by two months. The &lt;a href="https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/seps/3398-release-cycle-updates.md" rel="noopener noreferrer"&gt;SEP text&lt;/a&gt; sets these milestones before each release:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fajhc9vvu3cb8xmhw9p5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fajhc9vvu3cb8xmhw9p5k.png" alt="The SEP moves the December 2026 release target to late March 2027." width="364" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The near-term impact is a date change. The SEP moves the December 2026 release target to late March 2027. If you planned around a December spec, plan for March instead. Proposals not finished by soft freeze move to the next cycle, and the release date does not slip.&lt;/p&gt;

&lt;p&gt;Each SEP now needs a sponsor, either a Working Group or the Core Maintainer group. A primary and a secondary release manager run each cycle, and the secondary becomes primary next time. For anyone shipping an MCP client or server, this is good news. You get SDK betas six weeks before each release and two dates a year to plan around.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCPCon Talks: Tasks, Auth and 4.17 Billion Downloads
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.infoq.com/news/2026/10/agntcon-mcpcon-2026/" rel="noopener noreferrer"&gt;InfoQ's recap of AGNTCon + MCPCon&lt;/a&gt; captured the stage claims. InfoQ notes that several figures came without published data, so treat them as speaker-reported.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tasks in Claude Code:&lt;/strong&gt; David Soria Parra announced MCP tasks support in Claude Code. Tool calls can now run for minutes, hours or days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise-managed authorization:&lt;/strong&gt; Den Delimarsky said it is live in Claude and marked stable on the auth roadmap. Proof-of-possession tokens and workload identity federation sit in draft. The roadmap ends with agents that sign in as themselves instead of borrowing a user token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Downloads:&lt;/strong&gt; Delimarsky put cumulative MCP SDK downloads at 4.17 billion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conformance:&lt;/strong&gt; About one-third of the 116 conformance scenarios now test security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roadmap:&lt;/strong&gt; InfoQ lists agent messaging, skills over MCP, identity and an HTTP-native transport among five priority areas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two talks dealt with tool safety. Thomas Sarlandie of OpenAI said OpenAI rejects submitted MCP servers unless every tool carries annotations. Annotations let ChatGPT fast-track read-only calls and confirm destructive ones. He also shared data from the ChatGPT plugin directory: about three in four tool schemas are under 1 kB, and 56% of plugins use server instructions.&lt;/p&gt;

&lt;p&gt;Sarah Drasner of Chrome presented WebMCP, a proposed web standard now in origin trial. It lets websites expose tools that agents call directly instead of scraping the page. Chrome's benchmarks showed actions 2.5x to 7.5x faster. WebMCP adds read-only and untrusted-content hints to help agents resist prompt injection.&lt;/p&gt;

&lt;p&gt;If you run MCP servers, the action item is clear. Add tool annotations now. At least one major client already requires them, and the rest will follow.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP TypeScript SDK 2.4.0 Ships the Skills Extension (October 23)
&lt;/h3&gt;

&lt;p&gt;Last week we reported that only four providers serve skills over MCP the way the Skills Extension spec describes. The official SDK just made that easier. &lt;a href="https://github.com/modelcontextprotocol/typescript-sdk/releases" rel="noopener noreferrer"&gt;&lt;code&gt;@modelcontextprotocol/server&lt;/code&gt; 2.4.0&lt;/a&gt; shipped on October 23 with the Skills extension (SEP-2640) under new &lt;code&gt;ext/skills&lt;/code&gt; subpaths.&lt;/p&gt;

&lt;p&gt;The server side gets a &lt;code&gt;SkillsExtension&lt;/code&gt; that serves &lt;code&gt;skills/list&lt;/code&gt;, &lt;code&gt;skills/get&lt;/code&gt; and a &lt;code&gt;skill://&lt;/code&gt; resource template. A Node helper, &lt;code&gt;loadSkills(folder)&lt;/code&gt;, loads skills from a directory. The client side gets a &lt;code&gt;SkillsClient&lt;/code&gt; that verifies size, digest and &lt;code&gt;SKILL.md&lt;/code&gt; frontmatter on every read. The extension works on both the 2025-11-25 and 2026-07-28 protocol versions. The &lt;code&gt;attach&lt;/code&gt; method is marked experimental, and the rest of the Skills API is stable.&lt;/p&gt;

&lt;p&gt;Two breaking-ish changes ride along. The SDK now rejects &lt;code&gt;x-mcp-header&lt;/code&gt; on &lt;code&gt;number&lt;/code&gt;-typed tool parameters, matching the 2026-07-28 spec. Use an integer type instead. And a newer bundled validator rejects some &lt;code&gt;$id&lt;/code&gt; and &lt;code&gt;$ref&lt;/code&gt; values with invalid URI schemes, such as &lt;code&gt;my_tool:output&lt;/code&gt;. Check your tool schemas before you upgrade.&lt;/p&gt;

&lt;p&gt;The MCP registry also shipped versions 1.8.4, 1.8.5 and &lt;a href="https://github.com/modelcontextprotocol/registry/releases" rel="noopener noreferrer"&gt;1.8.6&lt;/a&gt; between October 23 and October 27. Version 1.8.6 now requires at least three characters for nonempty search terms. Shorter searches return HTTP 422.&lt;/p&gt;

&lt;h3&gt;
  
  
  A2A and Agent Identity
&lt;/h3&gt;

&lt;p&gt;A2A had no release this week. The latest tag on the &lt;a href="https://github.com/a2aproject/A2A/releases" rel="noopener noreferrer"&gt;A2A repo&lt;/a&gt; is still v1.0.1 from May. Agent identity moved forward through vendor features, not a new standard. Copilot's server-to-server tokens, Claude's enterprise-managed MCP authorization and Codex's enterprise MCP sign-in all landed in the same week. Each one gives an agent its own scoped credential instead of a person's password or long-lived token.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure: Anthropic's S-1 Puts a Price on Frontier Compute
&lt;/h2&gt;

&lt;p&gt;The infrastructure story came from an IPO filing. Anthropic's S-1 gave the clearest public view yet of what a frontier lab commits to spend on compute. SK hynix then reported a quarter that shows where much of that money ends up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Anthropic Files Its S-1 (October 26)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/s1-sec" rel="noopener noreferrer"&gt;Anthropic announced it filed a Form S-1&lt;/a&gt; with the SEC on October 26. It plans to list Class A common stock on the Nasdaq Global Select Market under the ticker "ANT." Share count and price range are not set yet. Goldman Sachs and Morgan Stanley are the named sources for the preliminary prospectus.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm" rel="noopener noreferrer"&gt;S-1 itself&lt;/a&gt; carries the numbers. We pulled these directly from the filing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Revenue:&lt;/strong&gt; $16.3 billion for the six months ended June 30, 2026, up from $1.2 billion a year earlier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Q2 2026:&lt;/strong&gt; revenue of $11.6 billion, up from $787 million, with operating income of $1.0 billion and an 8% operating margin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating loss:&lt;/strong&gt; $693 million for the first half of 2026, down from $2.1 billion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prior years:&lt;/strong&gt; revenue of $41 million in 2023, $386 million in 2024 and $4.6 billion in 2025&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now the compute side. As of June 30, 2026, Anthropic reports about &lt;strong&gt;$265.6 billion&lt;/strong&gt; in expected fixed or minimum guaranteed compute commitments, with terms from one to 20 years. On top of that, it has agreements with no fixed dollar figure, where payments depend on capacity delivered and pricing.&lt;/p&gt;

&lt;p&gt;Press coverage has quoted totals from $417 billion to over $600 billion. Those higher figures add estimates and leases on top of the contractual minimums. The $265.6 billion number is the one in the filing's commitment disclosure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Four Chip Families, Five Clouds
&lt;/h3&gt;

&lt;p&gt;The S-1 describes a "multi-chip compute architecture across AWS Trainium, Google TPUs, NVIDIA GPUs, and AMD GPUs." It names the partners behind each one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AMD:&lt;/strong&gt; In July 2026, Anthropic signed a hardware supply framework with AMD for Helios rack-scale systems with Instinct MI450 series GPUs. It commits to an initial tranche in calendar 2027. If it buys the full tranche, Anthropic expects spending to exceed $20.0 billion. The deal allows a second tranche of about the same size. AMD agreed to buy up to $5.0 billion of Anthropic's Class N stock if conditions are met.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA:&lt;/strong&gt; Access to Grace Blackwell and Vera Rubin systems comes through NVIDIA and through Microsoft, SpaceXAI, Nscale, Lambda and other clouds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SpaceXAI:&lt;/strong&gt; Between May and October 2026, Anthropic signed and amended agreements with SpaceX.AI LLC, formerly X.AI LLC, for NVIDIA GPU compute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google and Amazon:&lt;/strong&gt; Both have note purchase agreements of up to $20.0 billion each. They supply TPU and Trainium capacity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why does this matter to you? Model pricing depends on these contracts. A lab that spreads work across four chip families can shift workloads to the cheapest capacity. That is part of why mid-tier and fast-mode prices keep falling. It also shows the lock-in risk runs both ways. Labs commit for up to 20 years, so they need steady token demand to pay for it.&lt;/p&gt;

&lt;h3&gt;
  
  
  SK hynix Q3: Sold Out Through 2028, Short Through 2030 (October 28)
&lt;/h3&gt;

&lt;p&gt;SK hynix reported third-quarter results on October 28 in Seoul. &lt;a href="https://www.investing.com/news/company-news/sk-hynix-q3-2026-slides-revenue-tops-100t-80-margin-on-ai-boom-93CH-4977357" rel="noopener noreferrer"&gt;Investing.com's summary of the earnings slides&lt;/a&gt; gives these figures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Revenue:&lt;/strong&gt; 104.62 trillion won, up 32% from Q2 and 328% from a year earlier. It is the first quarter above 100 trillion won.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating profit:&lt;/strong&gt; 83.33 trillion won, an 80% operating margin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Net profit:&lt;/strong&gt; 39.78 trillion won, down 58% from Q2 on a 32.63 trillion won non-operating loss&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Investing.com notes its summary was AI-assisted, so confirm figures against SK hynix's own filings.&lt;/p&gt;

&lt;p&gt;The supply comments matter more than the profit. SK hynix has long-term agreements with 14 key customers, including major cloud providers, on standard five-year terms. Those deals cover more than 50% of total capacity for both 2027 and 2028. Management expects memory demand to outrun supply through 2030.&lt;/p&gt;

&lt;p&gt;HBM4 is taking over. SK hynix expects HBM4 to pass HBM3E in both shipments and revenue in the fourth quarter. That tracks with NVIDIA's Vera Rubin ramp. The company also expects 2027 capex to rise significantly as it brings up its first Yongin fab.&lt;/p&gt;

&lt;p&gt;Put this next to the Anthropic filing. Labs sign 20-year compute deals, and memory makers sign five-year supply deals. The AI hardware market is moving from spot buying to long contracts. If you plan to buy GPUs in 2027, the memory inside them is already spoken for.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA and Oracle: Vera Rubin GA on OCI (October 27)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nvidianews.nvidia.com/news/nvidia-and-oracle-expand-nvidia-vera-rubin-to-multi-gigawatt-scale-and-bring-nvidia-vera-cpu-to-oracle-cloud-infrastructure" rel="noopener noreferrer"&gt;NVIDIA and Oracle announced&lt;/a&gt; on October 27 that Vera Rubin NVL72 systems and NVIDIA Vera CPUs are generally available on Oracle Cloud Infrastructure. The two companies plan to grow OCI Superclusters with Vera Rubin to multi-gigawatt scale. They gave no exact gigawatt figure.&lt;/p&gt;

&lt;p&gt;Each NVL72 rack links 72 GPUs over NVLink. OCI uses Spectrum-X Ethernet with Spectrum-6 switches and BlueField-4 DPUs. A planned HGX Rubin NVL8 server pairs eight Rubin GPUs with two 64-core Intel Xeon 6 CPUs, 4 TB of DDR5 and 6.4 Tbps of RDMA networking. No date was given for NVL8.&lt;/p&gt;

&lt;p&gt;The release adds one useful data point. OpenAI trained and served GPT-6 Astra on an OCI Supercluster in Abilene with more than 100,000 Blackwell GPUs. OpenAI also plans to run Vera CPUs in production on OCI for agent sandbox workloads.&lt;/p&gt;

&lt;p&gt;That last detail is a trend. Agents run code, browse and call tools, and much of that work runs on CPUs, not GPUs. NVIDIA wants that CPU business too.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA and Meta: $3 Billion and Vera Rubin (October 26)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nvidianews.nvidia.com/news/nvidia-and-meta-to-expand-collaboration-on-muse-and-muse-family-of-models-amid-robust-growth" rel="noopener noreferrer"&gt;NVIDIA and Meta expanded their collaboration&lt;/a&gt; on the Muse model family on October 26. Meta will deploy more NVIDIA infrastructure, including Vera Rubin, Vera CPUs, Spectrum-X Ethernet and BlueField-4. NVIDIA will invest $3 billion in Meta's equity offering, subject to closing conditions.&lt;/p&gt;

&lt;p&gt;The two companies will also look at NVIDIA's OpenShell Reference Architecture for safe agent deployment, including the Sentry monitor we covered last week. The release gave no GPU counts, gigawatt figures or timeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  What We Did Not See
&lt;/h3&gt;

&lt;p&gt;We found no dated news in the window on Google TPUs, AWS Trainium or Microsoft Maia. Reports that Oracle will host OpenAI's Jalapeño chip and Google TPUs at Oracle AI World came from a single secondary source, and Oracle has not confirmed them in a release we found. We left them out. Intel and Samsung had not posted third-quarter results by our cutoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Layer Takeaway
&lt;/h2&gt;

&lt;p&gt;Three threads from this week point at the data layer.&lt;/p&gt;

&lt;p&gt;First, defaults now carry governance weight. Gemini's new &lt;code&gt;store=true&lt;/code&gt; default, Copilot's assisted permissions and Claude Code's sandbox changes all decide what happens to your data before you make a choice. Data teams need to read changelogs the way security teams read CVE feeds.&lt;/p&gt;

&lt;p&gt;Second, agent work is getting longer. MCP tasks in Claude Code let a tool call run for hours or days. Duet checks your accounts every few hours and keeps working while you sleep. Long-running agents need data sources with stable identities, clear access rules and an audit trail. A governed lakehouse catalog gives an agent that boundary.&lt;/p&gt;

&lt;p&gt;Third, skills are becoming the unit of reuse. With Agent Skills under AAIF and a Skills extension in the official MCP SDK, a skill that teaches an agent how to query your tables can travel between Claude, ChatGPT, Copilot and Cursor. Teams that write good skills for their semantic layer will get more out of every agent they adopt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;October 28-29:&lt;/strong&gt; GitHub Universe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 31:&lt;/strong&gt; Mistral Large 4 weights deadline, and DeepSeek Search and Fetch billing starts for harness users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;November 4:&lt;/strong&gt; Kimi K3.1 Pro open weights, with a license still to be named&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;November 16:&lt;/strong&gt; Copilot retires Claude Opus 4.8, Opus 5 and GPT-5.6 Terra&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;November 30:&lt;/strong&gt; Claude Sonnet 4.5 retires&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ongoing:&lt;/strong&gt; Anthropic's S-1 amendments, which should add share count and price range&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Resources to Go Further
&lt;/h2&gt;

&lt;p&gt;AI changes fast. Here are tools and resources to help you keep pace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Dremio Free&lt;/strong&gt; - Experience agentic analytics and an Apache Iceberg-powered lakehouse. &lt;a href="https://www.dremio.com/get-started?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-28-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Start your free trial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn Agentic AI with Data&lt;/strong&gt; - Dremio's agentic analytics features let your AI agents query and act on live data. &lt;a href="https://www.dremio.com/use-cases/agentic-ai/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-28-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Explore Dremio Agentic AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join the Community&lt;/strong&gt; - Connect with data engineers and AI practitioners building on open standards. &lt;a href="https://developer.dremio.com/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-28-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Join the Dremio Developer Community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book: The 2026 Guide to AI-Assisted Development&lt;/strong&gt; - Covers prompt engineering, agent workflows, MCP, evaluation, security, and career paths. &lt;a href="https://www.amazon.com/2026-Guide-AI-Assisted-Development-Engineering-ebook/dp/B0GQW7CTML/" rel="noopener noreferrer"&gt;Get it on Amazon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book: Using AI Agents for Data Engineering and Data Analysis&lt;/strong&gt; - A practical guide to Claude Code, Google Antigravity, OpenAI Codex, and more. &lt;a href="https://www.amazon.com/Using-Agents-Data-Engineering-Analysis-ebook/dp/B0GR6PYJT9/" rel="noopener noreferrer"&gt;Get it on Amazon&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Weekly: Open Weights Surge and a Breaking Claude API</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 21 Oct 2026 19:51:46 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/ai-weekly-open-weights-surge-and-a-breaking-claude-api-52cc</link>
      <guid>https://dev.to/alexmercedcoder/ai-weekly-open-weights-surge-and-a-breaking-claude-api-52cc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Week of October 14-21, 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The big frontier launches landed just before this window. Claude Haiku 5.5, GPT-6 in ChatGPT, Meta Muse Wonder and Gemini 4 Argon all shipped between October 7 and October 13. This week was about what came after: a wave of open-weight models, a breaking Claude API version, a round of model retirements and an NVIDIA keynote that put supply chains ahead of chips.&lt;/p&gt;

&lt;p&gt;Here is what changed, what it costs and what you need to do about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models: Meta Muse Spark Open Leads an Open-Weight Week
&lt;/h2&gt;

&lt;p&gt;No new closed frontier flagship shipped between October 14 and October 21. The open-weight side made up for it. Meta, NVIDIA, DeepSeek, MiniMax, Mistral and Tencent all released models or weights in the same seven days. For teams that self-host or fine-tune, this was the busiest week of the quarter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meta Muse Spark Open (October 15)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://research.meta.ai/blog/muse-spark-open" rel="noopener noreferrer"&gt;Meta released Muse Spark Open&lt;/a&gt; on October 15. The model ID on Hugging Face is &lt;a href="https://huggingface.co/meta-models/Muse-Spark-Open-816B-A42B" rel="noopener noreferrer"&gt;&lt;code&gt;meta-models/Muse-Spark-Open-816B-A42B&lt;/code&gt;&lt;/a&gt;. It is a mixture-of-experts model with 816 billion total parameters and 42 billion active per token. Context reaches 1 million tokens. Meta did not publish a max output figure.&lt;/p&gt;

&lt;p&gt;The model is natively multimodal. &lt;a href="https://www.techrepublic.com/article/news-meta-muse-spark-open-apple-mac-studio/" rel="noopener noreferrer"&gt;Press coverage&lt;/a&gt; describes text, image, video and audio input with text output. Meta ships weights in BF16, and coverage also reports an NVFP4 build. Day-one engine support covers SGLang, vLLM, TensorRT-LLM, Transformers, MLX, llama.cpp and Unsloth.&lt;/p&gt;

&lt;p&gt;Distribution is wide. Weights are on Hugging Face, Amazon SageMaker AI, Google Cloud Model Garden and Microsoft Foundry. Hosted APIs are live on Baseten, Fireworks, Groq, Modal, Nebius, OpenRouter and Together. Meta also demoed the model on two linked M5 Ultra Mac Studios. That is a useful signal for anyone sizing on-prem hardware.&lt;/p&gt;

&lt;p&gt;Two caveats matter. First, Meta published no per-token price, so cost depends on the host you pick. Second, the license is the "Muse Model License," not Apache 2.0 or MIT. Meta describes it as carrying "limited commercial terms." &lt;a href="https://www.trendingtopics.eu/muse-spark-open-meta-open-weight-license/" rel="noopener noreferrer"&gt;One third-party reading&lt;/a&gt; says API resellers above $20 million in gross revenue need a separate deal with Meta. That reading is unconfirmed, so check with your legal team before building a business on it.&lt;/p&gt;

&lt;p&gt;Meta calls Muse Spark Open "the most capable US open-weight model to date." Its blog gives no benchmark scores to back that claim. Artificial Analysis, an independent evaluator, scored it 39 on its Intelligence Index, according to press reports. That puts it behind MiMo-V2.6-Pro at 46 on the same index.&lt;/p&gt;

&lt;p&gt;The strategic story is bigger than the score. Meta's previous flagship, Muse Spark, was closed. Muse Spark Open marks a partial return to the open-weight playbook that made Llama popular. For lakehouse teams running agents next to governed data, a 1M-context open model with broad engine support is a real option for private deployments.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA Nemotron 3.5 Super VL and Bolt (October 15)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blogs.nvidia.com/blog/nemotron-3-5-super-vl/" rel="noopener noreferrer"&gt;NVIDIA expanded the Nemotron family&lt;/a&gt; on the same day. The headline model is Nemotron 3.5 Super VL, a 120B-A12B vision-language mixture-of-experts model built for agents. NVIDIA trained it on about 26 trillion tokens, then added about 3.8 million post-training samples and a reinforcement learning stage.&lt;/p&gt;

&lt;p&gt;NVIDIA says Super VL comes close to its largest reasoning model at about one-fifth the parameters. It also claims up to 5x the throughput of the next-best open model in its class, citing an Artificial Analysis chart. Treat that 5x as vendor-reported. &lt;a href="https://www.hpcwire.com/aiwire/2026/10/15/nvidia-expands-nemotron-family-with-highest-efficiency-super-vl-and-bolt-models/" rel="noopener noreferrer"&gt;HPCwire reports&lt;/a&gt; a score of 26.5 on the Artificial Analysis Intelligence Index, plus a context of up to 1M tokens and the OpenMDW-1.1 license. NVIDIA's own blog states neither the context nor the license, so confirm both on the model card before you deploy.&lt;/p&gt;

&lt;p&gt;The more interesting release for many readers is Nemotron 3.5 Bolt 74B-A9B. NVIDIA trained it with native 2-bit quantization so the full model fits in 24GB of memory. That targets RTX desktops, DGX Spark and the new RTX Spark laptops. It runs on llama.cpp, Ollama, LM Studio, Unsloth and vLLM.&lt;/p&gt;

&lt;p&gt;NVIDIA claims Bolt ranks first among open models in its class on PinchBench and second on BrowseComp. Both rankings are vendor-reported. Press reports put Bolt at 21.4 on the Artificial Analysis Intelligence Index. A smaller Bolt E4B that fits in 4GB is due October 23.&lt;/p&gt;

&lt;p&gt;Super VL is available on Hugging Face, OpenRouter, ModelScope and NVIDIA NIM. If you need an agent model that reads screenshots and documents on your own GPUs, it belongs on your test list.&lt;/p&gt;

&lt;h3&gt;
  
  
  DeepSeek-V4.1-Flash-1017 and Search &amp;amp; Fetch APIs (October 17)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://api-docs.deepseek.com/news/news261017" rel="noopener noreferrer"&gt;DeepSeek shipped a refreshed V4.1 Flash&lt;/a&gt; on October 17. The model ID is &lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017" rel="noopener noreferrer"&gt;&lt;code&gt;deepseek-ai/DeepSeek-V4.1-Flash-1017&lt;/code&gt;&lt;/a&gt;. Hugging Face metadata lists 763 billion total parameters. One secondary source said 552 billion, so trust the Hugging Face figure. Context is 1M tokens, and the weights carry an MIT license.&lt;/p&gt;

&lt;p&gt;The gains over the September build are large on agent and coding tasks. These numbers come from DeepSeek's model card, so they are vendor-reported:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87prn27x68p28gyn5awd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87prn27x68p28gyn5awd.png" alt="These numbers come from DeepSeek's model card, so they are vendor-reported" width="377" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DeepSeek's own table lists Claude Opus 5 at 74.0 on DeepSWE v1.1. That puts the new Flash snapshot ahead on that one test, by DeepSeek's count. Wait for independent runs before you treat that as settled.&lt;/p&gt;

&lt;p&gt;Pricing is murky. DeepSeek's announcement shows prices only in an image. A secondary source says pricing is unchanged at $0.15 input and $0.60 output per million tokens off-peak, and $0.30 and $1.20 at peak. We did not find those figures in a text source, so check the DeepSeek console.&lt;/p&gt;

&lt;p&gt;The second launch matters as much as the model. DeepSeek opened its Search and Fetch APIs to all users at $0.75 per 1,000 calls per endpoint. Calls are free through server-side tools in DeepSeek Harness, Claude Code and Codex until October 31 at 16:00 UTC. Model labs now sell the tools around the model, not just the tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  MiniMax M3.1 Flash (October 19)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.minimax.io/blog/minimax-m31f" rel="noopener noreferrer"&gt;MiniMax released M3.1 Flash&lt;/a&gt; on October 19 under the model ID &lt;code&gt;MiniMax-M3.1-Flash&lt;/code&gt;. It had circulated as "Space Bunny" since late September. Pricing is $0.15 per million input tokens, $0.60 per million output tokens and $0.015 per million cached input tokens.&lt;/p&gt;

&lt;p&gt;MiniMax says the model costs 70% less on agentic tasks than its predecessor. It also claims about 3x the speed, with 200+ tokens per second at peak and 170+ at the median. MiniMax did not state a context window. One gateway lists 1M tokens.&lt;/p&gt;

&lt;p&gt;The vendor-reported scores lean hard toward agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSWE v1.1: 73.7%&lt;/li&gt;
&lt;li&gt;OSWorld V2: 61.7&lt;/li&gt;
&lt;li&gt;Agents' Last Exam: 29.6&lt;/li&gt;
&lt;li&gt;BankerToolBench: 76.2&lt;/li&gt;
&lt;li&gt;CyberGym: 82%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model is live on the MiniMax API, the M Plan and MiniMax Code. MiniMax says weights "will be released later." Reports point to October 23, but that date is unconfirmed.&lt;/p&gt;

&lt;p&gt;Note the pricing pattern. MiniMax M3.1 Flash and the reported DeepSeek off-peak rate both sit at $0.15 in and $0.60 out. Fast agent-grade models are converging on a price floor. That changes the math on running agents over large datasets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistral Timestral, Tencent Hy-Memory and Grok Voice 3.0
&lt;/h3&gt;

&lt;p&gt;Three smaller releases deserve a note.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mistral.ai/news/timestral/" rel="noopener noreferrer"&gt;Mistral released Timestral&lt;/a&gt; on October 15. It is a family of time-series forecasting models in 5M, 28M, 123M and 209M sizes under a modified MIT license. Context is 32,768 steps with a 1,024-step forecast horizon. Mistral reports the &lt;a href="https://huggingface.co/mistralai/Timestral-209M" rel="noopener noreferrer"&gt;209M model&lt;/a&gt; ranks first on GIFT-Eval, with a MASE of 0.658 and CRPS of 0.446, plus first place on TIME and fev-bench. Those rankings are vendor-reported. The model runs on CPU, and Mistral says a 209M forecast took 140 milliseconds on 8 threads.&lt;/p&gt;

&lt;p&gt;Timestral is worth a look for data teams. Forecasting on lakehouse tables usually means exporting data to a separate ML stack. A 209M model that runs on CPU in milliseconds can sit much closer to the query engine.&lt;/p&gt;

&lt;p&gt;Tencent posted &lt;a href="https://huggingface.co/tencent/Hy-Memory-30B-A3B" rel="noopener noreferrer"&gt;Hy-Memory-30B-A3B&lt;/a&gt; to Hugging Face on October 15. It is a memory-writer model with about 3 billion active parameters under Apache 2.0. Its job is to decide what an agent should remember between sessions. Tencent reports a cross-harness average of 55.49, against 54.62 for Claude Opus 5. That comparison is vendor-reported.&lt;/p&gt;

&lt;p&gt;xAI shipped &lt;a href="https://docs.x.ai/docs/release-notes" rel="noopener noreferrer"&gt;Grok Voice 3.0&lt;/a&gt; as &lt;code&gt;grok-voice-3.0&lt;/code&gt; at $0.08 per minute. If you call the &lt;code&gt;grok-voice-latest&lt;/code&gt; alias, you are now on 3.0, and version 2.0 is deprecated. &lt;a href="https://techenclave.com/news/items/xai-releases-grok-voice-3-and-upgrades-the-latest-api-alias" rel="noopener noreferrer"&gt;Press reports&lt;/a&gt; put it at 86.9 on the Artificial Analysis speech-to-speech index, up from 81.3. Latency rose from 0.70 seconds to 0.81 seconds. Pin your version if latency matters to your app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude API Version 2026-10-21 Breaks Old Calls (October 21)
&lt;/h3&gt;

&lt;p&gt;The most important model-platform change this week was not a model. Anthropic shipped &lt;a href="https://platform.claude.com/docs/en/api/migration-2026-10-21" rel="noopener noreferrer"&gt;API version &lt;code&gt;2026-10-21&lt;/code&gt;&lt;/a&gt; along with new major versions of every official SDK. The new SDKs send the new version header by default. If you upgrade your SDK without reading the migration guide, some calls will fail.&lt;/p&gt;

&lt;p&gt;Here are the new SDK versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 2.0.0&lt;/li&gt;
&lt;li&gt;TypeScript 1.0.0&lt;/li&gt;
&lt;li&gt;C# 13.0.0&lt;/li&gt;
&lt;li&gt;Go 2.0.0&lt;/li&gt;
&lt;li&gt;Java 3.0.0&lt;/li&gt;
&lt;li&gt;PHP 1.0.0&lt;/li&gt;
&lt;li&gt;Ruby 2.0.0&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ant&lt;/code&gt; CLI 2.0.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SDKs and CLI also move from the MIT license to Apache 2.0.&lt;/p&gt;

&lt;p&gt;Three request patterns now return a 400 error under the new version. First, sending &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt; or &lt;code&gt;top_k&lt;/code&gt; fails, even at default values. Second, a &lt;code&gt;document&lt;/code&gt; block placed directly in an assistant message fails. Third, a user &lt;code&gt;text&lt;/code&gt; block with non-empty &lt;code&gt;citations&lt;/code&gt; fails. Workloads that need sampling parameters can stay on the &lt;code&gt;2023-06-01&lt;/code&gt; version for now.&lt;/p&gt;

&lt;p&gt;The SDK changes go further. Text Completions is gone from the TypeScript, Go, Java and Ruby SDKs and from the CLI. API keys now travel as &lt;code&gt;Authorization: Bearer&lt;/code&gt;, so check any proxy that inspects the old header. Each client now holds one credential, resolved in a fixed order: &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;, then &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt;, then the profile, then workload identity federation. The &lt;code&gt;ant&lt;/code&gt; CLI drops its &lt;code&gt;--api-key&lt;/code&gt; and &lt;code&gt;--auth-token&lt;/code&gt; flags. The Admin API drops old field names and replaces &lt;code&gt;workspace_id&lt;/code&gt; on API keys with &lt;code&gt;scope&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The practical advice is simple. Pin your SDK version in CI today. Then upgrade on a branch, run your test suite and fix the 400s before you ship. The &lt;a href="https://platform.claude.com/docs/en/release-notes/overview" rel="noopener noreferrer"&gt;full release notes&lt;/a&gt; list every change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Anthropic Updates
&lt;/h3&gt;

&lt;p&gt;Anthropic made several smaller changes in the same week.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;October 14:&lt;/strong&gt; OpenTelemetry export entered beta, and Managed Agents gained scheduled deployments on Claude Platform on AWS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 15:&lt;/strong&gt; Opus 5.5 fast mode left research preview. It no longer needs a beta header, gets default rate limits and is available on Microsoft Foundry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 15:&lt;/strong&gt; The Models API now reports whether each model supports &lt;code&gt;thinking: {type: "between_tools"}&lt;/code&gt;, which turns off up-front thinking and lets the model think only between tool calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retirement:&lt;/strong&gt; &lt;a href="https://platform.claude.com/docs/en/about-claude/model-deprecations" rel="noopener noreferrer"&gt;Claude Sonnet 4.5 retires on November 30&lt;/a&gt;. The replacement is &lt;code&gt;claude-sonnet-5-5&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the policy side, Anthropic published &lt;a href="https://www.anthropic.com/news/an-update-on-independent-evaluators" rel="noopener noreferrer"&gt;an update on independent evaluators&lt;/a&gt; on October 15. METR now has employee-like access, with six staff onboarded and the right to publish. SecureBio is reviewing the chemical and biological chapter of Anthropic's August Risk Report. Outside review with publication rights is a meaningful step for frontier lab transparency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retirements Across Codex and Copilot
&lt;/h3&gt;

&lt;p&gt;Model retirements hit two major coding platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.chatgpt.com/docs/changelog" rel="noopener noreferrer"&gt;OpenAI retired GPT-5.5 in Codex&lt;/a&gt; on October 14 for users signed in with ChatGPT. API-key sessions are not affected. The replacement is &lt;code&gt;gpt-6.1-sol&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.blog/changelog/2026-10-19-github-copilot-models-deprecated-on-october-19-2026" rel="noopener noreferrer"&gt;GitHub deprecated six Copilot models&lt;/a&gt; on October 19:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbuaukny308tkt3lhbsi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbuaukny308tkt3lhbsi6.png" alt=" " width="263" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub also &lt;a href="https://github.blog/changelog/2026-10-15-upcoming-deprecation-of-selected-github-copilot-models-in-mid-november" rel="noopener noreferrer"&gt;announced a second round for November 16&lt;/a&gt;. Claude Opus 4.8 and Opus 5 move to Opus 5.5. GPT-5.6 Terra moves to GPT-6.1 Sol or GPT-6 Luna. If your team pins models in Copilot policies, update those policies before mid-November.&lt;/p&gt;

&lt;h3&gt;
  
  
  What This Means for Practitioners
&lt;/h3&gt;

&lt;p&gt;Three patterns stand out. Open-weight models now ship with 1M context, broad engine support and hosted APIs on day one. Fast agent models are settling at $0.15 in and $0.60 out per million tokens. And platform churn is real: in one week you got a breaking API version, eight model retirements and an alias that silently moved to a new voice model. Pin versions, track deprecation pages and budget time each month for upgrades.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling: Approval Modes, Credentials and Multi-Model Coding
&lt;/h2&gt;

&lt;p&gt;Coding agents had a security-heavy week. The common theme was control. Vendors tightened who approves an agent's actions, how credentials flow and how long tokens live.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code 2.1.299 Through 2.1.306
&lt;/h3&gt;

&lt;p&gt;Claude Code shipped eight releases between October 14 and October 21, according to npm. The &lt;a href="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; shows the bulk of the work went into approval modes and permissions.&lt;/p&gt;

&lt;p&gt;On approval modes, a new &lt;code&gt;/auto-mode-setup&lt;/code&gt; command walks you through auto mode, which now works on more providers. Headless &lt;code&gt;claude -p&lt;/code&gt; runs and SDK sessions now start in &lt;code&gt;default&lt;/code&gt; mode on third-party providers. That is a safer starting point for CI pipelines. A new &lt;code&gt;CLAUDE_CODE_AUTO_MODE_MODEL&lt;/code&gt; variable sets which model classifies actions in auto mode. And a check can now carry &lt;code&gt;decider: "person"&lt;/code&gt;, which means only a human can approve it.&lt;/p&gt;

&lt;p&gt;Observability improved too. OpenTelemetry &lt;code&gt;tool_decision&lt;/code&gt; events now include &lt;code&gt;classifier_verdict&lt;/code&gt; and &lt;code&gt;permission_mode&lt;/code&gt;. Security teams can now see why an agent action was allowed, not just that it happened.&lt;/p&gt;

&lt;p&gt;Several permission rules got stricter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP allow rules now match only the server they name.&lt;/li&gt;
&lt;li&gt;Hooks in Cowork cloud sessions can no longer change the permission mode.&lt;/li&gt;
&lt;li&gt;A new &lt;code&gt;sandbox.allowNestedUserNamespaces&lt;/code&gt; setting exists, and the changelog warns that it can bypass sandbox file protections. Leave it off unless you know why you need it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;allowedMcpServers&lt;/code&gt; no longer filters some managed servers. Admins should use &lt;code&gt;deniedMcpServers&lt;/code&gt; to block servers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Credential fixes landed for &lt;code&gt;forceLoginOrgUUID&lt;/code&gt; and MDM login settings, plus a login bug in cloud &lt;code&gt;-p&lt;/code&gt; runs.&lt;/p&gt;

&lt;p&gt;Billing and usage got clearer warnings. Idle compaction now runs for conversations over 200K tokens that sit idle for about 54 minutes. New &lt;code&gt;/usage&lt;/code&gt; warnings appear, and Pro and Max users see a warning before resuming an idle conversation that eats a noticeable share of the 5-hour limit. Prompt suggestions are skipped after replies billed to credits.&lt;/p&gt;

&lt;p&gt;One fix will save some people real pain. The &lt;code&gt;--worktree&lt;/code&gt; flag no longer silently deletes a worktree and its branch at exit. New &lt;code&gt;/advisor&lt;/code&gt; and &lt;code&gt;/claude-api managed-agents-secure&lt;/code&gt; commands round out the releases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Codex CLI 0.163.0 (October 15)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/openai/codex/releases/tag/rust-v0.163.0" rel="noopener noreferrer"&gt;OpenAI shipped Codex CLI 0.163.0&lt;/a&gt; on October 15. The feature list is practical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A searchable &lt;code&gt;/config&lt;/code&gt; screen&lt;/li&gt;
&lt;li&gt;Steering Codex while it is mid-response&lt;/li&gt;
&lt;li&gt;A leader key in &lt;code&gt;/keymap&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;/daemon&lt;/code&gt; command that restarts the background server&lt;/li&gt;
&lt;li&gt;Parallel read-only tool calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A feature called "Daybreak" is now on by default for eligible accounts. The release notes do not explain what it does.&lt;/p&gt;

&lt;p&gt;The security fixes matter more. Resumed threads now restore their permissions and network approvals, so a resumed session no longer starts with stale or missing grants. The network proxy now checks permission before the DNS lookup and blocks credential-alias bypasses. New sandbox integrity checks run on Linux with bubblewrap, macOS with Seatbelt and Windows with MXC. Codex also stopped bundling its patched zsh. On the model side, Codex now advertises Ultrafast mode for GPT-6.1 Sol on Amazon Bedrock.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot HydraFusion Max (October 14)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.blog/changelog/2026-10-14-hydrafusion-updates-and-new-max-option" rel="noopener noreferrer"&gt;GitHub updated HydraFusion&lt;/a&gt; and added a HydraFusion Max option in research preview. HydraFusion combines several models into one answer. The model pool is Claude Opus 5.5, GPT-6 Astra, GPT-6.1 Sol and GPT-6 Luna.&lt;/p&gt;

&lt;p&gt;Drafts run at medium reasoning effort and reviews run at high effort. A new "Cascade" judging step asks for a repair only when the judge finds a problem. Critique now uses several critic models in parallel. HydraFusion works in VS Code, the Copilot app and Copilot CLI on the Pro, Pro+, Business and Enterprise plans.&lt;/p&gt;

&lt;p&gt;One gap stands out. GitHub's post does not explain how HydraFusion Max bills premium requests. Several models per answer means several model calls per answer. Check your usage dashboard before you turn it on for a whole org.&lt;/p&gt;

&lt;p&gt;GitHub shipped more on October 15. &lt;a href="https://github.blog/changelog/2026-10-15-agentic-autofix-for-code-scanning-alerts-general-availability" rel="noopener noreferrer"&gt;Agentic autofix for code scanning is now generally available&lt;/a&gt;. AI Scan for pull requests also reached GA, and Copilot in Slack and Teams gained multi-repo support. On October 19, GitHub released a &lt;a href="https://github.blog/changelog/2026-10-19-copilot-model-policy-api-for-enterprise-orgs-and-teams" rel="noopener noreferrer"&gt;model policy REST API&lt;/a&gt; at the enterprise, team, agent-app and org levels. Platform teams can now manage model access as code instead of clicking through settings.&lt;/p&gt;

&lt;p&gt;GitHub Universe runs October 28-29. Expect more Copilot news there.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub CLI 2.103.0: Expiring Tokens (October 21)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.blog/changelog/2026-10-21-github-cli-opt-in-to-expiring-auto-refreshing-oauth-tokens" rel="noopener noreferrer"&gt;GitHub CLI 2.103.0&lt;/a&gt; added opt-in OAuth tokens that expire and refresh on their own. GitHub says a leaked token "becomes unusable within hours." That is a big deal now that coding agents call &lt;code&gt;gh&lt;/code&gt; on your behalf all day.&lt;/p&gt;

&lt;p&gt;You opt in with &lt;code&gt;gh auth login --expiring&lt;/code&gt; or &lt;code&gt;gh config set expiring_credentials enabled&lt;/code&gt;. Scripts that cache the output of &lt;code&gt;gh auth token&lt;/code&gt; will break, so update those first. The feature needs GitHub Enterprise Server 3.23 or later. GitHub plans to make it the default for new sign-ins in a future release.&lt;/p&gt;

&lt;p&gt;GitHub also put a package firewall into public preview on October 20.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor Canvases and Environments API (October 16)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cursor.com/changelog" rel="noopener noreferrer"&gt;Cursor's October 16 update&lt;/a&gt; lets cloud agents build canvases that you can share by link. An Environments API entered beta. Environments now support up to 300 repositories, and large ones load 5x faster, by Cursor's count. Cursor made no pricing changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Platform: Per-Customer Safety Controls
&lt;/h3&gt;

&lt;p&gt;Anthropic shipped two features for teams that build agents for their own customers. On October 20, &lt;a href="https://platform.claude.com/docs/en/release-notes/overview" rel="noopener noreferrer"&gt;user profiles&lt;/a&gt; arrived at &lt;code&gt;/v1/user_profiles&lt;/code&gt;. They scope safety enforcement to one end customer instead of your whole organization. One bad actor in your app no longer puts your whole API account at risk.&lt;/p&gt;

&lt;p&gt;The same day, organization webhooks entered beta. They fire when a user profile is restricted or banned. Inference hooks reached general availability. On October 14, Managed Agents &lt;code&gt;web_search&lt;/code&gt; started following org-level domain restrictions.&lt;/p&gt;

&lt;p&gt;These are the kinds of controls that make agents safe to put in front of paying customers. If you run a multi-tenant agent product, user profiles belong in your next sprint.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quiet Week Elsewhere
&lt;/h3&gt;

&lt;p&gt;We found nothing dated in this window from Google Antigravity, Gemini CLI, Devin Desktop or Kiro. Expect that to change as GitHub Universe and AGNTCon approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standards: MCP Reorganizes Its Working Groups
&lt;/h2&gt;

&lt;p&gt;Standards had the thinnest week of the four sections. No new MCP spec version shipped. A2A had no release, and the Agentic AI Foundation published no press releases in the window. The news came from governance, adoption data and identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP Creates a Tasks and Events Working Group (October 20)
&lt;/h3&gt;

&lt;p&gt;The Model Context Protocol (MCP) is the open standard that lets AI apps connect to tools and data sources through one interface. On October 20, the project merged &lt;a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3440" rel="noopener noreferrer"&gt;SEP PR #3440&lt;/a&gt;. It folds the task work and the event and trigger work into one new &lt;strong&gt;Tasks and Events Working Group&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The same change turns the Agents Working Group into an Interest Group. Interest Groups discuss ideas but have no decision rights. The message is clear. MCP's core team wants long-running tasks and event-driven triggers designed together, not in two separate rooms.&lt;/p&gt;

&lt;p&gt;For context, the current spec is still version 2026-07-28. That release removed the initialize handshake and the &lt;code&gt;Mcp-Session-Id&lt;/code&gt; header. It also deprecated Roots, Sampling and Logging. The latest SDKs are Python 2.3.0, released October 2, and TypeScript 2.3.1, released October 5. The MCP registry sits at version 1.8.1 and remains in preview.&lt;/p&gt;

&lt;p&gt;Why does a tasks-and-events group matter to data teams? Most data work is not a single request and response. A pipeline run, a table compaction or a long query is a task that finishes later. Agents need a standard way to start that work, check on it and get told when it is done. This working group is where that standard will come from.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skills Over MCP: Adoption Is Still Thin (October 21)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://apievangelist.com/2026/10/21/four-companies-serve-skills-over-mcp-the-way-the-spec-says/" rel="noopener noreferrer"&gt;API Evangelist published an adoption study&lt;/a&gt; on October 21. The author probed 9,170 MCP endpoints. Only four providers serve skills the way the Skills Extension spec describes. Those four are Hugging Face, Glean, Renoolab and BestPrice. The Skills Extension, SEP-2640, reached Final status on September 13.&lt;/p&gt;

&lt;p&gt;The protocol version data is even more telling:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf1m9jskj5czr5x5zisg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf1m9jskj5czr5x5zisg.png" alt="The protocol version data is even more telling" width="254" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Only 44 responding endpoints run the current spec. More than 500 still run a version from November 2024. That is a big gap between what the spec says and what servers in the wild support. If you build an MCP client, plan to support older protocol versions for a long time. If you run an MCP server, the July 2026 changes are worth the upgrade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Identity and Credentials
&lt;/h3&gt;

&lt;p&gt;Agent identity did not get a new standard this week, but several vendors shipped identity features. Read together, they show where the industry is heading.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic user profiles&lt;/strong&gt; scope safety enforcement to one end customer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub CLI expiring tokens&lt;/strong&gt; shrink the damage window when an agent's token leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Claude SDK credential changes&lt;/strong&gt; fix one credential per client and set a clear lookup order.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NVIDIA added a hardware angle on October 21. Its &lt;a href="https://nvidianews.nvidia.com/news/openshell-reference-architecture" rel="noopener noreferrer"&gt;OpenShell Reference Architecture&lt;/a&gt; is an open-source secure runtime for agents. A BlueField-4 component called "Sentry" watches agents out-of-band and enforces policy in silicon. Partners include Anthropic, OpenAI, Google, Meta, Okta, 1Password and CrowdStrike. The announcement does not mention MCP and does not name a license, so the open-source claim needs a closer look once the code appears.&lt;/p&gt;

&lt;p&gt;The standards track continues in parallel. The IETF draft &lt;a href="https://datatracker.ietf.org/doc/draft-ietf-wimse-aims/" rel="noopener noreferrer"&gt;draft-ietf-wimse-aims-00&lt;/a&gt; on AI agent authentication was published September 15. Expect it to come up at the events ahead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Agent Protocol Still in Draft
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://personalagentprotocol.org/" rel="noopener noreferrer"&gt;Personal Agent Protocol&lt;/a&gt;, nicknamed "Poppy," remains a draft. Its sample discovery file shows &lt;code&gt;protocol_version "0.2"&lt;/code&gt; under Apache 2.0. Agents discover each other through &lt;code&gt;/.well-known/poppy.json&lt;/code&gt;, sign in with OAuth and keep JWT sessions. Nothing changed in the window. One single-source report says the project missed its October targets.&lt;/p&gt;

&lt;h3&gt;
  
  
  AGNTCon + MCPCon This Week
&lt;/h3&gt;

&lt;p&gt;AGNTCon and MCPCon North America run October 22-23 in San Jose. With a new MCP working group, a final Skills spec and thin adoption data on the table, expect protocol announcements there. We will cover them next week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure: NVIDIA Says Capacity Is the Constraint
&lt;/h2&gt;

&lt;p&gt;The infrastructure story this week was supply, not speed. NVIDIA used GTC Berlin to talk about substrates, interposers and test capacity. Two of the biggest chip suppliers reported quarters that show demand still outrunning supply.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA GTC Berlin: The Supply Chain Keynote (October 21)
&lt;/h3&gt;

&lt;p&gt;Jensen Huang summed up the keynote in four words: "Capacity is the constraint." NVIDIA then &lt;a href="https://nvidianews.nvidia.com/news/nvidia-and-supply-chain-partners-expand-capacity-to-accelerate-ai-infrastructure-buildout" rel="noopener noreferrer"&gt;laid out a supply chain expansion&lt;/a&gt; across packaging, testing and optics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Substrates:&lt;/strong&gt; package substrate capacity rises 2.5x over three years. IBIDEN gets a multibillion-dollar advance to triple capacity at its Ono plant, ramping in Q1 2028.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interposers:&lt;/strong&gt; Amkor targets more than 300% more interposer wafer capacity by the end of 2028.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; test capacity doubles from 2026 to 2027. KYEC gets a $1.1 billion advance for US test sites, with volume production starting April 2027.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optics:&lt;/strong&gt; SPIL's co-packaged optics capacity rises 15x by mid-2027.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NVIDIA is now paying suppliers in advance to build plants. That tells you the bottleneck has moved past GPU design and wafer supply. It now sits in packaging, testing and optics. GPU supply will stay tight through at least 2027, and teams planning large AI clusters should plan for long lead times.&lt;/p&gt;

&lt;h3&gt;
  
  
  DSX POD: AI Factories in a Container
&lt;/h3&gt;

&lt;p&gt;NVIDIA also introduced the &lt;a href="https://nvidianews.nvidia.com/news/nvidia-introduces-dsx-pod-ai-factories-to-accelerate-europes-infrastructure-deployment" rel="noopener noreferrer"&gt;DSX POD&lt;/a&gt;, a containerized Vera Rubin AI factory design. NVIDIA says deployment at a prepared site drops from six months to as little as 14 days. Deliveries start in early 2027. NVIDIA gave no GPU count or megawatt figure per POD.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://nvidianews.nvidia.com/news/european-ecosystem-builds-worlds-most-efficient-ai-factories-with-nvidia-dsx" rel="noopener noreferrer"&gt;second announcement&lt;/a&gt; covered power. All of these figures are vendor-reported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MaxLPS&lt;/strong&gt; cuts power by up to 30% for the same output. At Nscale, it delivered 49% more throughput inside a 264 kW budget.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DSX Flex&lt;/strong&gt; cuts power by up to 40% during simulated grid events. Data centers can now shed load when the grid is under stress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vera Rubin&lt;/strong&gt; runs on 45°C coolant. Warmer coolant means less chilling and lower cooling bills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DSX OS&lt;/strong&gt; is open source.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power is now the hard limit for many AI sites. Grid-aware load shedding helps data centers win interconnect approvals faster. Watch for utilities to start asking for it.&lt;/p&gt;

&lt;p&gt;On October 16, &lt;a href="https://nvidianews.nvidia.com/news/nvidia-rtx-spark-pcs-available-today-a-new-beginning-for-windows-pcs" rel="noopener noreferrer"&gt;RTX Spark PCs went on sale&lt;/a&gt;. Paired with Nemotron Bolt's 24GB footprint, NVIDIA is pushing hard on local agent inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  TSMC Q3: Advanced Nodes Hit 79% (October 15)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://pr.tsmc.com/english/news/3346" rel="noopener noreferrer"&gt;TSMC reported third-quarter results&lt;/a&gt; on October 15. Revenue reached US$46.72 billion, up 41.2% year over year. Net income hit NT$763.06 billion, up 68.7%. Gross margin came in at 66.4%.&lt;/p&gt;

&lt;p&gt;The node mix shows how fast AI chips move to new processes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2nm: 8% of wafer revenue&lt;/li&gt;
&lt;li&gt;3nm: 33%&lt;/li&gt;
&lt;li&gt;Advanced nodes overall (7nm and below): 79%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TSMC guided fourth-quarter revenue to $52.3-54.3 billion. &lt;a href="https://www.crnasia.com/news/2026/components-and-peripherals/tsmc-third-quarter-revenue-tops-guidance-as-ceo-says-ai-dema" rel="noopener noreferrer"&gt;Secondary coverage&lt;/a&gt; puts high-performance computing at 68% of revenue. TSMC's own release does not confirm that figure or any capex update.&lt;/p&gt;

&lt;h3&gt;
  
  
  ASML Q3: Customers Ordering for 2029 (October 14)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.sec.gov/Archives/edgar/data/0000937966/000162828026065813/pressreleasefinancialresul.htm" rel="noopener noreferrer"&gt;ASML reported third-quarter results&lt;/a&gt; on October 14. Sales hit €11.66 billion with a 57.5% gross margin and €4.96 billion in net income. ASML guided Q4 to €14.2-15.2 billion and full-year 2026 to €44-45 billion.&lt;/p&gt;

&lt;p&gt;The detail that matters is the order horizon. Some customers want to place orders for 2029 and 2030. ASML says its supply for 2027 and 2028 will not fully meet demand. ASML did not disclose a bookings figure. When the company that makes the lithography machines is sold out two years ahead, every chip downstream stays scarce.&lt;/p&gt;

&lt;h3&gt;
  
  
  Anthropic and Nscale: A Second Deal in Talks (Unconfirmed)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bloomberght.com/nscale-ve-anthropic-45-milyar-dolarlik-bilisim-anlasmasi-icin-gorusuyor-3791844" rel="noopener noreferrer"&gt;Bloomberg HT, citing Bloomberg, reported&lt;/a&gt; on October 19 that Anthropic is in talks with Nscale for a second deal of roughly $45 billion. We did not see the original Bloomberg story, so this rests on secondary write-ups. The reported deal covers about 460 MW at Nscale's Monarch campus in West Virginia, running Vera Rubin chips. Anthropic also gets a reported right of first refusal on a third building.&lt;/p&gt;

&lt;p&gt;The talks are not final. Both companies declined to comment. Treat this as a report, not a done deal.&lt;/p&gt;

&lt;h3&gt;
  
  
  What We Did Not See
&lt;/h3&gt;

&lt;p&gt;We found nothing dated in the window on HBM memory, Google TPUs, AWS Trainium or new gigawatt-scale power deals. The Open Compute Project Summit announcements landed on October 12, just before this window. Those included Meta adopting NVIDIA Spectrum-6, AMD's Helion rack and Microsoft's Maia 300 chip.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Layer Takeaway
&lt;/h2&gt;

&lt;p&gt;Three threads from this week point at the data layer.&lt;/p&gt;

&lt;p&gt;First, agents are getting cheaper to run and easier to host. At $0.15 per million input tokens, an agent can read a lot of table metadata before the bill matters. Open models with 1M context make private deployment practical. The limit is no longer the model. It is whether the agent can find governed, well-described data.&lt;/p&gt;

&lt;p&gt;Second, credentials and approvals got stricter everywhere. Expiring tokens, per-customer safety profiles and human-only approval checks all point the same way. Agents will act on your data, and every action needs an owner and an audit trail. A lakehouse with a governed catalog and fine-grained access control gives agents that boundary.&lt;/p&gt;

&lt;p&gt;Third, MCP is reorganizing around tasks and events. Data work is long-running by nature. The protocol that lets an agent start a job, track it and hear when it finishes will shape how agents interact with query engines and catalogs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;October 22-23:&lt;/strong&gt; AGNTCon + MCPCon North America in San Jose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 23:&lt;/strong&gt; MiniMax M3.1 Flash weights (reported) and Nemotron 3.5 Bolt E4B&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 28-29:&lt;/strong&gt; GitHub Universe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 31:&lt;/strong&gt; DeepSeek Search and Fetch billing starts for harness users, and the deadline for Mistral Large 4 weights&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;November 16:&lt;/strong&gt; Copilot retires Opus 4.8, Opus 5 and GPT-5.6 Terra&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;November 30:&lt;/strong&gt; Claude Sonnet 4.5 retires, and Gemini 4 Argon introductory pricing ends&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Resources to Go Further
&lt;/h2&gt;

&lt;p&gt;AI changes fast. Here are tools and resources to help you keep pace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Dremio Free&lt;/strong&gt; - Experience agentic analytics and an Apache Iceberg-powered lakehouse. &lt;a href="https://www.dremio.com/get-started?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-21-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Start your free trial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn Agentic AI with Data&lt;/strong&gt; - Dremio's agentic analytics features let your AI agents query and act on live data. &lt;a href="https://www.dremio.com/use-cases/agentic-ai/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-21-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Explore Dremio Agentic AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join the Community&lt;/strong&gt; - Connect with data engineers and AI practitioners building on open standards. &lt;a href="https://developer.dremio.com/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=10-21-2026&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Join the Dremio Developer Community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book: The 2026 Guide to AI-Assisted Development&lt;/strong&gt; - Covers prompt engineering, agent workflows, MCP, evaluation, security, and career paths. &lt;a href="https://www.amazon.com/2026-Guide-AI-Assisted-Development-Engineering-ebook/dp/B0GQW7CTML/" rel="noopener noreferrer"&gt;Get it on Amazon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book: Using AI Agents for Data Engineering and Data Analysis&lt;/strong&gt; - A practical guide to Claude Code, Google Antigravity, OpenAI Codex, and more. &lt;a href="https://www.amazon.com/Using-Agents-Data-Engineering-Analysis-ebook/dp/B0GR6PYJT9/" rel="noopener noreferrer"&gt;Get it on Amazon&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Apache Data Lakehouse Weekly: October 14-21, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 21 Oct 2026 19:03:32 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-14-21-2026-4lbn</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-14-21-2026-4lbn</guid>
      <description>&lt;p&gt;Many contributors were still flying home from Community Over Code in Glasgow, and the lists picked up where the hallway talks ended. Iceberg wrote unstructured files into its v4 spec. Polaris argued about who owns those files once they sit behind a catalog. Parquet spent the week deciding what a vector is and what a format version means. The common thread was AI data: embeddings, files and semantic models all moved toward being first-class citizens of the open lakehouse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;p&gt;The biggest outcome was the &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15560.html" rel="noopener noreferrer"&gt;passing vote to add a File type to the v4 spec&lt;/a&gt;. Talat Uyarer &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15508.html" rel="noopener noreferrer"&gt;opened the vote&lt;/a&gt; for the FILE type working group. It closed with 8 binding +1s, from Steven Wu, Péter Váry, Daniel Weeks, Gang Wu, Sung Yun, Amogh Jahagirdar, Yufei Gu and Russell Spitzer, plus 19 non-binding +1s. The new type stores a range of bytes either inline or as a reference to an external object, with fixed sub-fields for URI, offset, size, content type and checksum. It mirrors Parquet's FILE logical type, so images, PDFs and audio can sit in a table column with real metadata and stats. Kurtis Wright &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15541.html" rel="noopener noreferrer"&gt;voted +0&lt;/a&gt;. He argued that maintenance jobs need a signal for when a referenced object is safe to delete, or tables sharing a media bucket will step on each other. Daehong Jeon and Orest Tokovenko have already volunteered to implement the type in iceberg-rust and PyIceberg.&lt;/p&gt;

&lt;p&gt;That vote followed the &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15539.html" rel="noopener noreferrer"&gt;result of the baseline v4 AMT spec vote&lt;/a&gt;, which passed with 9 binding and 9 non-binding +1s. With the Adaptive Metadata Tree in the main spec, the follow-ups started at once. Anoop Johnson &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15547.html" rel="noopener noreferrer"&gt;proposed extending "tight" stats&lt;/a&gt; beyond min and max to null, NaN and value counts, so an engine could answer &lt;code&gt;count(*) WHERE col IS NULL&lt;/code&gt; from metadata alone. Kevin Liu &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15557.html" rel="noopener noreferrer"&gt;asked whether v4 should be Parquet-only&lt;/a&gt; for data files as well as manifests. He pointed to V3 feature gaps in ORC and Avro and thin support outside Java. Péter Váry and Junwang Zhao pushed back hard on narrowing the spec, and Junwang named Vortex, Lance and Nimble as formats worth keeping the door open for. Kevin will move it to a dedicated thread.&lt;/p&gt;

&lt;p&gt;AI-oriented types kept coming. In the &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15540.html" rel="noopener noreferrer"&gt;File and Vector sync thread&lt;/a&gt;, Péter Váry proposed int8 and float16 primitives for vector indexes. Philipp Fischbeck wanted them only as vector element types, and Russell Spitzer suggested voting the Vector type in first. Péter also &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15543.html" rel="noopener noreferrer"&gt;revived derived columns&lt;/a&gt;, and Szehon Ho suggested landing them through the secondary index spec. On the stats side, Yuya Ebihara &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15573.html" rel="noopener noreferrer"&gt;proposed an HLL sketch blob type for Puffin&lt;/a&gt;. Theta sketches cost Trino 10-20% on inserts, and without a standard HLL type every engine invents its own. Yong Zheng also &lt;a href="https://www.mail-archive.com/dev@iceberg.apache.org/msg15570.html" rel="noopener noreferrer"&gt;flagged that the REST spec is not valid OpenAPI 3.1&lt;/a&gt;, which he found while upgrading Polaris.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;p&gt;JB Onofré &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06181.html" rel="noopener noreferrer"&gt;put Polaris Directories up for review&lt;/a&gt;. A Directory is a table-like entity over an object-store prefix, with its contents tracked in a regular Iceberg inventory table. Ankur Kotwal found a bug where the scanner can delete a file a commit may have already landed, and he wants it fixed before 1.9.0. Tornike Gurgenidze argued the inventory should be the source of truth, like Iceberg manifests, so Polaris could offer snapshot listings and time travel over files. Yufei Gu suggested phasing the feature rather than rushing it into the release JB has targeted for the end of October.&lt;/p&gt;

&lt;p&gt;Qiegang Long &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06185.html" rel="noopener noreferrer"&gt;shared a proof of concept for multi-table, multi-statement transactions&lt;/a&gt;, with Spark and Trino running &lt;code&gt;BEGIN ... COMMIT&lt;/code&gt; across tables. JB welcomed it but set a process: design doc first, then small PRs, plus a persistence SPI so it does not depend on PostgreSQL. JB also &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06165.html" rel="noopener noreferrer"&gt;asked how Polaris should support custom entities&lt;/a&gt; without patching core enums, since semantic models, tags, lineage and directories each touched about ten classes.&lt;/p&gt;

&lt;p&gt;Process got attention too. Yufei Gu &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06196.html" rel="noopener noreferrer"&gt;proposed an opt-in AI code review bot&lt;/a&gt;. JB backed it with labelling rules drawn from ASF guidance. Robert Stupp asked who pays, what data it keeps and why a second bot is needed next to Copilot. vignesh a reported that the bot missed context agreed on the list. Separately, the &lt;a href="https://www.mail-archive.com/dev@polaris.apache.org/msg06174.html" rel="noopener noreferrer"&gt;IRC Labels design&lt;/a&gt; settled on labels as a read-only projection of Polaris tags.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;p&gt;Raúl Cumplido &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35211.html" rel="noopener noreferrer"&gt;announced Arrow 26.0.0&lt;/a&gt;, with 337 resolved issues. Arrow Rust 59.3.1 &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35200.html" rel="noopener noreferrer"&gt;passed its vote&lt;/a&gt; with four binding +1s. Andrew Lamb then &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35209.html" rel="noopener noreferrer"&gt;announced patch releases on four arrow-rs branches&lt;/a&gt; at once, a rare step for a project that normally ships forward. JB &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35210.html" rel="noopener noreferrer"&gt;gave a heads up on Arrow Java 20.0.0&lt;/a&gt;, with a vote expected soon.&lt;/p&gt;

&lt;p&gt;On the format side, Rusty Conover &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35204.html" rel="noopener noreferrer"&gt;posted draft PRs across five languages&lt;/a&gt; so dictionary-encoded extension types survive IPC. The trigger was DuckDB failing to export a dictionary-encoded UUID column, and he plans a format vote in about a week. Tornike Gurgenidze &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35207.html" rel="noopener noreferrer"&gt;proposed letting Flight SQL servers advertise their Substrait dialect&lt;/a&gt;, which ADBC would inherit. The PMC also &lt;a href="https://www.mail-archive.com/dev@arrow.apache.org/msg35186.html" rel="noopener noreferrer"&gt;welcomed Richard Baah as a committer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;p&gt;The vector debate dominated. Jan Finis &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28122.html" rel="noopener noreferrer"&gt;argued a finite vector type adds rules without new capability&lt;/a&gt;. Daniel Weeks and Gang Wu countered that logical types carry meaning, just as STRING promises valid UTF-8. Ryan Blue &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28137.html" rel="noopener noreferrer"&gt;proposed two types&lt;/a&gt;: a finite vector for embeddings and a fixed-length list that allows NaN. Russell Spitzer &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28146.html" rel="noopener noreferrer"&gt;backed the two-type path&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alkis Evlogimenos &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28116.html" rel="noopener noreferrer"&gt;laid out a concrete versioning proposal&lt;/a&gt; after auditing eight readers. Unknown encodings fail safely, but unknown page types and codecs can silently drop or corrupt rows in some readers. So encodings like ALP could ship in PAR1 files, while new page types or codecs would require a new compatibility level. Andrew Lamb and Divjot Arora were supportive. Daniel Weeks also &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28140.html" rel="noopener noreferrer"&gt;rejected redefining &lt;code&gt;distinct_count&lt;/code&gt; as an estimate&lt;/a&gt;, and Gunnar Morling &lt;a href="https://www.mail-archive.com/dev@parquet.apache.org/msg28136.html" rel="noopener noreferrer"&gt;contributed FILE type fixtures&lt;/a&gt; that parquet-java and arrow-rs both read correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie
&lt;/h2&gt;

&lt;p&gt;The incubating semantic interchange project was the busiest list of the week. Julian Hyde &lt;a href="https://lists.apache.org/thread/2yz0r9ko95cnm17thv8rxsmk11zy9oy9" rel="noopener noreferrer"&gt;asked whether the project is truly open&lt;/a&gt;, calling Slack and working groups a walled garden. Chris Eubank agreed the point was fair and made it explicit that decisions happen on &lt;a href="mailto:dev@"&gt;dev@&lt;/a&gt;. A run of SQL dialect PRs led Chris to &lt;a href="https://lists.apache.org/thread/vmgv5ffryw70wxbvtwnohhhz2zzx0ocf" rel="noopener noreferrer"&gt;propose making &lt;code&gt;dialect&lt;/code&gt; a free-text field&lt;/a&gt;. The converters &lt;a href="https://lists.apache.org/thread/7wyp0y0bx9tyvpytxq09n2h6n0bdkcd5" rel="noopener noreferrer"&gt;moved to their own repo&lt;/a&gt;, and JB is now preparing the first core release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;p&gt;Unstructured data arrived at three layers at once. Parquet has a FILE logical type, Iceberg voted in a matching File column, and Polaris is designing Directories over raw prefixes. All three hit the same open question: who decides when a referenced object can be deleted, and which layer holds the truth. Kurtis Wright's +0 in Iceberg and Tornike's inventory argument in Polaris are the same concern from two angles. Expect a shared answer to emerge rather than three separate ones.&lt;/p&gt;

&lt;p&gt;The vector debate also crosses projects. Parquet is defining the physical type while Iceberg debates element types like int8 and float16, and Will Edwards suggested Iceberg might be the better home for the finiteness contract. Meanwhile, two projects openly wrestled with AI in their own process, from Polaris's review bot to contributors disclosing LLM-assisted reports on Polaris and Parquet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Watch for a Polaris 1.9.0 release candidate and whether Directories make the cut. Arrow Java 20.0.0 and ADBC 25 votes should land, along with Rusty Conover's dictionary extension format vote. In Iceberg, look for Kevin Liu's format thread and a Vector type vote. In Parquet, watch whether the two-type vector proposal and the versioning design move toward a vote.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources &amp;amp; Further Learning
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Get Started with Dremio&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.dremio.com/get-started?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=apache-newsletter-2026-10-21&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Try Dremio Free&lt;/a&gt;: Build your lakehouse on Iceberg with a free trial&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.dremio.com/use-cases/lake-to-iceberg-lakehouse/?utm_source=ev_external_blog&amp;amp;utm_medium=influencer&amp;amp;utm_campaign=pag&amp;amp;utm_term=apache-newsletter-2026-10-21&amp;amp;utm_content=alexmerced" rel="noopener noreferrer"&gt;Build a Lakehouse with Iceberg, Parquet, Polaris &amp;amp; Arrow&lt;/a&gt;: Learn how Dremio brings the open lakehouse stack together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Free Downloads&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://hello.dremio.com/wp-apache-iceberg-the-definitive-guide-reg.html" rel="noopener noreferrer"&gt;Apache Iceberg: The Definitive Guide&lt;/a&gt;: O'Reilly book, free download&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hello.dremio.com/wp-apache-polaris-guide-reg.html" rel="noopener noreferrer"&gt;Apache Polaris: The Definitive Guide&lt;/a&gt;: O'Reilly book, free download&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Books by Alex Merced&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Architecting-Apache-Iceberg-Lakehouse-open-source/dp/1633435105/ref=sr_1_5?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_TP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-5" rel="noopener noreferrer"&gt;Architecting an Apache Iceberg Lakehouse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Enabling-Agentic-Analytics-Apache-Iceberg-ebook/dp/B0GQXT6W3N/ref=sr_1_7?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-7" rel="noopener noreferrer"&gt;Enabling Agentic Analytics with Apache Iceberg and Dremio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Lakehouses-Apache-Iceberg-Agentic-Hands/dp/B0GQNY21TD/ref=sr_1_9?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-9" rel="noopener noreferrer"&gt;The 2026 Guide to Lakehouses, Apache Iceberg and Agentic AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Book-Using-Apache-Iceberg-Python/dp/B0GNZ454FF/ref=sr_1_16?crid=1304S78BQAP6U&amp;amp;dib=eyJ2IjoiMSJ9.7Z17wXFJVWtv1gDIVF5-z5NwgT7B-vj9kEQuLkAKtLh00KncwXYc4bQ6hyydwcMHXbJOlFCSO7-2JmKTC5KCV-q2XEdeq7kBBmicVzI6tlDtqPqAgE6RHJE_XZ_n-zxxAjRHE2THP0J4DEgzDmiXrF9bdkEFyaruSUW28Ryx0zYyI_NuD5vZ4HYqQv3u5hzBVjjOlxyRYSTIsRSeVIoJC2XvjrXdNFvQ9jm4Kr1xFOw.yog4MgCdYecbJT0bAcGXNJJvZbvD4F_DP0lDbPA1xGI&amp;amp;dib_tag=se&amp;amp;keywords=alex+merced&amp;amp;qid=1773236747&amp;amp;sprefix=alex+mer%2Caps%2C570&amp;amp;sr=8-16" rel="noopener noreferrer"&gt;The Book on Using Apache Iceberg with Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bigdata</category>
      <category>data</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Apache Data Lakehouse Weekly: October 6-14, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 14 Oct 2026 17:08:21 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-6-14-2026-48b2</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-october-6-14-2026-48b2</guid>
      <description>&lt;p&gt;Half the lakehouse community spent this week in Glasgow at Community Over Code, and the mailing lists show it. Syncs got cancelled, board reports went out late, and several threads open with a nod to a hallway conversation from Lakehouse Day. The work did not slow down. Apache Iceberg ran three overlapping v4 spec votes at once, Apache Parquet put a concrete versioning proposal on the table, Apache DataFusion Comet asked to become its own top-level project, and Apache Ossie (incubating) argued about where an MCP server belongs.&lt;/p&gt;

&lt;p&gt;The thread that ties the week together is precision. Each community is replacing a loose rule with an exact one. Iceberg is pinning down snapshot timestamps and statistics guarantees. Parquet is fixing the meaning of a statistic that never had a firm definition. Polaris is redrawing the line between catalog configuration and server storage access. Ossie is deciding which parts of a semantic model must be portable before anyone can query one. These are the unglamorous rules that let engines, catalogs, and AI agents trust the same data without asking a human first.&lt;/p&gt;

&lt;p&gt;This issue covers Apache Iceberg, Apache Polaris, Apache Arrow, Apache Parquet, Apache DataFusion, and Apache Ossie (incubating). All thread links point to the official archives at lists.apache.org.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Three v4 votes in one week
&lt;/h3&gt;

&lt;p&gt;The Iceberg v4 table spec moved further this week than in any week this fall. Three separate spec votes ran in parallel, and none of them drew a single -1.&lt;/p&gt;

&lt;p&gt;The first to close was Steven Wu's proposal to &lt;a href="https://lists.apache.org/thread/y2fvgh4ojfcss7o76drkgdvdrpb17ccm" rel="noopener noreferrer"&gt;require monotonically increasing snapshot timestamps in v4&lt;/a&gt;. The rule is simple. Every new snapshot on a branch in a v4 table must carry a &lt;code&gt;timestamp-ms&lt;/code&gt; strictly greater than its parent's. Root snapshots stay unconstrained, and v1 through v3 tables keep their current behavior. Steven explained that out-of-order timestamps break time travel today, because a query for "the table as of 3:00 PM" picks the wrong snapshot when clocks drift between writers. The rule also opens the door to a row timestamp metadata column inherited from the snapshot timestamp, which Steven flagged as a separate follow-up change. The vote passed with 9 binding +1s and 11 non-binding +1s. Maninder Parmar added a note worth tracking: he wants the community to consider nanosecond precision (&lt;code&gt;timestamp-ns&lt;/code&gt;) later, so high-throughput tables do not hit collisions at the millisecond level. Xuanwo restated the scope in his +1, confirming that pre-upgrade snapshots stay exempt.&lt;/p&gt;

&lt;p&gt;The second vote is the big one. Amogh Jahagirdar opened a vote to &lt;a href="https://lists.apache.org/thread/qch7jjnwb8pm49lt3h7lqfxj82hlg8ps" rel="noopener noreferrer"&gt;merge the baseline v4 AMT spec PR into the main repo&lt;/a&gt;. AMT is the adaptive metadata tree, the new metadata structure at the center of v4 that changes how Iceberg organizes manifests and commits. Amogh was careful about what the vote means. It is a vote to land a baseline in the repository so other v4 work stops fighting rebases, and it is not a vote to adopt the design as final. Encryption, column file update rules, and dropping the partition tuple all remain open for later iteration. The thread filled with +1s from Steven Wu, Daniel Weeks, Russell Spitzer, Eduard Tudenhöfner, Fokko Driesprong, Gang Wu, Szehon Ho, and Péter Váry, plus a long list of non-binding supporters. Gábor Kaszab volunteered to cover the encryption piece in an immediate follow-up. Contributor 전대홍 said he looks forward to building AMT in iceberg-rust, which tells you the Rust implementation intends to track v4 closely rather than trail it.&lt;/p&gt;

&lt;p&gt;The third vote opened on October 13. Talat Uyarer, writing for the FILE type working group, called a vote to &lt;a href="https://lists.apache.org/thread/7ctclwomk8yqcclzj82z0htlqk2xjf49" rel="noopener noreferrer"&gt;add the File type to the Iceberg v4 spec&lt;/a&gt;. This is a new data type for a range of bytes, stored either inline or as a reference to an external file. Its value semantics follow the FILE logical type in the Parquet spec. A file field carries six fixed, implicit sub-fields: &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;offset&lt;/code&gt;, &lt;code&gt;size&lt;/code&gt;, &lt;code&gt;content_type&lt;/code&gt;, &lt;code&gt;checksum&lt;/code&gt;, and &lt;code&gt;inline&lt;/code&gt;. They never appear in the schema and cannot be added, removed, reordered, or promoted. Their field IDs are offsets one through six from the file field's own ID, so adding one file column moves &lt;code&gt;last-column-id&lt;/code&gt; forward by seven.&lt;/p&gt;

&lt;p&gt;The restrictions matter as much as the feature. Equality, ordering, and hashing are undefined for file values. A file column cannot be an identifier field or a source for partition or sort transforms. It must default to null. A struct with the same sub-fields is not interchangeable with a file and cannot be promoted into one. And a &lt;code&gt;uri&lt;/code&gt; makes no promise that the referenced object still exists. Relative URIs resolve against the table location, which keeps tables portable when you move them. Each sub-field gets its own column statistics, and writers should produce stats for &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;content_type&lt;/code&gt;, and &lt;code&gt;inline&lt;/code&gt;. The format mappings are clean: the FILE logical type in Parquet, a record in Avro, and a struct tagged &lt;code&gt;iceberg.struct-type=FILE&lt;/code&gt; in ORC. By the end of the window the thread had binding +1s from Russell Spitzer, Steven Wu, Daniel Weeks, Gang Wu, and Sung Yun, with no objections. The 72-hour window closes this week.&lt;/p&gt;

&lt;p&gt;Why does a file type matter? Because the lakehouse is absorbing unstructured data. Images, PDFs, audio clips, and model artifacts already sit next to tables in object storage. Today a table points at them with a plain string column and a convention. A typed file column gives engines the offset, size, content type, and checksum they need to read, verify, and govern those bytes with the same metadata machinery Iceberg uses for everything else. For teams building AI pipelines on Iceberg, this is the bridge between "a table of embeddings" and "a table of the documents those embeddings came from."&lt;/p&gt;

&lt;h3&gt;
  
  
  Statistics and vectors
&lt;/h3&gt;

&lt;p&gt;Two design threads moved toward consensus without a vote. Anoop Johnson's &lt;a href="https://lists.apache.org/thread/0r64rnn0t3dtlhj1pb4ckkt2s7yow2cq" rel="noopener noreferrer"&gt;Iceberg v4 stats tightness&lt;/a&gt; discussion settled on a single file-level flag. Hongyue Zhang laid out why bounds stop being tight. Deletion vectors added after a file is written remove rows, so the original min and max bounds no longer describe the live data. Variable-length columns such as strings and binary also carry truncated bounds by design. Steven Wu and Szehon Ho backed the file-level approach, citing Russell Spitzer's analysis that most use cases repair every bound at once and do not need per-column tracking. Anoop summarized the upgrade path. Files inside existing v3 manifests carry no flag, so readers treat their stats as wide. New v4 files carry &lt;code&gt;true&lt;/code&gt; when no deletion vector is attached and &lt;code&gt;false&lt;/code&gt; when one is. This matters for query planning. An engine that knows bounds are tight can answer some aggregate queries from metadata alone and prune more files with confidence.&lt;/p&gt;

&lt;p&gt;On the vector side, Yan Yan &lt;a href="https://lists.apache.org/thread/49bm2d8szbzkvtdog38s1o6zb04cj67o" rel="noopener noreferrer"&gt;extended the Thursday biweekly sync to cover both the File and Vector types&lt;/a&gt; and posted a draft spec PR built on the Parquet community's emerging vector work. The meeting notes set a narrow first scope. Iceberg will start with a one-dimensional numeric vector of fixed length with non-null, finite coordinates, where +0 and -0 both stay valid. The initial element types are int, long, float, and double. Narrower types such as int8 are deferred as possible future Iceberg primitives, though the Parquet representation can still carry them. Distance functions and sparse vectors are out of scope for now and will return with the index design. Formats without native vector support will use a list representation with writer-side enforcement, and the group will explore an Avro vector logical type with the Avro community. ORC support remains open.&lt;/p&gt;

&lt;h3&gt;
  
  
  REST catalog contract
&lt;/h3&gt;

&lt;p&gt;Two REST catalog threads closed out with concrete changes. Rahul Mahadev posted the &lt;a href="https://lists.apache.org/thread/pllz983cvffryzcwskglsr0cyo7p0gxx" rel="noopener noreferrer"&gt;result of the User-Agent vote&lt;/a&gt;: the recommendation for a standard User-Agent format for REST clients passed with 19 +1 votes, 10 of them binding, and no objections. The &lt;a href="https://lists.apache.org/thread/yoqr9zkxysrpb7grcncw5756omcqdmkx" rel="noopener noreferrer"&gt;reopened vote&lt;/a&gt; had collected late +1s from Gang Wu, Zheng Hu, Ryan Blue, Fokko Driesprong, John Zhuge, and Huaxin Gao. Zheng Hu flagged CVE scanning failures on the PR, so watch for that before merge. A shared User-Agent format sounds minor, but it gives catalog operators a reliable way to see which engines and library versions hit their servers, which helps with deprecation planning and incident response.&lt;/p&gt;

&lt;p&gt;The second REST thread resolved a gap in credential vending. Youngrae Kim had asked &lt;a href="https://lists.apache.org/thread/ws89d7doddgqc2j8fc2xt84bchr374t2" rel="noopener noreferrer"&gt;what a server should do when the X-Iceberg-Access-Delegation header cannot be satisfied&lt;/a&gt;. Daniel Weeks suggested adding a &lt;code&gt;none&lt;/code&gt; value, meaning the client does not need delegated access from the catalog. Yufei Gu and Dmitri Bourlatchkov agreed. Dan and Dmitri then argued against adding a sentence that explicitly allows a server to fail the request, since a server can always reject a request anyway. Youngrae opened &lt;a href="https://github.com/apache/iceberg/pull/18480" rel="noopener noreferrer"&gt;spec PR #18480&lt;/a&gt;, which adds &lt;code&gt;none&lt;/code&gt; to the enum with one defining sentence and leaves the rest of the header description alone. Clients that bring their own storage credentials now have a clean way to say so.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smaller threads with real impact
&lt;/h3&gt;

&lt;p&gt;Sandeep Gottimukkala proposed a &lt;a href="https://lists.apache.org/thread/c91ph82tnrlhj8qq9lj8n72b0s7qq5r0" rel="noopener noreferrer"&gt;spec clarification that readers must accept promotable types in any data file&lt;/a&gt;. Type promotion lets a field evolve, for example from DECIMAL(8, 0) to DECIMAL(25, 0), without rewriting old files. The clarification states that a reader must handle the narrower physical type wherever it appears. Russell Spitzer supported it but asked to drop language about whether the field was evolved, since that detail is not part of the invariant.&lt;/p&gt;

&lt;p&gt;Revanth Ch confirmed the &lt;a href="https://lists.apache.org/thread/38ww9cto44kdrtg9hbm4j8z1st6fpzt8" rel="noopener noreferrer"&gt;migration plan for the new expression JSON forms&lt;/a&gt;. With Ryan Blue's guidance that servers always omit residual filters, the new expression syntax only flows from client to server in plan requests, so no client capability signal is needed. Revanth will open a PR so the reference implementation stops sending a residual on every scan task, then continue building conformance fixtures.&lt;/p&gt;

&lt;p&gt;Hongyue Zhang and a contributor writing as dzeri96 discussed &lt;a href="https://lists.apache.org/thread/28kw8cnzm835y2l8c6w8pp3m24551qlb" rel="noopener noreferrer"&gt;making &lt;code&gt;appendUpdate&lt;/code&gt; in BaseTransaction public&lt;/a&gt;. The use case is a custom index stored in a Puffin statistics file. Today that team injects custom pending updates through reflection to control conflict detection. The request is a small API change, but it points at a bigger need: index builders want first-class hooks into Iceberg's commit protocol. The &lt;a href="https://lists.apache.org/thread/ft12o55pl3x5m29kk2nndhk316o8bxnf" rel="noopener noreferrer"&gt;Iceberg index sync&lt;/a&gt; that normally covers this was cancelled for October 12 because so many people were traveling. Huaxin Gao pointed everyone to the index spec PR in the meantime, and the next sync is October 26.&lt;/p&gt;

&lt;p&gt;EJ Song posted a status update on &lt;a href="https://lists.apache.org/thread/qms426sxl3r1hjdm0jzm5wwqbkhdx01o" rel="noopener noreferrer"&gt;row-granular concurrency for v3 deletion vectors&lt;/a&gt;. The first step merges concurrently added deletion vectors for pure delete commits. Huaxin Gao and Uroš Bojanić have reviewed it, CI is green, and it needs one more committer to sign off on the retry semantics in MergingSnapshotProducer. When this lands, two jobs that delete different rows from the same file will stop conflicting with each other.&lt;/p&gt;

&lt;p&gt;On the integration front, Robert Kruszewski opened a PR for &lt;a href="https://lists.apache.org/thread/ff4v7jvtl1r44wvl0nntlv0d63n8p8p7" rel="noopener noreferrer"&gt;upgrading arrow-java from 15.0.2 to 19.0.0&lt;/a&gt;, which positions Iceberg for arrow-java 20 and its expected Decimal32 and Decimal64 support. Vladislav Sidorovich asked for another review on &lt;a href="https://lists.apache.org/thread/wl2m40rbs95f82sw0yhsp8rj58xr6qdf" rel="noopener noreferrer"&gt;moving Delta Lake migration to Delta Kernel&lt;/a&gt; after addressing all comments. K Krishna raised &lt;a href="https://lists.apache.org/thread/kp41hjc76o3byrw4pp3599qf13p2ykhl" rel="noopener noreferrer"&gt;two PyIceberg Azure fixes&lt;/a&gt; that had waited two weeks. One fixes a bug where FsspecFileIO wrote an inferred storage account back into shared properties, so tables spread across two storage accounts got the wrong filesystem. Fokko Driesprong picked them up.&lt;/p&gt;

&lt;p&gt;Alex Stephen announced a &lt;a href="https://lists.apache.org/thread/q011wr5ncbhf5b9ngob7cvs8119otyon" rel="noopener noreferrer"&gt;new batch of public datasets&lt;/a&gt; behind a public Iceberg REST catalog: 72 tables with over 640 billion rows. If you want to test an engine against real Iceberg tables at scale without loading data yourself, this is a free starting point.&lt;/p&gt;

&lt;p&gt;Community events filled out the calendar. Scott Haines announced the &lt;a href="https://lists.apache.org/thread/ov4bk4qg8pfod2s4z035mg3tj3tcv8mn" rel="noopener noreferrer"&gt;October virtual meetup&lt;/a&gt; for October 23 at 9:00 AM Pacific, featuring Liam Earley on improving scan latency with manifest work in iceberg-rust. Kevin Liu boosted the &lt;a href="https://lists.apache.org/thread/x5jnyggbjhy4xgs8jo3fwtbd59mdqztd" rel="noopener noreferrer"&gt;Seattle Iceberg meetup on October 21&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Where server storage access comes from
&lt;/h3&gt;

&lt;p&gt;The most consequential Polaris discussion this week was about boundaries. Dmitri Bourlatchkov opened a thread on &lt;a href="https://lists.apache.org/thread/636ss6fjsrhn9rzf3jdg0p4loqw3sr1v" rel="noopener noreferrer"&gt;removing default table properties from server-side FileIO configuration&lt;/a&gt;, and Vignesh posted a parallel thread on &lt;a href="https://lists.apache.org/thread/49vsx3r803nmf35wsyxl2h3qvxfrrfgs" rel="noopener noreferrer"&gt;dropping catalog &lt;code&gt;table-default.*&lt;/code&gt; properties from server FileIO construction&lt;/a&gt;. Both grew out of review on PR #5328, the table metadata cache work.&lt;/p&gt;

&lt;p&gt;Here is the problem. Polaris builds server-side FileIO objects from a mix of StorageAccessConfig and catalog-level default table properties. Vignesh noted that an earlier fix already stopped using caller-supplied metadata properties for server FileIO, tied to CVE-2026-97395. Commit, refresh, and register paths still pass catalog &lt;code&gt;table-default.*&lt;/code&gt; properties into the FileIO factory. Everyone agreed the target state is a clean one: server-side FileIO should come from StorageAccessConfig alone.&lt;/p&gt;

&lt;p&gt;The debate was about custom settings. Yufei Gu pointed out that deployments need to customize FileIO in ways nobody can predict. Dmitri first proposed letting the StorageAccessConfigProvider pull relevant catalog properties in. Jean-Baptiste Onofré preferred a different shape: a properties bag on PolarisStorageConfigurationInfo for custom FileIO settings, with MinIO and S3Mock endpoints and path-style access living on the AWS storage configuration where those fields already exist. Vignesh backed JB's shape and offered to write the cleanup PR, including moving test fixtures off &lt;code&gt;table-default.s3.*&lt;/code&gt;. Dmitri agreed with the property bag but raised an upgrade concern. Environments that rely on table defaults today will break if Polaris stops reading them overnight, so he proposed a transition path. Expect the final PR to include a deprecation window.&lt;/p&gt;

&lt;p&gt;This connects to Yufei's question about &lt;a href="https://lists.apache.org/thread/z9cgfj77s829npm51t0vcc32rclrz9mh" rel="noopener noreferrer"&gt;metadata immutability across storage endpoint changes&lt;/a&gt;. If two S3-compatible stores hold different files at the same &lt;code&gt;s3://&lt;/code&gt; path, can a storage endpoint change make an existing table's metadata URI return different content? Yufei argued table metadata should not change because a FileIO client was configured differently. Dmitri reframed it as a cache correctness question: Polaris does not control what external stores contain, so it cannot assume identical content across endpoints for caching. JB split the difference. Iceberg treats metadata files as immutable once written, so the URI acts like a content identifier in spirit. But an &lt;code&gt;s3://&lt;/code&gt; URI is not a content hash, so Polaris cannot enforce that. Robert Stupp summarized the two assumptions the system relies on and noted that neither follows from the URI and storage configuration staying the same. The practical outcome will shape whether the storage endpoint becomes part of the metadata cache key.&lt;/p&gt;

&lt;p&gt;Dmitri also flagged &lt;a href="https://lists.apache.org/thread/cn7f2ogyplrjq2y5pd9wt61zkysmwcv3" rel="noopener noreferrer"&gt;expanding the config entries in StorageCredential responses&lt;/a&gt; for community awareness, since it touches credential vending. PR #5731 from Adam lets Polaris return the full client-visible storage access configuration next to credentials. JB supported it, noting that Iceberg defines &lt;code&gt;StorageCredential.config&lt;/code&gt; as a prefix-scoped map that S3 and GCS FileIO overlay on their base properties. He asked for one rule to be made explicit before merge: if the credentials entry is meant to be the complete access config, it must hold in every case, including remote signing.&lt;/p&gt;

&lt;p&gt;On the Polaris side of the access-delegation question, the &lt;a href="https://lists.apache.org/thread/0c2l425l57j1lmmc45j1soc63klv142k" rel="noopener noreferrer"&gt;matching Polaris thread&lt;/a&gt; confirmed that Polaris keeps its fail-fast behavior, returning HTTP 400 when delegation cannot be satisfied. Youngrae Kim noted the vended-credentials docs already explain both 400 responses and tell clients to drop the header and configure their own storage credentials. Once the Iceberg spec adds &lt;code&gt;none&lt;/code&gt;, Youngrae plans to add support for it in Polaris. JB also noted that Iceberg 1.12 adds a remote signing configuration, so the community will need to revisit combined requests for vended credentials and remote signing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Labels, branches, and atomic commits
&lt;/h3&gt;

&lt;p&gt;Andrei Tserakhau opened a design discussion on &lt;a href="https://lists.apache.org/thread/ls38t86m9mrpdmcqfmqmjtg768dny8tn" rel="noopener noreferrer"&gt;IRC labels in Polaris&lt;/a&gt; now that the labels field has merged into the Iceberg REST spec and Polaris tag support is close. He proposed treating labels as a read-only projection over Polaris tags rather than a separate entity. Tags already carry definitions, allowed values, inheritance, and reverse lookup, and both models key on Iceberg field IDs. A second labels entity creates two sources of truth. Sung Yun agreed for the producer side and asked whether federated catalogs need to store foreign labels at all or can forward them straight to clients. Andrei answered that forwarding works for engines, but Polaris users need foreign labels represented as read-only tags to see them through Polaris discovery and reverse-lookup APIs. JB, picking up a conversation from Glasgow, backed the projection approach and asked about permissions and performance. Andrei proposed reusing tag visibility rules, so &lt;code&gt;loadTable&lt;/code&gt; only returns labels the caller can already see through the Tag API, and caching effective tags per table so the hot path does not resolve inheritance on every call. He also suggested gating the feature behind a flag at first.&lt;/p&gt;

&lt;p&gt;Ankur Kotwal started a discussion on &lt;a href="https://lists.apache.org/thread/zmvrf05z1m100pko8qc0syj982yrwpzx" rel="noopener noreferrer"&gt;catalog-level branches for atomic multi-table promotion&lt;/a&gt;, a feature users have requested in issue #3469. Iceberg already supports branches on a single table. What users want is a way to branch an entire catalog, write to many tables in isolation, and promote all of them to main in one atomic step. That is the lakehouse version of a database transaction across tables. After Dmitri questioned the need for a new entity type, Ankur dug into the code and found that &lt;code&gt;commitTransaction&lt;/code&gt; is already atomic on both persistence families. He opened a test and doc PR (#5740) showing a recipe built on existing pieces, then shared a design doc for a native option where a branch becomes a second named pointer next to &lt;code&gt;heads/main&lt;/code&gt;, backed by a per-catalog registry.&lt;/p&gt;

&lt;p&gt;That work feeds directly into the long-running thread on &lt;a href="https://lists.apache.org/thread/fh3r8n8r723v2r67tcgvz3d15r8qn8sy" rel="noopener noreferrer"&gt;consistent multi-object changes in Polaris persistence&lt;/a&gt;. EJ Wang's updated proof of concept centralizes business logic in a shared manager instead of reimplementing it across backends. JB praised the separation of concerns and noted it fixes a maintenance burden that dates back to the move from OpenJPA to JDBC and NoSQL. Ankur ran the multi-table promotion test from #5740 against EJ's branch on H2, plus two race tests, which is exactly the kind of cross-thread validation that makes a design trustworthy. Dmitri said he needs a couple of weeks to review the PoC properly.&lt;/p&gt;

&lt;p&gt;Yufei also endorsed a proposal on &lt;a href="https://lists.apache.org/thread/wrv5q8600vn76ghkdjjhrmsxx9jjb8rc" rel="noopener noreferrer"&gt;avoiding validation of historical metadata references on every table commit&lt;/a&gt;. When &lt;code&gt;write.metadata.path&lt;/code&gt; changes, Polaris does not need to revalidate every historical metadata file. Leaving old files in place preserves immutability for past snapshots, and moving them belongs in a separate migration process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Operations and extensibility
&lt;/h3&gt;

&lt;p&gt;Tobias Riemenschneider reported that &lt;a href="https://lists.apache.org/thread/snms04dhn9d5g10g59nrfx6j2m1dw7ns" rel="noopener noreferrer"&gt;NoSQL persistence retry timeouts are not configurable&lt;/a&gt; and run shorter than the recommended MongoDB timeouts. Running Polaris 1.8.0 on MongoDB, his team sees table commits fail after 15 seconds with zero retries when MongoDB stalls behind a lagging secondary. The retry loop checks its total budget only after an attempt ends, and nothing bounds a single attempt. Robert Stupp confirmed the diagnosis: RetryConfig was always meant to be configurable, but SmallRye Config ignores it because &lt;code&gt;PersistenceParams.retryConfig()&lt;/code&gt; is a Java default method. Tobias filed issue #5777 and PR #5779 the same day. JB noted that JDBC already exposes max retries, max duration, and initial delay, so the NoSQL side will now match.&lt;/p&gt;

&lt;p&gt;JB opened a broader thread on &lt;a href="https://lists.apache.org/thread/th63h7nhxfmxywz2r28ml1f5f9fc6mmz" rel="noopener noreferrer"&gt;Polaris server extensions and custom entities&lt;/a&gt;, prompted by users he met in Glasgow. Authorizers and event listeners are easy to extend by shipping a module with a Jandex index. Custom entities are not. Users currently have to edit Polaris core and add values to the entities enum. JB opened PR #5776 to document the current state and asked the community how to make custom entities a supported extension point.&lt;/p&gt;

&lt;p&gt;Vignesh landed the prerequisite for a &lt;a href="https://lists.apache.org/thread/rswt2m6n97n2o03ll0q1bn243hsftmq0" rel="noopener noreferrer"&gt;shared CloudEvents envelope for Polaris events&lt;/a&gt;. PR #5717 adds a shared mapper next to the events SPI, with CloudEvents context at the top level, Kafka-parity fields in the data payload, and lowercase type names such as &lt;code&gt;org.apache.polaris.after_create_table&lt;/code&gt;, following Dmitri's suggestion. The webhook listener in PR #5084 will rebase on it. Dmitri also pushed the &lt;a href="https://lists.apache.org/thread/6yl42lr9ydm4m9fjsg1jj361zvjodw21" rel="noopener noreferrer"&gt;REST endpoints for table metrics and events&lt;/a&gt; (PR #4115) into a final review round now that metrics grants merged separately.&lt;/p&gt;

&lt;p&gt;Yong Zheng proposed a &lt;a href="https://lists.apache.org/thread/xw88nf5dh1n3nkrk099txc6r0cx0f8y2" rel="noopener noreferrer"&gt;delete-dataset simulation for the benchmark tool&lt;/a&gt;. Re-running benchmarks against persistent backends gives skewed results because old metadata piles up. Yufei asked whether resetting the persistence layer directly is faster. JB preferred keeping the API-based delete as the default, since it works against any backend and keeps the benchmark a plain client of a running server. Dmitri, Yufei, and JB all signed off on the approach in polaris-tools PR #286. A smaller cleanup thread on &lt;a href="https://lists.apache.org/thread/hkq8bwv37lfpb7dgt7bng0df0kz89dhp" rel="noopener noreferrer"&gt;role cleanup tasks&lt;/a&gt; concluded that the async cleanup flag on role deletion was a leftover from the initial code import. Ayush Saxena traced it to the first commit, and JB, Dmitri, and Vignesh agreed to remove it since roles have no storage to purge and grant records already get cleaned up synchronously.&lt;/p&gt;

&lt;h3&gt;
  
  
  Process and people
&lt;/h3&gt;

&lt;p&gt;Alex Dutra's thread on &lt;a href="https://lists.apache.org/thread/jtj2d4h35gf5hx440y1y0xokn2v09qqp" rel="noopener noreferrer"&gt;reducing CHANGELOG.md merge conflicts&lt;/a&gt; drew 19 messages. Ayush Saxena brought numbers: 75 of 339 commits on main over 60 days touched CHANGELOG.md, roughly one in four and a half. Alex proposed per-PR changelog fragment files. JB questioned whether a hand-maintained changelog is worth the effort at all and suggested assembling release notes from labeled PRs. Robert Stupp suggested conventional commit messages. Yufei and Alex both raised AI-assisted summarization at release time as an option, with Alex listing the tradeoffs around missing context. Dmitri clarified that the changelog was never meant to have an entry for every PR. The group settled on a first step: Yufei's PR #5733 tightens the guidance so only release-note-worthy changes get entries. If conflicts persist, the &lt;code&gt;changelog.d&lt;/code&gt; fragment approach is next.&lt;/p&gt;

&lt;p&gt;JB announced that &lt;a href="https://lists.apache.org/thread/poltkbrwv7mpq8pzsq4wpc6wtyw3gk96" rel="noopener noreferrer"&gt;Ayush Saxena is a new Polaris committer&lt;/a&gt;, and congratulations poured in from across the community. Ayush's fingerprints are all over this week's threads, from changelog statistics to git archaeology on role cleanup. JB also &lt;a href="https://lists.apache.org/thread/b5mdboyc2mc565r71j8h305wdsj3y7cm" rel="noopener noreferrer"&gt;cancelled the October 15 community meeting&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Arrow 26.0.0 ships
&lt;/h3&gt;

&lt;p&gt;Raúl Cumplido posted the &lt;a href="https://lists.apache.org/thread/sltmotxsw3gq5p7jqvm5bcvrynsflvqg" rel="noopener noreferrer"&gt;result of the Arrow 26.0.0 release vote&lt;/a&gt;. It carried with six binding +1s from Rossi Sun, Sutou Kouhei, Gang Wu, Raúl Cumplido, Adam Reeve, and David Li, plus non-binding +1s from Xuanwo, Tadeja Kadunc, and Jean-Baptiste Onofré. The &lt;a href="https://lists.apache.org/thread/b9cl8gjgbqnm1vw9z7xqxf9o4j3v7oqd" rel="noopener noreferrer"&gt;verification thread&lt;/a&gt; reads like a tour of the platforms Arrow now has to support. Gang Wu verified on an Apple M5 Pro with Clang 21. Raúl ran source, reproducible-source, integration, binary, wheel, and APT checks, including a patch to validate a Python 3.15 release candidate. Adam Reeve tested on Fedora 44 with Python 3.14. Tadeja verified on macOS with Ruby 4.0 and found a couple of GLib and Ruby script fixes she plans to send upstream. A major Arrow release touches C++, Python, R, Ruby, GLib, and more, so the breadth of hands-on verification is the real story here.&lt;/p&gt;

&lt;p&gt;The Rust implementation moved in parallel. Jeffrey Vo opened a &lt;a href="https://lists.apache.org/thread/0r0t8knpsn67pk8wbm934f57sgyk63gt" rel="noopener noreferrer"&gt;vote on Arrow Rust 59.3.1 RC1&lt;/a&gt;, and L. C. Hsieh, Raúl Cumplido, and Andrew Lamb all cast binding +1s after verifying on M4 and M3 Macs and Debian 14. Arrow Rust is the foundation under DataFusion, iceberg-rust, and a growing set of Rust query engines, so its patch releases ripple outward fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  ADBC grows up
&lt;/h3&gt;

&lt;p&gt;Ian Cook brought back a &lt;a href="https://lists.apache.org/thread/v0gyjk7c771wp8thn9scm3g1c2k6bfyw" rel="noopener noreferrer"&gt;new ADBC logo proposal&lt;/a&gt; after more design work. Broad support led to PR #4870 in arrow-adbc, which adds the logo, a new Visual Identity page, and an updated trademark notice. Rusty Conover gave detailed feedback: the project URL on the hex badge is hard to read at small sizes, and the text spacing did not sit in harmony with the chevron mark. Ian posted a revised version that addresses both points, and Dewey Dunnington approved. Barring objections, the logo passes by lazy consensus after 72 hours.&lt;/p&gt;

&lt;p&gt;A logo matters because ADBC is becoming a brand people build on. That showed up in a second thread: Awanish Gupta from IBM &lt;a href="https://lists.apache.org/thread/gqfd0tn25wm5ntrw1kdfl3vplpcgps6d" rel="noopener noreferrer"&gt;asked to contribute a native C++ ADBC driver for IBM Db2&lt;/a&gt;. David Li explained that the &lt;code&gt;adbc-drivers&lt;/code&gt; GitHub organization sits outside the Apache Arrow project, offered to set up access directly, and pointed to the driver authoring docs. Asked about scope, Awanish confirmed the driver targets Db2 for Linux, UNIX, and Windows only, not Db2 for z/OS. Every new ADBC driver widens the set of databases that can hand Arrow data to a lakehouse engine without row-by-row conversion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Format work and community
&lt;/h3&gt;

&lt;p&gt;The format track kept moving. Florian split the spec text for &lt;a href="https://lists.apache.org/thread/x9ys3c63j3jvzc269bdpmforpm83r27w" rel="noopener noreferrer"&gt;fixed and variable closedness range canonical extension types&lt;/a&gt; into its own PR (#53239) so the vote covers only the format change, and he asked to keep the vote open since no votes had arrived yet. David Li signed off on the latest revision of the &lt;a href="https://lists.apache.org/thread/lpg4xh650677yxqf4g5lf1ch927pn5lo" rel="noopener noreferrer"&gt;JSON representation of Arrow schemas&lt;/a&gt;, a small but useful step for tools that want to exchange schemas without the Flatbuffers dependency.&lt;/p&gt;

&lt;p&gt;Ian Cook reviewed Pearu Peterson's long-waiting &lt;a href="https://lists.apache.org/thread/9m6sq7trk3n7wrw7c5hqjjlo8qs1zy19" rel="noopener noreferrer"&gt;CSV date and time parsing PR&lt;/a&gt; and noted that Pearu's emails, like many others recently, had landed in spam folders. Andrei Tserakhau reported the same thing on the Iceberg list this week. If you posted to an Apache list recently and heard nothing, check whether your message reached people's inboxes before assuming silence means disinterest.&lt;/p&gt;

&lt;p&gt;Antoine Pitrou &lt;a href="https://lists.apache.org/thread/70j20p1yr5h9s530l8sdcqnnchjpz6ww" rel="noopener noreferrer"&gt;filed the Arrow board report&lt;/a&gt;, Ian Cook ran the &lt;a href="https://lists.apache.org/thread/7lj2fy4bzs6d86so74838bdg376jf0vr" rel="noopener noreferrer"&gt;October 7 community meeting&lt;/a&gt;, and Andrew Lamb announced on behalf of the PMC that &lt;a href="https://lists.apache.org/thread/tj66yqr9shrrzl6qo07bm55cxdw7778s" rel="noopener noreferrer"&gt;Richard Baah is a new Arrow committer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does "distinct" even mean?
&lt;/h3&gt;

&lt;p&gt;The sharpest Parquet debate this week was over a single word. Adrian Garcia Badaracco opened format PR #628 to &lt;a href="https://lists.apache.org/thread/qfkcfxkw3xq9g6ywq2cx2h5j39bmv9fd" rel="noopener noreferrer"&gt;classify &lt;code&gt;distinct_count&lt;/code&gt; metadata as inexact&lt;/a&gt; after a sync call reached consensus. Micah Kornfield asked for the reasoning, since Andrew Lamb had pushed back. Russell Spitzer explained it. Exactness of the number of distinct values is not standardized for many types. Strings with collations treat "foo" and "Foo" as equal or not depending on the system. Floating point has its own traps: NaN against NaN, and -0.0 against 0.0. Most use cases only need approximate statistics anyway, so the group chose to correct the language rather than define exact semantics for every type. Daniel Weeks added that older readers and writers already disagree about logical and physical equivalence, so assuming current values are exact was never safe. Andrew still sees changing "count of distinct values" to "estimated count" as a real change in meaning, not a clarification. Dan agreed the proposed wording is not ideal and offered alternatives on the PR.&lt;/p&gt;

&lt;p&gt;Russell also left a reminder that deserves repeating: when you cite a decision from a sync call, post notes to the list. Decisions that live only in a video call are invisible to the rest of the community.&lt;/p&gt;

&lt;h3&gt;
  
  
  The vector type fight
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/5vj5ttfjrrwhjmq2y5lpd5w048qw5yv9" rel="noopener noreferrer"&gt;numeric vector type thread&lt;/a&gt; turned into the most substantive design argument on any list this week. A focused call had produced a proposal for a FINITE_VECTOR logical type on fixed-length lists. Ryan Blue laid out what a logical type provides. It describes data for users and readers. It signals that repetition and definition levels reflect a fixed number of elements, which implementations can use to decode faster. It guarantees no null elements. And the finite variant guarantees no NaN or infinity values, so every vector has a finite length and works for distance calculations. Steven Wu agreed that FINITE_VECTOR brings value and argued against forcing every use case into a generic fixed-length list. Alkis Evlogimenos suggested naming it VECTOR to match other engines and type systems, leaving room for a non-finite variant later. Gang Wu supported separating FINITE_VECTOR (or VECTOR) from FIXED_LENGTH_LIST and moving the vector type first.&lt;/p&gt;

&lt;p&gt;Then Jan Finis made the case against. He argued that the finite restriction adds little value on its own and that the fixed-length part should be a general feature rather than a one-off. Existing types already handle uncompressed vectors well, he said. The real win is quantization, where storage size and processing speed improve by orders of magnitude. Will Edwards made a similar point from the engine side. He wants every engine to offer vector functions on lists of floats without a new logical type, and he sees more value in a type that describes how to unpack quantized codes, scales, and codebooks, which is where machine learning is heading.&lt;/p&gt;

&lt;p&gt;This is a genuine disagreement about what a file format owes the AI wave. One camp wants a simple, well-defined type now so engines and table formats can align, and Iceberg's vector work is already building on it. The other wants Parquet to skip the label and go straight to the compression problem. Both sides are right about something. A narrow VECTOR type gives Iceberg a stable target this year. Quantized storage is where the cost savings live. Watch for a proposal that ships the simple type first with an explicit path to quantized encodings.&lt;/p&gt;

&lt;h3&gt;
  
  
  A concrete plan for versioning
&lt;/h3&gt;

&lt;p&gt;Alkis Evlogimenos restarted the stalled versioning discussion with &lt;a href="https://lists.apache.org/thread/qk8hxpvycy6161lqop1bynr3yt028m7t" rel="noopener noreferrer"&gt;a concrete proposal&lt;/a&gt;. His two goals are to ship features when they are ready rather than waiting for the next bundle, and to guarantee that a reader either returns correctly interpreted results or fails, never a false read. He sorts every format change into two kinds. "Add-everywhere" changes are valid at every compatibility level, including in today's files. They are safe when any reader that does not understand them either fails where it needs them or is unaffected. A new encoding is the classic example: a reader that does not know ALP fails on the ALP column and reads every other column. "Compatibility level" changes are for things existing readers misread instead of failing on, such as metadata redefinitions, removals, or a new footer. A reader that does not support the level fails before reading anything.&lt;/p&gt;

&lt;p&gt;The most useful part of the proposal is the field survey. Alkis checked eight readers against their current source: Arrow C++, parquet-java, arrow-rs, DuckDB, Velox, arrow-go, cuDF, and fastparquet. Unknown encodings are mostly safe, though arrow-rs rejects the whole footer and parquet-java does the same when the encoding shows up in encoding stats. Unknown logical types are safe because every reader falls back to the physical type. Unknown page types are not safe: Arrow C++, DuckDB, and Velox skip them, so a new page type carrying rows gets dropped silently. Unknown compression codecs are not safe either: Arrow C++ treats them as uncompressed and decodes compressed bytes. Andrew Lamb praised the proposal and noted a third category, forward-compatible additions that older readers simply ignore, such as new statistics. This survey alone is a valuable document for anyone writing a Parquet reader.&lt;/p&gt;

&lt;h3&gt;
  
  
  Encodings and new types
&lt;/h3&gt;

&lt;p&gt;Prateek Gaur reported that the &lt;a href="https://lists.apache.org/thread/m8d0520g7df8686p6l1nbst46hn29bw2" rel="noopener noreferrer"&gt;C++ implementation of ALP encoding for floating-point data&lt;/a&gt; has merged, with follow-up items coming in a later PR. ALP compresses floating-point columns far better than the general-purpose codecs, which matters for sensor data, financial data, and embeddings. Asked who is working on new encodings, Andrew Lamb &lt;a href="https://lists.apache.org/thread/kxthjf063lvkgj8jcob8jd1djsztx03p" rel="noopener noreferrer"&gt;listed two active efforts&lt;/a&gt;: Prateek on PFOR (patched frame of reference) and Aarnav on FSST and OnPair, symbol-table-based string encodings.&lt;/p&gt;

&lt;p&gt;Micah Kornfield pushed back on part of the &lt;a href="https://lists.apache.org/thread/7bf0fvksphy66bh1op1wk0116yrp4z0x" rel="noopener noreferrer"&gt;WIRE logical type proposal&lt;/a&gt; for serialized wire-format messages. He does not want to move ahead with the projection component until an open source engine commits to using it, citing how hard variant was to get right in engines. He wants documenting serialized values kept separate from projection. Thomas Kissinger agreed to continue the &lt;a href="https://lists.apache.org/thread/dr555g8153xnjjg9y9yc7od288ddj9s3" rel="noopener noreferrer"&gt;extensible decimal floating-point type&lt;/a&gt; discussion in Costas Zarifis's design doc. Julien Le Dem &lt;a href="https://lists.apache.org/thread/rmjl2dp63b10f9sw6dsrwfsk5f1mx49c" rel="noopener noreferrer"&gt;submitted the October board report&lt;/a&gt; after a week of collecting status, and Russell noted that the timing collided with Community Over Code travel. Julien also announced the &lt;a href="https://lists.apache.org/thread/noq7gfxjjfyyp3h4mt9mrxnqb5rcr4cs" rel="noopener noreferrer"&gt;October 7 Parquet sync&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache DataFusion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comet asks to leave home
&lt;/h3&gt;

&lt;p&gt;Andy Grove posted a &lt;a href="https://lists.apache.org/thread/0szsfkrog2jjr2x92zl78201zh131qzq" rel="noopener noreferrer"&gt;proposal to establish Apache Comet as a top-level project&lt;/a&gt;. His argument is that Comet differs from other DataFusion subprojects. The others extend DataFusion. Comet is an accelerator for Apache Spark that uses DataFusion as its execution engine, and its community has grown largely distinct from DataFusion's. The numbers back him up: 24 releases since July 2024, including 1.0.0 in August and 1.1.0 on October 6, and 146 people with merged PRs, 81 of them in the last 12 months.&lt;/p&gt;

&lt;p&gt;The proposal is conservative by design. The name "Apache Comet" already cleared the podling name search. The initial PMC is drawn from existing DataFusion PMC members (Andy Grove, Andrew Lamb, Liang-Chi Hsieh, Matt Butrovich, and Oleks V.) with nobody promoted as part of the move, and Andy offered to chair. Initial committers are the existing DataFusion committers who contribute to Comet. The repository moves from &lt;code&gt;apache/datafusion-comet&lt;/code&gt; to &lt;code&gt;apache/comet&lt;/code&gt;, with docs at comet.apache.org. Joining Comet changes nobody's role in DataFusion. Confirmations came quickly from Bhargava Vadlamani, Manu Zhang, L. C. Hsieh, Matt Butrovich, Parth Chandra, Martin Grigorov, and Chao Sun, with Andrew Lamb adding his support. Andy plans a formal vote after about a week. He corrected the timeline in a follow-up: the next DataFusion board meeting is December 16, not November 18.&lt;/p&gt;

&lt;p&gt;Comet also shipped this week. Andy announced that &lt;a href="https://lists.apache.org/thread/qyxttfywjq8otnj7k120c7fhyprwj5h3" rel="noopener noreferrer"&gt;Comet 1.1.0 passed its vote&lt;/a&gt; with nine +1s, six binding, and published the jars to Maven. He also proposed an &lt;a href="https://lists.apache.org/thread/nyrn4t3k0j6fx4pdst9m5oq81grnbwhn" rel="noopener noreferrer"&gt;update to the Comet contributor guide on AI&lt;/a&gt; in PR #6734. Automated reviews can help, the guidance says, but every PR approval must come from a human, with or without AI assistance. That is a clear, enforceable line, and other Apache projects are likely to borrow it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Releases across the family
&lt;/h3&gt;

&lt;p&gt;The DataFusion family shipped on several fronts. Oleks V. announced that &lt;a href="https://lists.apache.org/thread/kzgb9oj4yxq36sd2y6gbrbd11swc9mro" rel="noopener noreferrer"&gt;DataFusion 55.2.0 passed&lt;/a&gt; with five binding +1s and is published to crates.io. Andy reported that &lt;a href="https://lists.apache.org/thread/qptl5swh49vdvbm9mvfdm2qbfblnqgf1" rel="noopener noreferrer"&gt;Ballista 55.0.0 passed&lt;/a&gt; with six +1s, four binding. Tim Saucer opened the &lt;a href="https://lists.apache.org/thread/58b0o9w542h1h2rf65d2tdfbcm7f7yvn" rel="noopener noreferrer"&gt;DataFusion Python bindings 55.0.0 vote&lt;/a&gt;, which collected binding +1s from Marko Milenković, Andrew Lamb, L. C. Hsieh, and Andy Grove. Xuanwo's careful verification caught a missing NOTICE file in the source archive, a fix requested for the next release. Tim also closed out the &lt;a href="https://lists.apache.org/thread/hsmtt7rx9lqh25gqtwq0xnkn6170hj2m" rel="noopener noreferrer"&gt;Python bindings 54.1.0 vote&lt;/a&gt; with seven +1s, five binding.&lt;/p&gt;

&lt;p&gt;Andy also proposed &lt;a href="https://lists.apache.org/thread/qglf9qowwd89hdrqk7cj1hxvsh9nl4pv" rel="noopener noreferrer"&gt;removing the Spark compatibility feature from Ballista&lt;/a&gt;. The experimental, off-by-default feature covered only a handful of expressions. After six years on Spark-compatible engines, Andy wrote, he knows Spark compatibility is a project that never finishes because Spark keeps changing, and other projects already fill that niche. Read alongside the Comet proposal, the direction is clear. Comet owns Spark acceleration. Ballista focuses on being a distributed DataFusion engine. Each project gets a sharper identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie (incubating)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Where does an MCP server belong?
&lt;/h3&gt;

&lt;p&gt;Apache Ossie is the open semantic interchange specification, the standard for moving metric, dimension, and relationship definitions between BI tools, semantic layers, catalogs, and AI agents. This week its busiest thread asked a question every semantic layer team is facing: should Ossie ship an &lt;a href="https://lists.apache.org/thread/dpjz5jg84rsbyjv44rp6ylxo8khfzz9w" rel="noopener noreferrer"&gt;MCP server, and where should it live&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;The thread started from GitHub discussion #510 and PR #529, which proposes an &lt;code&gt;execute_query&lt;/code&gt; contract. Chris Eubank asked the key question: how tightly is &lt;code&gt;execute_query&lt;/code&gt; tied to Ossie semantics? Is it meant to steer clients toward portable Ossie queries, or to standardize running any vendor's query language? As drafted, the model identity was optional and the result schema loose, so it looked closer to the second. Markus Cozowicz argued for pragmatism. Vendors will take time to build conversions, and each vendor has features the standard lacks, so allowing all registered Ossie dialects is a reasonable start. He also made an interesting point: if a query execution contract lands in the Ossie standard and then in LLM training data, nobody has to teach each agent how to run queries against a semantic model.&lt;/p&gt;

&lt;p&gt;Jean-Baptiste Onofré drew the line clearly. Ossie is an interchange spec for semantic models. A running MCP server brings execution, connections, auth, and a fast-moving protocol surface into the project. He prefers that MCP servers live in engines and catalogs, with Ossie defining the contract and possibly a REST API, but not the server implementation. Chris agreed that the dividing line is whether a query resolves against an Ossie model, and said there is interest on his side in building query capabilities over the Layer 2 and Layer 3 query interfaces once they land in the core spec. Jakub Moravec asked whether defining skills in Ossie and leaving tools to vendors is enough. Ashfaqbs responded that skills are advisory text while tools are executable contracts, and that validation belongs in Ossie while conversion and query belong to vendors. Jakub agreed with that split.&lt;/p&gt;

&lt;p&gt;The most valuable contributions came from people running code. Kyoung Min Kim ran an experiment on a real database of 33 datasets and 45 relationships, generated an Ossie model, and asked three models to return Layer 3 query specs that a compiler turned into SQL. Aleksandr Kosachev offered his ClickHouse executor as a test bed. It now accepts the aggregation query shape from PR #246 as a JSON object and returns #246 error codes such as &lt;code&gt;E_NAME_NOT_FOUND&lt;/code&gt;, &lt;code&gt;E_NO_PATH&lt;/code&gt;, and &lt;code&gt;E_AMBIGUOUS_PATH&lt;/code&gt; inside the #529 error envelope. His first report found the executor raised 10 of the 28 #246 codes as specified. A later update showed it now follows paths across several many-to-one relationships, rejects a second path as ambiguous, and merges measures across datasets, with answers matching expected rows line by line. JB took the lesson that a small shared query shape plus error codes works, and that the next real test is a second engine running the same cases. Where two engines disagree, PR #246 is underspecified, and those are the spots to fix. Markus confirmed PR #529 is now narrowed to the declarative case.&lt;/p&gt;

&lt;p&gt;Markus also captured a practical agent problem in the same thread. Filter values are where agents fail. A user asks about "Coca &amp;amp; Cola" when the data says "Coca-Cola Company." He laid out three strategies: put the vocabulary in the ontology when context allows, expose a dedicated tool for looking up column values, or return suggested values reactively when a query comes back empty. Each has tradeoffs in tool count and accuracy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pinning down the query layer
&lt;/h3&gt;

&lt;p&gt;Several threads worked on the query layer that the MCP debate depends on. Chris Eubank opened a thread on &lt;a href="https://lists.apache.org/thread/cfb1dljkh2c6nmzmdfx7spgg9pxr2l9v" rel="noopener noreferrer"&gt;model expressions versus query semantics&lt;/a&gt;, pointing out that the expression language spec scopes itself to defining a model and says the SQL interface comes in a separate document. Today, expressions define a model. They do not create a query interface. Justin Talbot pushed a revision of the &lt;a href="https://lists.apache.org/thread/5mkoh54688r1ym34o8bc6ho165mc7z3p" rel="noopener noreferrer"&gt;Relational Query Interface spec&lt;/a&gt; (PR #354). The biggest change renames the measure evaluation function from &lt;code&gt;MEASURE()&lt;/code&gt; to &lt;code&gt;AGG()&lt;/code&gt; as the single normative spelling, with other spellings allowed as non-normative synonyms. Chris agreed with the changes and suggested deferring a SQL-native syntax for declaring measures to a future extension. Justin also opened a &lt;a href="https://lists.apache.org/thread/7myzrz1j03rt8svoqgfj61t5s5fqtn0o" rel="noopener noreferrer"&gt;vote on the specification layers overview&lt;/a&gt; (PR #452), an informational document describing Ossie's four layers: Model Definition, Relational Query Interface, Wide Table Query Interface, and Ontology.&lt;/p&gt;

&lt;p&gt;Ananth Tirumanur reworked his proposal to &lt;a href="https://lists.apache.org/thread/bowhhbbh93jp04x1m1y1ypymppvcjwbh" rel="noopener noreferrer"&gt;add an ICEBERG expression dialect to the core spec&lt;/a&gt; (PR #491). Reviewers worried that a new vendor dialect without a reference guide invites parser divergence. Ananth's fix: the dialect defines no new syntax. It is the predicate string accepted by PyIceberg's expression parser, which serves as the reference reader. Chris praised anchoring a dialect to an open source parser as a precedent worth encouraging. JB asked where the dialect applies, since the schema only uses dialect expressions for fields and metrics, and a predicate-only dialect fits boolean fields and nothing else. Kyoung Min Kim ran the PR's predicate table through PyIceberg 0.6.1 through current main. Thirty of 35 forms behave the same in every version, and every unsupported form is rejected everywhere. The five that differ include BETWEEN and double-quoted identifiers, which parse from 0.10.0. That data settles what minimum version the dialect needs to pin. For lakehouse teams, an ICEBERG dialect means a semantic model can carry a filter that an Iceberg-native engine pushes straight down to a table scan.&lt;/p&gt;

&lt;p&gt;The expression language itself grew. The &lt;a href="https://lists.apache.org/thread/s7szttv9vynftd8w6bsdmt4bp1kzj09v" rel="noopener noreferrer"&gt;vote to add the FILTER (WHERE ...) aggregate modifier&lt;/a&gt; collected support from JB, Klahr Joshua, and Ayush Saxena after &lt;a href="https://lists.apache.org/thread/c580g79bvljb25vwtkmjogx9mmgcogqv" rel="noopener noreferrer"&gt;discussion&lt;/a&gt; with Julian Hyde and Chris. Chris noted that the &lt;a href="https://lists.apache.org/thread/y2jbkmtv4nmddyzzkxq24bzlmfghby20" rel="noopener noreferrer"&gt;&lt;code&gt;||&lt;/code&gt; concatenation operator&lt;/a&gt; now renders correctly in the spec. Aleksandr opened a discussion on &lt;a href="https://lists.apache.org/thread/z2jr7q4pllsk5nkzv7d18ro8844n5tgy" rel="noopener noreferrer"&gt;NULLS FIRST and NULLS LAST in window ORDER BY&lt;/a&gt; (PR #577). Chris volunteered to rewrite spec wording for &lt;a href="https://lists.apache.org/thread/l9242bwfvl4ypr38d6rpfk1yfgy0hq4r" rel="noopener noreferrer"&gt;dataset-scoped metrics&lt;/a&gt;, and Kyoung Min will narrow the validator so qualified references become errors. JB asked that the rule be stated in the spec text and backed by a conformance test.&lt;/p&gt;

&lt;h3&gt;
  
  
  Measuring whether Ossie works
&lt;/h3&gt;

&lt;p&gt;Chris Eubank raised a question every interchange standard eventually has to answer: &lt;a href="https://lists.apache.org/thread/dnl13g1nlh7l2o6gnw9qjp7wqmrh0tds" rel="noopener noreferrer"&gt;how do we measure semantic interoperability&lt;/a&gt;? He ran the simplest possible model, one sales dataset and one &lt;code&gt;SUM(sales.amount)&lt;/code&gt; metric, through Ossie to vendor and back to Ossie across 14 converters. Eight of 14 preserved the ANSI_SQL expression. Only one of 14 preserved OSSIE_SQL_2026. The rest emitted a vendor dialect, dropped the metric, or lacked a vendor-to-Ossie path. Chris was clear that this measures preservation of the portable dialect, not semantic equivalence. He proposed a shared interoperability test suite in the repository with reference models, measurement utilities, and published results for every Ossie-hosted converter. This is the right instinct. A standard that only measures file format support can look healthy while portable meaning leaks out at every hop.&lt;/p&gt;

&lt;p&gt;The converter list keeps growing anyway. Tan Huynh from Holistics proposed a &lt;a href="https://lists.apache.org/thread/kymbn05f52qz3sm4vb3jyptq7vw81o8q" rel="noopener noreferrer"&gt;Holistics converter&lt;/a&gt; that runs both ways without network access, along with a &lt;a href="https://lists.apache.org/thread/8tprkgm9kfgn92xnlwlx1osb9pf5f2fx" rel="noopener noreferrer"&gt;HOLISTICS_AQL dialect&lt;/a&gt; entry. Mahmoud Hassanen proposed a &lt;a href="https://lists.apache.org/thread/ojdgt15wt6mfzbkn4mjd9nowb7hdolvv" rel="noopener noreferrer"&gt;native ClickHouse dialect converter&lt;/a&gt;, since ANSI SQL transpilation produces poor queries when ClickHouse needs functions like &lt;code&gt;uniqExact&lt;/code&gt; and &lt;code&gt;toStartOfMonth&lt;/code&gt;. JB explained that converters translate semantic model definitions and are not SQL transpilers, and that new converters will go to the &lt;code&gt;apache/ossie-converters&lt;/code&gt; repository he is preparing. Mahmoud opened PR #558 to register CLICKHOUSE in the dialect enum. An &lt;a href="https://lists.apache.org/thread/kjtbh1dnhvdlz0xoxx6lq08fzvxwl4gb" rel="noopener noreferrer"&gt;OpenMetadata converter&lt;/a&gt; discussion continued as well.&lt;/p&gt;

&lt;p&gt;GitHub discussions rounded out the semantic modeling agenda: &lt;a href="https://lists.apache.org/thread/hm5l6d007wt66ngs00vm41vwc5mopcj9" rel="noopener noreferrer"&gt;metric additivity&lt;/a&gt; (additive, semi-additive, non-additive), where Justin Talbot noted BI tools rely on additivity to roll up results client-side and skip database round trips, &lt;a href="https://lists.apache.org/thread/st3md6nt78jhp879zxsdxx7v2y4qsocd" rel="noopener noreferrer"&gt;certified metrics and certifying authority&lt;/a&gt;, a &lt;a href="https://lists.apache.org/thread/5zhpb4mps34h032k17dncm6gh3x8z9ql" rel="noopener noreferrer"&gt;shared semantics reference vocabulary&lt;/a&gt;, &lt;a href="https://lists.apache.org/thread/33wqxms9kl687x39q9pdqp7l8o0pjxv8" rel="noopener noreferrer"&gt;metric trees&lt;/a&gt;, and a proposal on how the &lt;a href="https://lists.apache.org/thread/wng2nx6gb41jy1zrvgrjk7lo457obt14" rel="noopener noreferrer"&gt;Open Knowledge Format relates to Ossie&lt;/a&gt;, which Markus Weimer welcomed as a canonical way to feed agents context from both. JB posted a revised &lt;a href="https://lists.apache.org/thread/8gl31bq0yr0jx4ywno2mrfbdvllrfh7w" rel="noopener noreferrer"&gt;Ossie REST API spec&lt;/a&gt; as PR #573, and Dmitri Bourlatchkov of Polaris endorsed it, noting Polaris as a possible implementation. Nolan Clark asked that the model management API avoid assuming a one-to-one mapping between inputs and converted outputs. Ankit Tandon posted &lt;a href="https://lists.apache.org/thread/0lwgmkxcjy4cgb41dx79wjwj2kw72l4o" rel="noopener noreferrer"&gt;notes from the October 13 Ontology working group&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Openness and community
&lt;/h3&gt;

&lt;p&gt;Julian Hyde asked a blunt question: &lt;a href="https://lists.apache.org/thread/2yz0r9ko95cnm17thv8rxsmk11zy9oy9" rel="noopener noreferrer"&gt;"Are we open?"&lt;/a&gt; Much of the project's work seemed to run vendor to vendor, he wrote, and it was not obvious how to attend a working group meeting. Kurt Stirewalt and Matthew Mullins pointed to the community page, Slack, and a public calendar of open working group meetings, while conceding the information is hard to find. Ayush Saxena asked for specifics. Julian clarified: Slack and the working groups are open in the sense that you can ask to join, but their content is invisible to search engines and unauthenticated readers. Aldre Jota then reported that the Slack invite links on the site were revoked or broken. Klahr Joshua invited anyone to improve the community page through the ossie-website repository, and Julia Blyumen suggested clarifying organizational versus individual membership. This is a healthy thread. Apache's rule is that decisions happen on the list, and a young project dominated by vendor working groups needs to keep proving it follows that rule.&lt;/p&gt;

&lt;p&gt;JB proposed the &lt;a href="https://lists.apache.org/thread/s2bjkpmlszckf1l360t63r157khd8odw" rel="noopener noreferrer"&gt;first Apache Ossie workshop and meetup&lt;/a&gt;: a full-day hands-on workshop followed by an evening of talks. Julian supported it with the standard Apache caveats, that the workshop is for knowledge transfer rather than decisions and that recordings should be posted. Support came from Dragos Crintea, Kurt Stirewalt, Yufei Gu, Ankit Tandon, and Jochen Christ, who said a full-day onsite session is worth a flight from Europe. JB is working on logistics. Ayush Saxena announced that &lt;a href="https://lists.apache.org/thread/yr3qh6l4n19cnvlw95pk4v16zz7gs1by" rel="noopener noreferrer"&gt;Chris Eubank is a new Ossie committer&lt;/a&gt;, a fitting recognition given how many of this week's threads he started or shaped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The lakehouse is learning new data types for AI, in lockstep.&lt;/strong&gt; Iceberg's File type follows Parquet's FILE logical type. Iceberg's vector design builds on Parquet's emerging vector representation, and the Iceberg vector sync explicitly defers to the Parquet decision. Parquet's ALP encoding targets the floating-point data that embeddings and sensor workloads produce. Arrow-java 20 is expected to bring Decimal32 and Decimal64, which Iceberg is already preparing for. These are not separate efforts. The table format, the file format, and the in-memory format are converging on one shared vocabulary for unstructured bytes and numeric vectors. The Parquet vector debate is the critical path. Whatever Parquet decides about VECTOR versus quantized encodings will set the shape of AI data in Iceberg tables for years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Catalogs are getting exact about access.&lt;/strong&gt; The same people show up across Iceberg and Polaris on the same problem. Youngrae Kim, Yufei Gu, Dmitri Bourlatchkov, and JB carried the access-delegation question from the Iceberg spec into Polaris behavior in one week. Polaris is separating catalog configuration from server storage access, scoping what StorageCredential responses contain, and deciding whether storage endpoints belong in cache keys. Iceberg added a standard User-Agent format. Polaris is mapping IRC labels onto its tag model. As AI agents start calling catalogs directly, these precise rules about who gets which credentials and which classifications become the security model. Loose defaults stop being acceptable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantics and agents are the new frontier, and the lakehouse is the ground floor.&lt;/strong&gt; Ossie's MCP debate, its ICEBERG dialect, and its query interface work all point the same way. Agents need a governed semantic layer to ask questions, and that layer needs to push work down to open tables. An ICEBERG dialect anchored to PyIceberg means a metric definition can carry a predicate an Iceberg engine executes directly. Polaris showing up as a possible implementer of the Ossie REST API means the catalog and the semantic layer can share one interface. This is the open lakehouse stack extending upward: Parquet for files, Iceberg for tables, Polaris for the catalog, Arrow for movement, and Ossie for meaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projects are formalizing how humans and AI share the work.&lt;/strong&gt; Comet now requires a human to approve every PR. Polaris debated AI-assisted changelog summaries and chose to tighten human guidance first. Several contributors on the Ossie and Polaris lists described writing code first and discussing second, since code is cheap now. The common thread is accountability. Apache projects welcome AI help, but they want a named human responsible for every merge and every release note.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;The Iceberg File type vote closes this week, and the AMT baseline vote has no objections on record, so expect both results soon. The Comet top-level project discussion moves to a formal vote around October 16, with the board resolution targeted at the December 16 meeting. On Parquet, watch whether the vector debate converges on a simple VECTOR type or detours into quantized encodings, and whether Alkis's versioning proposal picks up a sync slot. Polaris will see the FileIO cleanup PR and the NoSQL retry fix land. Ossie's workshop logistics, the converters repository move, and a second engine running Aleksandr's ClickHouse test cases are all worth tracking. On the calendar: the Seattle Iceberg meetup on October 21, the virtual Iceberg meetup on October 23, and the Iceberg index sync returning October 26.&lt;/p&gt;




&lt;h2&gt;
  
  
  Go Deeper With the Open Lakehouse
&lt;/h2&gt;

&lt;p&gt;If this newsletter helps you keep up with Iceberg, Polaris, Arrow, Parquet, DataFusion, and Ossie, my books go further. I have written more than 50 titles on the open lakehouse, Apache Iceberg, Apache Polaris, agentic AI, and data engineering, from the O'Reilly definitive guides to hands-on Python and architecture books.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browse the full catalog at &lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;&lt;/strong&gt; and find the right book for where you are in your lakehouse journey.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Haiku 5.5, Muse Wonder, Open Racks: Oct 6-14</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 14 Oct 2026 16:50:37 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/haiku-55-muse-wonder-open-racks-oct-6-14-29j5</link>
      <guid>https://dev.to/alexmercedcoder/haiku-55-muse-wonder-open-racks-oct-6-14-29j5</guid>
      <description>&lt;p&gt;This week Google returned to the frontier. Gemini 4 Argon, its first new flagship since Gemini 3 Pro, became generally available on October 13 at an introductory price of $2 per million input tokens. The price of a capable model fell at the low end too. Anthropic shipped Claude Haiku 5.5 at a tenth of its predecessor's token price. Meta released its first frontier model, OpenAI rebuilt ChatGPT answers around interactive interfaces, and Mistral previewed a trillion-parameter open-weight flagship.&lt;/p&gt;

&lt;p&gt;Under the models, the hardware story moved to the rack. At the Open Compute Project Global Summit, NVIDIA, AMD, Microsoft, Intel, and Marvell all showed new chips and open rack designs. Memory stayed the tightest link in the chain.&lt;/p&gt;

&lt;p&gt;This issue follows the usual order. Models first, then tooling, then standards, then infrastructure. Each section ends with what the news means for teams building with AI and data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models: Google Returns to the Frontier With Gemini 4 Argon
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 4 Argon
&lt;/h3&gt;

&lt;p&gt;Gemini 4 Argon is the lead model story of the week. Google first &lt;a href="https://www.cnbc.com/2026/09/30/google-gemini-4-argon-ai.html" rel="noopener noreferrer"&gt;announced Argon on September 30&lt;/a&gt;, but only for trusted cybersecurity partners in its Fairwind Program. On October 13, Google &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-argon/" rel="noopener noreferrer"&gt;made Argon globally available&lt;/a&gt; to developers, enterprises, and paying consumers. It is the first model in the Gemini 4 family.&lt;/p&gt;

&lt;p&gt;Access now runs through several doors. Developers can call it in AI Studio and on the Gemini platform under the &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/gemini-4-argon-available-on-google-cloud" rel="noopener noreferrer"&gt;model ID &lt;code&gt;gemini-4-argon&lt;/code&gt;&lt;/a&gt;. Google AI Ultra subscribers get it in Google Antigravity, Google's agentic coding environment. Ultra and Pro subscribers get it in the Gemini app and AI Mode in Search. Enterprises get it in Gemini for business.&lt;/p&gt;

&lt;p&gt;The price is the surprise. Argon launches at an introductory rate of &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-argon/" rel="noopener noreferrer"&gt;$2 per million input tokens and $10 per million output tokens, with cached input 95% off&lt;/a&gt;. That matches GPT-6.1 Sol. The discount ends on November 30, 2026. After that, Argon costs $4 input and $20 output, the same band as Claude Opus 5.5 and Meta's Muse Wonder. Budget for the higher number, not the launch number.&lt;/p&gt;

&lt;p&gt;The token limits stand out. Argon keeps a 1 million token input window. Google also &lt;a href="https://futurumgroup.com/insights/google-returns-to-the-frontier-with-gemini-4-argon/" rel="noopener noreferrer"&gt;raised the output limit to 1 million tokens, up from 64,000&lt;/a&gt;. Google describes this as a unified input-output limit, served through a new continuation protocol for long outputs. Every other model in this issue caps output at 128,000 tokens or less. Long outputs matter for agents that write whole codebases, long reports, or large data transformations in one run.&lt;/p&gt;

&lt;p&gt;Google's benchmark claims are vendor-reported, so read them with care. Google says Argon &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-argon/" rel="noopener noreferrer"&gt;ranks #1 on the Vals Index&lt;/a&gt;, which measures performance on finance, coding, legal, and tax work. It reports 87% on the Embodied Reasoning (ERQA) benchmark for physical and spatial reasoning. On the Gray Swan Indirect Prompt Injection benchmark, Google says Argon cut attack success to 0.7% across 15 adaptive attempts. For security work, &lt;a href="https://hyper.ai/en/stories/3d57464ba301c9d7d2919dc1d3e7d763" rel="noopener noreferrer"&gt;Google reports that Argon matches GPT-6 Astra on CWE-bench&lt;/a&gt;, which measures finding and patching vulnerabilities.&lt;/p&gt;

&lt;p&gt;Outside analysts are more measured. Futurum's read is that &lt;a href="https://futurumgroup.com/insights/google-returns-to-the-frontier-with-gemini-4-argon/" rel="noopener noreferrer"&gt;Argon puts Google level with OpenAI but behind Anthropic&lt;/a&gt;. TechTarget noted that Argon is &lt;a href="https://www.techtarget.com/ai/news/366651339/Gemini-4-Argon-is-late-but-Googles-expertise-may-be-an-advantage" rel="noopener noreferrer"&gt;Google's first new top-tier model since Gemini 3 Pro in November 2025&lt;/a&gt;, and that its claims still need proof in enterprise settings. Independent results on the full Vals suite and Artificial Analysis should land within days.&lt;/p&gt;

&lt;p&gt;Google backed the launch with internal results. Engineering teams using Argon in Antigravity &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-argon/" rel="noopener noreferrer"&gt;increased agentic code submissions by more than 35% and cut code rollbacks by nearly a third&lt;/a&gt;. Given a skills rulebook and a one-paragraph goal, Argon worked overnight on Google's open source Agent Development Kit. Its changes, now merged, cut in-memory session prep time by 40% in long sessions and sped up cold imports by 21%. Google also reports a 2.85x end-to-end inference speedup for Gemma 4 E2B on vLLM, with the work sent upstream as pull requests.&lt;/p&gt;

&lt;p&gt;One internal result belongs in the infrastructure conversation. In the September 30 announcement, Google said a team of Argon agents &lt;a href="https://blog.google/intl/en-mena/company-news/technology/gemini-4-argon-our-next-era-of-frontier-intelligence/" rel="noopener noreferrer"&gt;analyzed fleet-wide profiling data and applied memory fixes across its data centers&lt;/a&gt;. The changes freed over 300 TiB of memory once rolled out, with 500 TiB to 1 PiB in total savings expected. In a month when memory is the scarcest part in AI hardware, a model that finds memory in existing software is worth noting.&lt;/p&gt;

&lt;p&gt;Security shaped the rollout. Argon went to cyber defenders first, the same defender-first pattern Anthropic used with Claude Mythos under Project Glasswing. On October 13, Google began expanding Fairwind to hundreds of additional partners. Google plans to give trusted defenders a version of Argon without cyber guardrails. For the public model, Google says it trained Argon to pause for human confirmation before irreversible steps. It reports that shortcut attempts on coding tasks fell to 2%, and it runs a monitor that reads the agent's reasoning and actions to block unintended workarounds in real time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; For two months, the price matches GPT-6.1 Sol while the claims match the top tier. That makes now a cheap time to run Argon against your own evaluation set. Test the 1 million token output limit if your agents produce long artifacts, since no other frontier model offers it. Plan costs at the post-November rate of $4 and $20. And note where Argon lives. Its best agentic experience runs in Antigravity, which follows this week's pattern of labs keeping their strongest experience inside their own tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Haiku 5.5
&lt;/h3&gt;

&lt;p&gt;Anthropic released Claude Haiku 5.5 on October 7, 2026. It completes the Claude 5.5 family alongside Sonnet 5.5 and Opus 5.5. The API model ID is &lt;code&gt;claude-haiku-5-5&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The headline is price. &lt;a href="https://www.vktr.com/ai-platforms/anthropic-cuts-smallmodel-pricing-90-with-claude-haiku-55/" rel="noopener noreferrer"&gt;Haiku 5.5 costs $0.10 per million input tokens and $0.50 per million output tokens&lt;/a&gt; for prompts up to 100,000 tokens. Haiku 4.5 lists at $1 and $5. That is a 90% cut in the base token price.&lt;/p&gt;

&lt;p&gt;The pricing has a second tier. Above 100,000 tokens, &lt;a href="https://www.inside.com.tw/article/42592-anthropic-claude-haiku-5-5-launch-price-cut-1m-context" rel="noopener noreferrer"&gt;the rate rises to $0.50 input and $2.50 output per million tokens&lt;/a&gt;. Haiku 5.5 is the only current Claude model priced this way. Sonnet 5.5, Opus 5.5, and Fable 5.1 bill the full window at one rate.&lt;/p&gt;

&lt;p&gt;The context window grew five times. Haiku 5.5 takes &lt;a href="https://forklog.com/en/?p=104941" rel="noopener noreferrer"&gt;1 million tokens of context and returns up to 128,000 output tokens&lt;/a&gt;, up from 200,000 and 64,000 on Haiku 4.5. The cheapest Claude model now has the same window as the most expensive one.&lt;/p&gt;

&lt;p&gt;Anthropic frames the savings as about 75% per task, not 90%. The gap comes from the tokenizer. Haiku 5.5 uses the tokenizer introduced with Claude 4.7, which &lt;a href="https://www.vktr.com/ai-platforms/anthropic-cuts-smallmodel-pricing-90-with-claude-haiku-55/" rel="noopener noreferrer"&gt;produces roughly 30% more tokens for the same input&lt;/a&gt; than Haiku 4.5 did. Lower prices per token, more tokens per task.&lt;/p&gt;

&lt;p&gt;Haiku 5.5 is also the first Haiku with Anthropic's effort settings and adaptive thinking. That changes the cost math again. Artificial Analysis scored Haiku 5.5 at 43 on its Intelligence Index at maximum effort, ahead of GPT-6 Luna at 38. But &lt;a href="https://www.inside.com.tw/article/42592-anthropic-claude-haiku-5-5-launch-price-cut-1m-context" rel="noopener noreferrer"&gt;Haiku 5.5 produced about 440 million output tokens across the full test suite, against 140 million for Luna&lt;/a&gt;. Per test question, that worked out to about $0.21 for Haiku and $0.07 for Luna.&lt;/p&gt;

&lt;p&gt;Those are independent numbers, not vendor claims. Artificial Analysis also reported &lt;a href="https://pk.linkedin.com/in/mahmood-dev" rel="noopener noreferrer"&gt;33% on Terminal-Bench 4.0, up from 0% for Haiku 4.5&lt;/a&gt;. It flagged one agent automation result as likely understated and plans to re-run that test.&lt;/p&gt;

&lt;p&gt;Anthropic made two related pricing moves the same day. It &lt;a href="https://techjacksolutions.com/?p=94025" rel="noopener noreferrer"&gt;halved the Sonnet 5.5 cache read price to $0.10 per million tokens&lt;/a&gt; and said that makes Sonnet 5.5 about 20% cheaper on most agentic work. It also added monthly API credits to subscriptions. &lt;a href="https://www.inside.com.tw/article/42592-anthropic-claude-haiku-5-5-launch-price-cut-1m-context" rel="noopener noreferrer"&gt;Max 5x and Max 20x plans include $100 and $200 a month in Claude Platform credits, and Team plans get up to $500&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Availability is broad. &lt;a href="https://www.vktr.com/ai-platforms/anthropic-cuts-smallmodel-pricing-90-with-claude-haiku-55/" rel="noopener noreferrer"&gt;Haiku 5.5 runs on the Claude API, Amazon Bedrock, Google Cloud, Microsoft Foundry, and Claude Platform on AWS&lt;/a&gt;. It also shipped in Claude Code and GitHub Copilot on day one.&lt;/p&gt;

&lt;p&gt;Code written for Haiku 4.5 needs updates. Anthropic lists API changes that break older integrations, so test before you swap the model ID in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Small models do most of the work in agent systems. They classify, route, extract, summarize, and run as sub-agents under a larger planner. A 90% cut in the base rate makes it cheap to run many more of those calls. Keep prompts under 100,000 tokens where you can, since the price jumps five times above that line. And measure cost per task, not cost per token. The Artificial Analysis data shows a cheap token can still produce an expensive answer if the model thinks at length.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meta Muse Wonder
&lt;/h3&gt;

&lt;p&gt;Meta's Superintelligence Lab &lt;a href="https://techcrunch.com/2026/10/12/meta-releases-its-first-frontier-model-muse-wonder" rel="noopener noreferrer"&gt;released Muse Wonder and Muse Wonder Full on October 12&lt;/a&gt;. TechCrunch called it Meta's first attempt at a frontier model. The earlier Muse Spark models targeted low latency. The Wonder models are larger and aim at coding and long-running agent tasks.&lt;/p&gt;

&lt;p&gt;Developers can call Muse Wonder through the Meta Model API as &lt;code&gt;muse-wonder-1.0&lt;/code&gt;. &lt;a href="https://techcrunch.com/2026/10/12/meta-releases-its-first-frontier-model-muse-wonder" rel="noopener noreferrer"&gt;It costs $4 per million input tokens and $20 per million output tokens&lt;/a&gt;. That puts it in the same price band as GPT-6 Sol and Claude Opus 5.5.&lt;/p&gt;

&lt;p&gt;The twist is the second checkpoint. &lt;a href="https://techcrunch.com/2026/10/12/meta-releases-its-first-frontier-model-muse-wonder" rel="noopener noreferrer"&gt;Muse Wonder Full is only available to Muse Code subscribers and will not be served through the API&lt;/a&gt;. Both models also power Meta's Muse agent. So the best version of Meta's model lives inside Meta's own coding product.&lt;/p&gt;

&lt;p&gt;Both models &lt;a href="https://propakistani.pk/2026/10/13/meta-enters-ai-frontier-with-new-wonder-models/amp/" rel="noopener noreferrer"&gt;support a 1 million token context window and accept text, images, video, and audio&lt;/a&gt;. Meta stressed a feature it calls active memory, the ability to keep and reuse what a user shares over time.&lt;/p&gt;

&lt;p&gt;On benchmarks, treat the numbers as vendor-reported. &lt;a href="https://techcrunch.com/2026/10/12/meta-releases-its-first-frontier-model-muse-wonder" rel="noopener noreferrer"&gt;Meta's model card shows Wonder and Wonder Full scoring comparably to Claude Fable 5.1 and GPT-6 Astra&lt;/a&gt;. Wait for independent runs before you rank it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Meta has moved from open weights to a paid frontier API. That is a strategy change, not just a model release. If your team planned around Meta as the open-weight option, the plan needs a second look. And the split between an API checkpoint and a subscriber-only checkpoint is a pattern to watch. When a lab keeps its best model inside its own app, API builders get the second-best version.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistral Large 4 Preview
&lt;/h3&gt;

&lt;p&gt;Mistral &lt;a href="https://letsdatascience.com/news/mistral-debuts-large-4-open-weight-model-preview-cbf9e0b5" rel="noopener noreferrer"&gt;opened a public preview of Mistral Large 4 on October 6&lt;/a&gt;. The preview runs on Mistral Studio and the Mistral API. Mistral says the open weights will follow by the end of October.&lt;/p&gt;

&lt;p&gt;Large 4 is a mixture-of-experts model with &lt;a href="https://www.gradually.ai/en/ai-models/mistral-large-4/" rel="noopener noreferrer"&gt;1.05 trillion total parameters&lt;/a&gt;. Mistral's launch post lists 49 billion active parameters, while its model page lists 52 billion. It takes text and image input. Mistral trained it from scratch on 3,800 Grace Blackwell GPUs in its own European data centers.&lt;/p&gt;

&lt;p&gt;The context window depends on where you look. Mistral advertises 1 million tokens. &lt;a href="https://www.gradually.ai/en/ai-models/mistral-large-4/" rel="noopener noreferrer"&gt;OpenRouter documents 524,288 tokens&lt;/a&gt;. Check the limit on the endpoint you plan to use.&lt;/p&gt;

&lt;p&gt;Mistral's coding numbers are vendor-reported. It cites 61.7% on DeepSWE v1.1. In a &lt;a href="https://www.online-tech-tips.com/?p=111042" rel="noopener noreferrer"&gt;blind coding-quality evaluation run by Mistral with Surge AI annotators, the preview scored 3.74 out of 5&lt;/a&gt;. That placed it second of five, behind Claude Opus 5 at 4.22 and ahead of Kimi K3 at 3.59.&lt;/p&gt;

&lt;p&gt;Independent testing gives a more modest picture. Vals.ai &lt;a href="https://vals.ai/models/mistralai_mistral-large-4" rel="noopener noreferrer"&gt;ranks Mistral Large 4 at #32 of 44 models on its Vals Index with 48.05%&lt;/a&gt;. Its best showing was #6 of 75 on Harvey's Legal Agent Benchmark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; The value of Large 4 is not the leaderboard. It is ownership. If Mistral ships the weights on schedule, teams get a trillion-parameter multimodal model they can run in their own data centers. That matters for regulated industries and for any team with data sovereignty rules. Plan the hardware budget now, since a model this size needs serious memory to serve.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI: GPT-6 Reaches Every ChatGPT User
&lt;/h3&gt;

&lt;p&gt;OpenAI &lt;a href="https://openai.com/index/gpt-6-for-everyone/" rel="noopener noreferrer"&gt;began rolling out GPT-6 with Intelligent UI across ChatGPT on October 7&lt;/a&gt;. Plus, Pro, Business, and Enterprise users got it first. Free and Go users started getting it on October 8.&lt;/p&gt;

&lt;p&gt;The model behind it depends on your plan. &lt;a href="https://openai.com/index/gpt-6-for-everyone/" rel="noopener noreferrer"&gt;Paid tiers run on GPT-6 Sol, and Free and Go tiers run on GPT-6 Luna&lt;/a&gt;. OpenAI says the release reaches more than 1.2 billion weekly ChatGPT users.&lt;/p&gt;

&lt;p&gt;Intelligent UI is the real change. GPT-6 can now answer with graphics, buttons, forms, charts, and small interactive tools inside the chat. A question about splitting a bill can return a working calculator. OpenAI also lets GPT-6 start answering while it keeps thinking. For web search questions, &lt;a href="https://yourstory.com/ai-story/gpt-6-intelligent-ui-chatgpt-answers" rel="noopener noreferrer"&gt;GPT-6 Instant starts answering 44% faster on average than GPT-5.6 Instant&lt;/a&gt;, according to OpenAI.&lt;/p&gt;

&lt;p&gt;There are limits. &lt;a href="https://blog.memoryplugin.com/chatgpt-new-features-october-2026/" rel="noopener noreferrer"&gt;Intelligent UI does not work on the Pro reasoning option, which still runs Astra&lt;/a&gt;. OpenAI's safety card also notes that Codex and ChatGPT Work keep the September versions of the models.&lt;/p&gt;

&lt;p&gt;For API users, the bigger model news came the week before. OpenAI &lt;a href="https://www.unite.ai/openai-unveils-gpt-6.1-sol-at-devday-with-new-codex-and-chatgpt-tools/" rel="noopener noreferrer"&gt;introduced GPT-6.1 Sol at DevDay on September 29&lt;/a&gt; as &lt;code&gt;gpt-6.1-sol&lt;/code&gt;, priced at $2 per million input tokens and $10 per million output tokens. OpenAI reports that it matches GPT-6 Astra on DeepSWE v1.1 at roughly one-fifth the cost. This week it became the default in Codex CLI, which we cover in the tooling section.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Generated interfaces are now a mainstream answer format. That raises the bar for every data product. Users will expect a chart or a filter control when they ask a question about numbers, not a paragraph. It also raises a trust question. A generated chart looks authoritative even when the data behind it is wrong. Teams that serve data to AI assistants need clean, governed sources more than ever.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google: Gemini App Access Shifts
&lt;/h3&gt;

&lt;p&gt;Alongside Argon, Google also changed who gets which model in the Gemini app. Starting October 9, &lt;a href="https://letsdatascience.com/news/google-limits-gemini-model-access-by-subscription-24b0d7ca" rel="noopener noreferrer"&gt;Gemini app users without a subscription get Flash-Lite, not Flash or Gemini Pro&lt;/a&gt;. Google AI Plus subscribers keep Flash but lose Gemini Pro on dates sent by email. Pro and Ultra subscribers keep all three.&lt;/p&gt;

&lt;p&gt;This is the other side of the price war. Labs cut API prices for developers and tighten free consumer access at the same time. Argon itself is limited to Pro and Ultra subscribers in the Gemini app. Serving frontier models to hundreds of millions of free users costs real money.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Releases
&lt;/h3&gt;

&lt;p&gt;Release trackers logged several smaller models this week. &lt;a href="https://llmgateway.io/timeline" rel="noopener noreferrer"&gt;LLM Gateway lists Reka Edge 2603 on October 9, GLM 5.3 Fast from Z.AI on October 7, and Microsoft-Decision-1 on October 9&lt;/a&gt;. We have not confirmed specs for these against their labs' own announcements, so treat them as leads for your own testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Quick Reference
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff5f2mj68ixxl3trjmfip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff5f2mj68ixxl3trjmfip.png" alt="Model Quick Reference" width="559" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All benchmark figures above from Google, Anthropic, Meta, Mistral, and OpenAI are vendor-reported unless the text names an independent source such as Artificial Analysis or Vals.ai.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Pattern in Models
&lt;/h3&gt;

&lt;p&gt;Three trends stand out this week. First, prices keep falling at both ends. Haiku 5.5 resets the small-model floor, and Argon launches at a mid-tier price for a frontier model, at least until November 30. One million token windows are now standard across price levels, and Argon pushes output to 1 million tokens too. Second, labs are splitting releases into API versions and app-only versions. Meta's Wonder Full, OpenAI's ChatGPT-only Intelligent UI, and Argon's Antigravity experience all keep the best experience inside the lab's own product. Security-sensitive models now launch to defenders first, as Argon did through Fairwind. Third, cost per task matters more than cost per token. Adaptive thinking means two models with the same token price can differ by three times in what a real job costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling: Coding Agents Compete on Control, Not Just Smarts
&lt;/h2&gt;

&lt;p&gt;The coding agent race shifted this week. The new features were not about writing better code. They were about controlling agents: which model each one runs, what files and networks it can touch, and how many can work at once without stepping on each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code 2.1.296
&lt;/h3&gt;

&lt;p&gt;Anthropic shipped &lt;a href="https://tech-insider.org/codex-cli-0-162-vs-claude-code-2-1-296-2026/" rel="noopener noreferrer"&gt;Claude Code 2.1.296 on October 9&lt;/a&gt;. The headline feature is workflow-level model pinning. A new environment variable, &lt;code&gt;CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL&lt;/code&gt;, forces every subagent in a multi-step workflow to run on one chosen model. Before this, each subagent picked its own default.&lt;/p&gt;

&lt;p&gt;That sounds small, but it solves a real cost problem. In a long workflow, one subagent quietly running on a premium model can dominate the bill. Pinning gives teams one switch to control spend and keep behavior consistent across runs.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://releasebot.io/updates/anthropic/claude-code" rel="noopener noreferrer"&gt;release notes also add subagent auto-compaction and larger Read support&lt;/a&gt;. Subagents can now compact their own context instead of growing until they hit a limit. Admins got a new &lt;code&gt;code&lt;/code&gt; key in the Claude apps gateway's managed policies, which applies the same settings as the CLI inside Claude Desktop's Code tab. The earlier 2.1.293 release made &lt;a href="https://releasebot.io/updates/anthropic/claude-code" rel="noopener noreferrer"&gt;Claude Haiku 5.5 the default Haiku model&lt;/a&gt; in Claude Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Codex CLI 0.162
&lt;/h3&gt;

&lt;p&gt;OpenAI answered within days. &lt;a href="https://tech-insider.org/codex-cli-0-162-vs-claude-code-2-1-296-2026/" rel="noopener noreferrer"&gt;Codex CLI 0.162.0 added managed Git worktree tools and pinned tasks&lt;/a&gt; in its Command Center. The release before it, 0.161.0, &lt;a href="https://tech-insider.org/github-copilot-cli-computer-use-preview-2026/" rel="noopener noreferrer"&gt;made GPT-6.1 Sol the default model and added terminal MCP sign-in&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Worktrees are the quiet standard of 2026. Each agent gets its own Git worktree, so parallel agents edit separate copies of the repository and never collide. Managed worktrees turn that from a manual setup into a built-in feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot
&lt;/h3&gt;

&lt;p&gt;GitHub's &lt;a href="https://github.blog/changelog/2026-10-09-github-copilot-weekly-releases-october-5/" rel="noopener noreferrer"&gt;weekly Copilot release notes for October 9&lt;/a&gt; carried the most important security change of the week. Local sandboxing is now generally available in Copilot CLI, the Copilot app, and VS Code sessions that use Agent Host. It limits what agents can reach on your machine: files, networks, and credentials. GitHub includes it with Copilot at no extra cost.&lt;/p&gt;

&lt;p&gt;The same release made Claude Haiku 5.5 available to Copilot Pro, Pro+, Max, Business, and Enterprise users. The Copilot app now lets you use one GitHub account for your Copilot license and a different one for your repositories. That fixes a common problem for consultants and anyone with a personal and a work account.&lt;/p&gt;

&lt;p&gt;VS Code 1.141 added an Agents window that shows agent sessions side by side in a grid. You can compare results from several agents or follow several tasks at once. A new "Open worktree cleanup" command in chat shows how much disk space inactive session worktrees use and lets you delete them. Anyone who has run a dozen parallel agents knows how fast those copies fill a drive.&lt;/p&gt;

&lt;p&gt;GitHub also put &lt;a href="https://tech-insider.org/github-copilot-cli-computer-use-preview-2026/" rel="noopener noreferrer"&gt;computer use into public preview for Copilot CLI and the Copilot app&lt;/a&gt;. The agent can now operate desktop applications, not just the terminal and the editor. As of this week, Codex CLI and Claude Code had not shipped an equivalent public feature.&lt;/p&gt;

&lt;p&gt;GitHub also cleaned house before these launches. On October 2, it &lt;a href="https://tech-insider.org/github-copilot-cli-computer-use-preview-2026/" rel="noopener noreferrer"&gt;deprecated older models across Copilot Chat, inline edits, ask mode, agent mode, and code completions&lt;/a&gt;. If your team pins specific models in Copilot settings or scripts, check that those models still exist. A deprecated model ID fails quietly in some setups and loudly in others.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor
&lt;/h3&gt;

&lt;p&gt;Cursor kept pace on mobile. Its &lt;a href="https://dev.to/gabrielanhaia/you-already-pay-for-claude-code-and-codex-do-you-still-need-cursor-kpk"&gt;iOS app now has Remote Control for local agents&lt;/a&gt;, per its October 6 changelog. You can start and steer an agent running on your desktop from your phone. Its &lt;code&gt;/best-of-n&lt;/code&gt; command runs several candidate solutions in separate worktrees so you can pick the best one.&lt;/p&gt;

&lt;p&gt;The same article makes a useful observation. By October 2026, nearly every coding tool runs several agents at once, each in its own Git worktree. Cursor, the Copilot app, Claude Code desktop, Codex, Zed, and Warp all do it. Parallel agents are no longer a differentiator. They are table stakes.&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT Moves From GPTs to Plugins
&lt;/h3&gt;

&lt;p&gt;OpenAI plans to &lt;a href="https://blog.memoryplugin.com/chatgpt-new-features-october-2026/" rel="noopener noreferrer"&gt;retire custom GPTs across ChatGPT plans and provide a migration path to plugins&lt;/a&gt;. Only Enterprise has firm dates so far. No new GPTs can be created after October 26, and retirement follows on December 11. If your organization built internal GPTs, start the migration plan now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Source Projects Set AI Rules
&lt;/h3&gt;

&lt;p&gt;The tooling story is not only about vendors. Open source projects are writing rules for how AI tools fit into their work. This week Andy Grove proposed &lt;a href="https://lists.apache.org/thread/nyrn4t3k0j6fx4pdst9m5oq81grnbwhn" rel="noopener noreferrer"&gt;updated AI guidance for Apache DataFusion Comet contributors&lt;/a&gt;. Automated reviews are welcome. But every pull request approval must come from a human, with or without AI help.&lt;/p&gt;

&lt;p&gt;On the Apache Polaris list, contributors &lt;a href="https://lists.apache.org/thread/jtj2d4h35gf5hx440y1y0xokn2v09qqp" rel="noopener noreferrer"&gt;debated using AI to write release notes&lt;/a&gt; instead of maintaining a changelog by hand. They chose to tighten the human guidance first and keep AI summaries as a later option. The theme is the same in both projects. AI can do the work, but a named person signs off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Three practical moves follow from this week. Turn on sandboxing for any agent that runs on a developer laptop, now that GitHub ships it free. Pin subagent models in long workflows so one step does not quietly drive up cost. And write a short AI policy for your repositories. The Comet rule, human approval on every merge, is a good starting point that any team can adopt today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standards: MCP Grows Up While Agent Identity Stays Split
&lt;/h2&gt;

&lt;h3&gt;
  
  
  MCP After the Stateless Revision
&lt;/h3&gt;

&lt;p&gt;The Model Context Protocol is in its first full quarter on the stateless specification. The &lt;a href="https://you.com/resources/mcp-web-search" rel="noopener noreferrer"&gt;2026-07-28 revision removed the initialize handshake and session tracking&lt;/a&gt;. Each request now declares its protocol version in metadata and in an &lt;code&gt;MCP-Protocol-Version&lt;/code&gt; HTTP header. Any server instance behind a plain load balancer can answer any request.&lt;/p&gt;

&lt;p&gt;That change is now showing up in production behavior. The &lt;a href="https://events.linuxfoundation.org/mcp-dev-summit-toronto/" rel="noopener noreferrer"&gt;MCP Dev Summit in Toronto on October 5 and 6&lt;/a&gt; focused on the work of running MCP in regulated environments. The agenda covered identity, authorization, audit, gateways, registries, evaluation, and reliability. One preview of the event reported &lt;a href="https://forkast.news/mcp-dev-summit-toronto-opens-today-the-protocol-stack-seeks-its-missing-coordination-layer/" rel="noopener noreferrer"&gt;70 speakers across six tracks and more than fifty sessions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;MCP is now hosted by the Linux Foundation's Agentic AI Foundation and &lt;a href="https://www.digidop.com/blog/mcp-ai-revolution" rel="noopener noreferrer"&gt;supported by OpenAI, Google, and Microsoft&lt;/a&gt;. The question is no longer whether MCP wins. The question is how teams secure and govern it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security Products Arrive
&lt;/h3&gt;

&lt;p&gt;The security market noticed. On October 14, &lt;a href="https://manilatimes.net/2026/10/14/tmt-newswire/globenewswire/radware-introduces-model-context-protocol-mcp-server-protection-to-help-secure-the-integration-layer-of-agentic-ai/2445345" rel="noopener noreferrer"&gt;Radware announced MCP Server Protection&lt;/a&gt;, a product built to defend MCP servers against protocol abuse, authentication attacks, tool enumeration, tool flooding, and denial of service. The release cites a Stacklok survey in which nearly half of software companies reported using MCP in production, with 19% reporting broad production use.&lt;/p&gt;

&lt;p&gt;A dedicated security product is a maturity signal. Web APIs got API gateways and web application firewalls once they carried real business traffic. MCP is reaching that stage now.&lt;/p&gt;

&lt;p&gt;Hiring data tells the same story. API Evangelist counted job postings and found &lt;a href="https://apievangelist.com/2026/10/14/one-hundred-two-companies-hiring-for-mcp-and-the-enterprises-are-ahead" rel="noopener noreferrer"&gt;102 companies naming the Model Context Protocol, against 99 naming OpenAPI&lt;/a&gt;. The author is careful to say this measures hiring intent, not production use. Still, a protocol less than two years old now appears in as many job posts as the API description standard that has defined web APIs for a decade.&lt;/p&gt;

&lt;h3&gt;
  
  
  A2A and the Agent Stack
&lt;/h3&gt;

&lt;p&gt;MCP connects agents to tools. Agent2Agent (A2A) connects agents to each other. Google &lt;a href="https://enterprisedna.co/resources/news/google-a2a-aaif-agent-protocol-open-standard-august-2026/" rel="noopener noreferrer"&gt;transferred A2A to the Agentic AI Foundation on August 20&lt;/a&gt;, placing it beside MCP under one neutral home. The foundation has grown to more than 250 member organizations.&lt;/p&gt;

&lt;p&gt;The next big gathering is close. &lt;a href="https://aaif.io/press/agentic-ai-foundation-announces-global-2026-events-program-anchored-by-agntcon-mcpcon-north-america-and-europe/" rel="noopener noreferrer"&gt;AGNTCon + MCPCon North America runs October 22 and 23 in San Jose&lt;/a&gt;. It is the foundation's flagship event, and specification announcements often cluster around it. Expect news on MCP, A2A, goose, and AGENTS.md there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Identity Remains Unsettled
&lt;/h3&gt;

&lt;p&gt;One gap stands out. There is still no agreed standard for agent identity and authorization. A recent analysis found that &lt;a href="https://forkast.news/the-ietf-published-a-draft-for-agent-identity-the-market-already-shipped/" rel="noopener noreferrer"&gt;the IETF has no adopted working group for agent identity&lt;/a&gt;, only a crowd of competing individual drafts. One of those drafts, on agent-native OAuth challenges, expired on October 5.&lt;/p&gt;

&lt;p&gt;Drafts keep coming. The &lt;a href="https://www.ietf.org/archive/id/draft-fane-opena2a-aap-02.html" rel="noopener noreferrer"&gt;OpenA2A Agent Authorization Protocol draft&lt;/a&gt; defines agent identity tokens, scoped capability grants, cross-agent delegation, and revocation. It argues that OAuth 2.0, SAML, and OpenID Connect were not designed for agents. Other drafts make similar arguments with different designs. Until one wins, every vendor ships its own approach.&lt;/p&gt;

&lt;h3&gt;
  
  
  Generated Interfaces Need a Standard Too
&lt;/h3&gt;

&lt;p&gt;OpenAI's Intelligent UI raises a standards question. MCP already has an answer in its ecosystem. MCP Apps is an official extension that &lt;a href="https://en.wikipedia.org/wiki/Model_Context_Protocol" rel="noopener noreferrer"&gt;standardizes how MCP servers deliver interactive interfaces such as dashboards, forms, and charts to host applications&lt;/a&gt;. Intelligent UI is a model-generated interface inside one product. MCP Apps is a server-delivered interface that works across hosts. Both will matter. Teams building data tools should know the difference before they pick a path.&lt;/p&gt;

&lt;h3&gt;
  
  
  Standards at the Data Layer
&lt;/h3&gt;

&lt;p&gt;Some of the most useful standards work this week happened in the data layer, where agents get their facts. Apache Ossie, the open semantic interchange specification, &lt;a href="https://lists.apache.org/thread/dpjz5jg84rsbyjv44rp6ylxo8khfzz9w" rel="noopener noreferrer"&gt;debated whether to ship an MCP server and where it belongs&lt;/a&gt;. The emerging answer is to keep a small shared contract in the spec, a declarative query shape plus standard error codes, and let engines and catalogs run the servers. One contributor already built a ClickHouse executor against that contract and reported which error codes it supports.&lt;/p&gt;

&lt;p&gt;Apache Iceberg passed a vote to &lt;a href="https://lists.apache.org/thread/pllz983cvffryzcwskglsr0cyo7p0gxx" rel="noopener noreferrer"&gt;recommend a standard User-Agent format for REST catalog clients&lt;/a&gt;, with 19 votes in favor and none against. Iceberg contributors also agreed to &lt;a href="https://lists.apache.org/thread/ws89d7doddgqc2j8fc2xt84bchr374t2" rel="noopener noreferrer"&gt;add a &lt;code&gt;none&lt;/code&gt; value to the access delegation header&lt;/a&gt;, so a client can say it brings its own storage credentials. These are small rules. They are exactly the kind of rules agents need, because an agent cannot ask a human which credential path a catalog expects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Treat MCP like any production API. Put it behind a gateway, log every tool call, and scope credentials tightly. Do not wait for an agent identity standard before you build controls. Use short-lived credentials and per-agent scopes with the auth tools you already have. And if your agents query business data, give them a semantic layer and a catalog with clear contracts, not raw tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure: The Rack Becomes the Product
&lt;/h2&gt;

&lt;p&gt;The OCP Global Summit ran October 12 to 15 in San Jose. It is where hyperscalers and chipmakers publish the hardware designs that data centers build from. This year the message was clear. The unit of AI compute is no longer the chip. It is the rack, and everyone wants their rack design to become the standard.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA Opens Vera Rubin
&lt;/h3&gt;

&lt;p&gt;NVIDIA &lt;a href="https://www.storagenewsletter.com/2026/10/14/ocp-global-summit-2026-amid-ecosystem-adoption-nvidia-opens-vera-rubin-architecture-to-help-scale-ai-factories-worldwide/" rel="noopener noreferrer"&gt;contributed its Vera Rubin rack and compute tray designs to OCP&lt;/a&gt; through its MGX architecture. That lets system builders such as Foxconn, Quanta, Wiwynn, and Supermicro build compatible racks faster.&lt;/p&gt;

&lt;p&gt;The new &lt;a href="https://convergedigest.com/nvidia-ocp-2026-vera-rubin-mgx-spectrum6-usfp/" rel="noopener noreferrer"&gt;MGX 1.2 spec supports racks up to 250 kW&lt;/a&gt;. It adds native 19-inch equipment support, configurable I/O bays, and fanless liquid-cooled compute trays. NVIDIA also released four open source components for its DSX AI Factory software for configuration, cluster readiness, rack management, and cluster provisioning.&lt;/p&gt;

&lt;p&gt;NVIDIA joined AMD, Google, Meta, and Microsoft to publish the Open Data Center Specification v0.7 and an OCP Grid Resilience Specification. With Cisco, it is developing the Ultra-Dense Small Form Factor Pluggable optical module, which &lt;a href="https://finance.biggo.com/news/70e70217-1185-4c19-a230-9abbc3e68b5f" rel="noopener noreferrer"&gt;targets four times the bandwidth density in a similar footprint&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For context, each Rubin GPU carries &lt;a href="https://hashrateindex.com/blog/nvidia-vera-rubin-nvl72-specs-breakdown/" rel="noopener noreferrer"&gt;288 GB of HBM4 at 22 TB/s of bandwidth&lt;/a&gt;, and a Vera Rubin NVL72 rack holds 72 GPUs and 36 Vera CPUs. A 250 kW rack is roughly the power draw of a small office building, packed into one cabinet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Microsoft Maia 300
&lt;/h3&gt;

&lt;p&gt;Microsoft &lt;a href="https://finance.yahoo.com/technology/article/microsoft-reveals-maia-300-ai-chip-as-it-works-to-reduce-dependence-on-nvidia-amd-130000212.html" rel="noopener noreferrer"&gt;unveiled its Azure Maia 300 AI chip at OCP on October 12&lt;/a&gt;. Microsoft says it delivers 40% more tokens per megawatt than leading GPU-based systems. A 96-chip rack offers seven times the rack-scale token throughput of Maia 200.&lt;/p&gt;

&lt;p&gt;Note the metric. Microsoft did not lead with FLOPS. It led with tokens per megawatt. Power, not chips, is now the binding limit for many data centers, so the useful measure is how much work each watt buys. Maia 200 already runs Microsoft 365 Copilot and OpenAI models in production, so Maia 300 has a real workload waiting.&lt;/p&gt;

&lt;h3&gt;
  
  
  AMD Helion and the CPU Comeback
&lt;/h3&gt;

&lt;p&gt;AMD &lt;a href="https://thefpsreview.com/2026/10/14/amds-helion-rack-packs-32768-zen-6-cores-and-lisa-su-shows-off-the-first-epyc-with-lpddr-memory" rel="noopener noreferrer"&gt;introduced Helion on October 12&lt;/a&gt;, an open rack blueprint built on an OCP spec design and aimed at AI agent workloads. One example configuration is a CPU-only rack with up to 32,768 Zen 6 cores. AMD plans to contribute the spec to OCP, and partner configurations from Cisco, Dell, Hon Hai, and HPE are slated for November 2026.&lt;/p&gt;

&lt;p&gt;Why a CPU rack for AI? Agents do a lot of work that is not matrix math. They call tools, run code, parse documents, query databases, and wait on network calls. That work runs on CPUs. As agent systems grow, CPU capacity becomes as important as GPU capacity.&lt;/p&gt;

&lt;p&gt;Lisa Su also showed a 6th Gen EPYC chip codenamed Verano, which AMD describes as the first EPYC CPU with an LPDDR memory interface. It arrives in 2027. LPDDR trades some serviceability and maximum capacity for better bandwidth per watt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Intel Bets on LPDDR5X Instead of HBM
&lt;/h3&gt;

&lt;p&gt;Intel &lt;a href="https://fourweekmba.com/ai-intel-details-crescent-island-gpu-and-new-xeon-rack-designs/" rel="noopener noreferrer"&gt;detailed its GPU D-series, formerly code-named Crescent Island&lt;/a&gt;. It pairs up to 480 GB of LPDDR5X memory with 1.5 TB/s of bandwidth and 1.3 petaflops of FP8 compute in a 350-watt envelope. Intel says one card supports models with up to 300 billion parameters. Customer sampling is underway, with no price or ship date announced.&lt;/p&gt;

&lt;p&gt;The memory choice is the story. Intel skipped HBM entirely. LPDDR5X has far less bandwidth than HBM4, but it costs less, uses less power, and is not sold out. For inference on large models, capacity often matters more than peak bandwidth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Marvell and CXL Memory
&lt;/h3&gt;

&lt;p&gt;Marvell &lt;a href="https://www.marvell.com/company/newsroom/marvell-open-ai-infrastructure-ocp-global-summit-2026.html" rel="noopener noreferrer"&gt;showed its Structera CXL memory expansion line, Teralynx T100 102.4T switch, and 1.6T optics&lt;/a&gt; at OCP. Coverage of the summit reported that &lt;a href="https://fourweekmba.com/ai-daily-roundup-12-oct-2026-ai-chips-racks-large-loads/" rel="noopener noreferrer"&gt;Marvell's new CXL chip supports up to 9 TB of memory&lt;/a&gt;. CXL lets servers attach large pools of memory over a standard interconnect, another way around the HBM shortage.&lt;/p&gt;

&lt;h3&gt;
  
  
  The HBM Squeeze
&lt;/h3&gt;

&lt;p&gt;All of these memory choices trace back to one shortage. HBM4 contract prices &lt;a href="https://tech-insider.org/hbm4-memory-shortage-amd-samsung-sk-hynix-price-spike-2026/" rel="noopener noreferrer"&gt;jumped 117% week over week in early October&lt;/a&gt;, according to the Korea Economic Daily. Mass production only started ramping in the second quarter of 2026, just as NVIDIA's Vera Rubin and AMD's Instinct MI455 began drawing on the same suppliers.&lt;/p&gt;

&lt;p&gt;AMD moved to lock in supply. After Lisa Su met Samsung executives in Seoul on October 7, &lt;a href="https://tech-insider.org/hbm4-memory-shortage-amd-samsung-sk-hynix-price-spike-2026/" rel="noopener noreferrer"&gt;AMD and Samsung signed a three-year memorandum covering HBM4, advanced DDR5, joint memory development, advanced packaging, and possible future foundry work&lt;/a&gt;. AMD's MI455 ships with 432 GB of HBM4 on board.&lt;/p&gt;

&lt;p&gt;The shortage reaches beyond data centers. A roundup of October 12 news noted that &lt;a href="https://fourweekmba.com/ai-daily-roundup-12-oct-2026-ai-chips-racks-large-loads/" rel="noopener noreferrer"&gt;Counterpoint estimated smartphone shipments fell 20% in Q3 as memory shortages constrained supply&lt;/a&gt;. The same day, parts of FERC's order on large loads such as data centers took effect, including a large load definition and registry.&lt;/p&gt;

&lt;h3&gt;
  
  
  Formats Are Infrastructure Too
&lt;/h3&gt;

&lt;p&gt;Hardware is only half of the cost story. The other half is how data is stored and moved. This week the Apache Parquet community &lt;a href="https://lists.apache.org/thread/m8d0520g7df8686p6l1nbst46hn29bw2" rel="noopener noreferrer"&gt;merged the C++ implementation of ALP encoding&lt;/a&gt; for floating-point data. Floating-point columns are everywhere in AI: embeddings, model features, sensor readings. Better compression on those columns means less storage, less I/O, and less memory per query.&lt;/p&gt;

&lt;p&gt;Parquet contributors also &lt;a href="https://lists.apache.org/thread/5vj5ttfjrrwhjmq2y5lpd5w048qw5yv9" rel="noopener noreferrer"&gt;debated a native vector type&lt;/a&gt;. One side wants a simple fixed-length VECTOR type now. The other side argues the real gains come from quantized vectors, where storage and speed improve by orders of magnitude. Apache Iceberg is &lt;a href="https://lists.apache.org/thread/49bm2d8szbzkvtdog38s1o6zb04cj67o" rel="noopener noreferrer"&gt;designing its own vector type on top of the Parquet work&lt;/a&gt;. And Apache Arrow &lt;a href="https://lists.apache.org/thread/sltmotxsw3gq5p7jqvm5bcvrynsflvqg" rel="noopener noreferrer"&gt;shipped release 26.0.0&lt;/a&gt;, the in-memory format that moves data between engines without conversion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it means for you.&lt;/strong&gt; Memory is the constraint to plan around for the next year. If you buy or rent GPU capacity, expect HBM-heavy instances to stay scarce and pricey. Look at LPDDR and CXL-based options for inference workloads that need capacity more than bandwidth. And do not overlook the cheapest fix. Compressing and organizing your data well cuts memory and I/O on every query, no new hardware required.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Layer: Where Agents Get Their Facts
&lt;/h2&gt;

&lt;p&gt;Every story this week ends at the same place. Cheaper models, generated interfaces, and agent fleets all need trustworthy data to work with.&lt;/p&gt;

&lt;p&gt;Look at the model news. Haiku 5.5 makes it cheap to run thousands of small agent calls. Each of those calls needs context: a table, a metric, a document. If the context is wrong, a cheap model produces a cheap wrong answer at scale. GPT-6's Intelligent UI turns answers into charts. A chart built on a bad join looks just as convincing as one built on a good one.&lt;/p&gt;

&lt;p&gt;The open lakehouse is building for this. Apache Iceberg voted this week to &lt;a href="https://lists.apache.org/thread/7ctclwomk8yqcclzj82z0htlqk2xjf49" rel="noopener noreferrer"&gt;add a File type to its v4 spec&lt;/a&gt;. A file column stores a URI, offset, size, content type, and checksum for each referenced object. That lets a table track the PDFs, images, and audio that AI pipelines process, with the same metadata and governance Iceberg uses for rows. Iceberg also passed a rule that &lt;a href="https://lists.apache.org/thread/y2fvgh4ojfcss7o76drkgdvdrpb17ccm" rel="noopener noreferrer"&gt;snapshot timestamps must always increase in v4&lt;/a&gt;, which fixes time travel queries when writer clocks drift. When an agent asks what the data looked like last Tuesday, it gets the right answer.&lt;/p&gt;

&lt;p&gt;Apache Polaris, the open catalog for Iceberg, discussed &lt;a href="https://lists.apache.org/thread/ls38t86m9mrpdmcqfmqmjtg768dny8tn" rel="noopener noreferrer"&gt;exposing table labels to engines as a view over its tag system&lt;/a&gt;. Labels carry classifications such as personal data or confidential. Callers only see the labels they already have permission to see. That is the kind of control an agent needs before it reads a table.&lt;/p&gt;

&lt;p&gt;Apache Ossie is the layer that gives agents shared meaning. It defines metrics, dimensions, and relationships once so every tool reads them the same way. This week a contributor &lt;a href="https://lists.apache.org/thread/dnl13g1nlh7l2o6gnw9qjp7wqmrh0tds" rel="noopener noreferrer"&gt;tested a simple sum metric through 14 converters&lt;/a&gt;. Eight preserved the standard SQL expression. Only one preserved Ossie's own portable dialect. That honest measurement is exactly what a young standard needs. It shows where the gaps are before agents depend on them.&lt;/p&gt;

&lt;p&gt;The takeaway is simple. Open formats, open catalogs, and open semantic definitions are not side projects to AI. They are the foundation that makes cheap, fast models safe to use on business data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Week in Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1 million.&lt;/strong&gt; Gemini 4 Argon's output token limit, up from 64,000.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$2 and $10.&lt;/strong&gt; Argon's introductory price per million input and output tokens, rising to $4 and $20 after November 30.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;300 TiB.&lt;/strong&gt; Memory Google says Argon agents freed across its data centers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;90%.&lt;/strong&gt; The cut in Claude Haiku 5.5's base token price compared with Haiku 4.5.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;75%.&lt;/strong&gt; Anthropic's estimate of the average per-task savings, once the new tokenizer's extra tokens are counted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;30%.&lt;/strong&gt; How many more tokens the Claude 4.7 tokenizer produces for the same input than Haiku 4.5's tokenizer did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;440 million vs. 140 million.&lt;/strong&gt; Output tokens Haiku 5.5 and GPT-6 Luna each used to finish the Artificial Analysis test suite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1.2 billion.&lt;/strong&gt; Weekly ChatGPT users OpenAI says now get GPT-6.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;44%.&lt;/strong&gt; How much sooner GPT-6 Instant starts answering web search questions than GPT-5.6 Instant, per OpenAI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1.05 trillion.&lt;/strong&gt; Total parameters in Mistral Large 4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3,800.&lt;/strong&gt; Grace Blackwell GPUs Mistral used to train Large 4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;250 kW.&lt;/strong&gt; Maximum rack power in NVIDIA's MGX 1.2 spec for Vera Rubin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;40%.&lt;/strong&gt; More tokens per megawatt Microsoft claims for Maia 300 over leading GPU systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;32,768.&lt;/strong&gt; Zen 6 cores in AMD's CPU-only Helion rack configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;480 GB.&lt;/strong&gt; LPDDR5X memory on Intel's GPU D-series partner cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;117%.&lt;/strong&gt; The week-over-week jump in HBM4 contract prices reported in early October.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;102 vs. 99.&lt;/strong&gt; Companies naming MCP and OpenAPI in job postings in API Evangelist's count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;19 to 0.&lt;/strong&gt; The Apache Iceberg vote on a standard REST client User-Agent format.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read together, these numbers tell one story. Model prices are falling fast while memory prices are rising fast. The labs can only keep cutting prices if hardware gets more work out of each watt and each gigabyte. That is why this week's OCP news centered on power, memory, and open rack designs rather than raw chip speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practitioner Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Test Gemini 4 Argon now.&lt;/strong&gt; The introductory price runs through November 30. Run it on your own evaluations, but budget at the $4 and $20 rate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-run your model cost math.&lt;/strong&gt; Haiku 5.5 at $0.10 per million input tokens changes which tasks are worth automating. Measure cost per completed task, since thinking tokens can triple the bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the 100,000-token line.&lt;/strong&gt; Haiku 5.5 charges five times more above it. Trim context or split long jobs where you can.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn on agent sandboxing.&lt;/strong&gt; GitHub now includes local sandboxing with Copilot. Use it, or an equivalent, on every developer machine that runs agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin models in long workflows.&lt;/strong&gt; Claude Code's new workflow pinning keeps every subagent on one model. That keeps cost and behavior predictable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan the GPTs migration.&lt;/strong&gt; Enterprise ChatGPT users cannot create new custom GPTs after October 26. Start moving to plugins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure MCP like an API.&lt;/strong&gt; Gateways, logs, and scoped credentials. Dedicated MCP security products are now on the market.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget for memory, not just compute.&lt;/strong&gt; HBM4 prices jumped sharply this month. Consider LPDDR and CXL options for capacity-heavy inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give agents governed data.&lt;/strong&gt; Use an open catalog with clear access rules and a semantic layer with shared metric definitions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;p&gt;AGNTCon + MCPCon North America opens in San Jose on October 22. Expect MCP and A2A specification news, new members for the Agentic AI Foundation, and security tooling launches. Mistral's promised open weights for Large 4 are due by the end of October, so watch for the download and the license terms. Independent benchmarks for Gemini 4 Argon and Meta's Muse Wonder should start appearing, and Google says more Gemini 4 models are coming. The OCP summit wraps up October 15, and more rack and memory details will trickle out after it. On the open data side, the Iceberg File type vote closes, and the Parquet vector type debate continues.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;The AI and data world moves fast, and a weekly newsletter only scratches the surface. I have written more than 50 books on AI-assisted development, agentic AI, the open lakehouse, Apache Iceberg, and data engineering. They cover the tools and ideas in this newsletter in depth, with hands-on examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browse the full catalog at &lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;&lt;/strong&gt; and pick the book that fits what you are building next.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Apache Data Lakehouse Weekly: September 29 to October 7, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 07 Oct 2026 17:43:15 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-september-29-to-october-7-2026-42im</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-september-29-to-october-7-2026-42im</guid>
      <description>&lt;p&gt;Apache Iceberg 1.12.0 shipped this week, and the release set off a chain of follow-up work across the open lakehouse stack. Polaris started its upgrade to the new Iceberg client within a day. Arrow opened its 26.0.0 vote, DataFusion pushed four releases through in one stretch, and Parquet moved closer to a compromise on a numeric vector type. Apache Ossie (incubating) spent the week arguing about how AI agents should query a semantic model, which turned into one of the most useful design debates on any list this fall.&lt;/p&gt;

&lt;p&gt;Underneath the releases sit three threads that run through every project. Contributors keep asking how AI tools fit into the way Apache projects review, test, and credit code. Vector data keeps pulling the file format, the table format, and the semantic layer toward new types and indexes. And several communities are drawing sharper lines between a specification and the code that implements it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Week by the Numbers
&lt;/h2&gt;

&lt;p&gt;The six dev lists carried 403 messages across 102 threads between September 29 and October 7. Iceberg and Polaris tied for the busiest list with 118 messages each. Ossie followed with 88, DataFusion posted 45, Arrow had 19, and Parquet had 15. Message counts undersell Parquet and Arrow this week, since both lists handled format decisions that will shape files for years.&lt;/p&gt;

&lt;p&gt;Release activity stood out. Iceberg Java 1.12.0 and Iceberg Go 0.7.0 both passed their votes. DataFusion Comet 1.1.0, DataFusion Ballista 55.0.0, and DataFusion Python 54.1.0 all passed, and DataFusion 55.2.0 collected enough binding votes by the end of the window. Arrow 26.0.0 RC0 drew five binding approvals before the week closed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Iceberg 1.12.0 ships
&lt;/h3&gt;

&lt;p&gt;Neelesh Salian &lt;a href="https://lists.apache.org/thread/kst8b58yjnvfy353g2ysvb4fkx3xdcr9" rel="noopener noreferrer"&gt;announced Apache Iceberg 1.12.0&lt;/a&gt; on October 1 after the &lt;a href="https://lists.apache.org/thread/ychjvqbmt7ksmczhct3mnw8j3yowwbcr" rel="noopener noreferrer"&gt;RC2 vote passed&lt;/a&gt; with four binding and ten non-binding approvals. Russell Spitzer, Kevin Liu, Szehon Ho, and Amogh Jahagirdar cast the binding votes. Russell thanked Neelesh and called the cycle a slog, and several contributors echoed the thanks. Hongyue Zhang added a hope that the project keeps a steady release cadence from here.&lt;/p&gt;

&lt;p&gt;Neelesh followed the announcement with a &lt;a href="https://lists.apache.org/thread/kst8b58yjnvfy353g2ysvb4fkx3xdcr9" rel="noopener noreferrer"&gt;release summary&lt;/a&gt; that reads like a map of where the format is going. Variant columns gained vectorized Parquet reads for unshredded data in Spark 4.0 and 4.1. Shredding now applies only to single-type fields, and Flink and Kafka Connect can write shredded Variant data. Geometry and geography types read and write in Parquet and Avro, with end-to-end support in Spark 4.1.&lt;/p&gt;

&lt;p&gt;Flink gained a maintenance task that converts equality deletes into deletion vectors, plus SQL support for Iceberg views. Spark 4.1 picked up a Hilbert-curve clustering strategy for &lt;code&gt;rewrite_data_files&lt;/code&gt;. The REST spec now describes read restrictions such as column masking and row filters. The release also lays the first V4 foundations, including a V4 manifest reader and writer, relative paths, and content statistics. Flink 2.2 and 2.3 joined the support matrix, while Spark 3.4 and Flink 2.0 left it. The release carries 777 commits from 142 contributors since 1.11.0.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/2jkbn7pq60fykmxgm07rfxj2nhy4xoow" rel="noopener noreferrer"&gt;RC2 vote thread&lt;/a&gt; showed a new pattern in how people verify releases. Kurtis Wright opened his vote with a disclaimer that an agent skill for validating open source release candidates generated his checks. His report covered signatures, tarball contents, and the LICENSE and NOTICE files inside each of the 12 runtime jars. Kevin Liu ran the release against the PyIceberg CI and also pointed an agent at the repository to scan for correctness issues. The agent flagged a few problems, and Kevin confirmed they predate 1.12, so none blocked the release.&lt;/p&gt;

&lt;p&gt;That detail matters for anyone running Iceberg in production. Human release managers still decide what ships, but the verification depth per voter keeps climbing. A single non-binding voter now checks third-party packages inside every bundled jar, a task few volunteers attempted by hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spec changes and release notes
&lt;/h3&gt;

&lt;p&gt;Péter Váry noticed something odd while reviewing the 1.12.0 notes. The Java release notes listed spec changes, such as the SQL UDF specification and geometry clarifications for V3. Péter &lt;a href="https://lists.apache.org/thread/0r9fhdb1zc74ycz0hx2wyl1xyn48jyxl" rel="noopener noreferrer"&gt;argued that this misleads readers&lt;/a&gt;, since spec changes take effect when a vote passes or a spec version is finalized, not when a Java binary ships. Manu Zhang, Szehon Ho, Kevin Liu, and Hongyue Zhang agreed. Péter opened &lt;a href="https://github.com/apache/iceberg/pull/18349" rel="noopener noreferrer"&gt;PR 18349&lt;/a&gt; to separate the two, and Kevin asked for a matching changelog for the REST catalog spec, which has seen the most change lately.&lt;/p&gt;

&lt;p&gt;Kurtis Wright pushed further and floated a separate iceberg-format repository to hold the specs and drive the website, similar to how Parquet keeps parquet-format apart from its Java code. Danny Jones supported the idea and suggested keeping commit history, as the iceberg-rust DataFusion move did recently. Daniel Weeks pushed back hard. He said the project has iterated on docs and site layouts many times, and that moving the specs adds little value while keeping them next to the reference implementation works fine. For now the practical outcome is a dedicated spec changelog, not a new repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  REST catalog: User-Agent, delegation, and expressions
&lt;/h3&gt;

&lt;p&gt;Rahul Mahadev &lt;a href="https://lists.apache.org/thread/bzs62qqt9k4t9sr76pk0d36l47zwcpyb" rel="noopener noreferrer"&gt;reopened the vote&lt;/a&gt; on a standard User-Agent format for REST clients after taking review feedback from Alex Dutra. The proposal uses the standard HTTP header with product and version tokens, ordered from most specific to least. An example looks like &lt;code&gt;Spark/4.0.0 iceberg-spark/1.9.0 iceberg-java/1.9.0 (scala 2.13.16)&lt;/code&gt;. When a client sends the header, it must include an Iceberg library token such as &lt;code&gt;iceberg-java&lt;/code&gt;, &lt;code&gt;pyiceberg&lt;/code&gt;, &lt;code&gt;iceberg-rust&lt;/code&gt;, or &lt;code&gt;iceberg-go&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The vote spells out what the header is not. Servers must not reject requests for a missing or malformed header, and they must not use it for authentication. It is not a capability negotiation mechanism. Servers can refuse operations from client versions known to be unsafe. The thread collected binding approvals from Daniel Weeks, Russell Spitzer, Sung Yun, Amogh Jahagirdar, Eduard Tudenhöfner, Gang Wu, Zheng Hu, and Ryan Blue. Zheng Hu also noted CVE scanning failures on &lt;a href="https://github.com/apache/iceberg/pull/17727" rel="noopener noreferrer"&gt;PR 17727&lt;/a&gt; that need attention before merge. For catalog operators, this gives a consistent way to see which engines and library versions hit the catalog, which helps with support and with retiring unsafe clients.&lt;/p&gt;

&lt;p&gt;A second REST thread asked what servers should do when they cannot satisfy the &lt;code&gt;X-Iceberg-Access-Delegation&lt;/code&gt; header. Alex Dutra &lt;a href="https://lists.apache.org/thread/l02zjbx3j1pddqhj3wg8gkj10o90l2cp" rel="noopener noreferrer"&gt;proposed a new value&lt;/a&gt; named &lt;code&gt;local&lt;/code&gt;, so a client can say it works with its own credentials. Daniel Weeks preferred &lt;code&gt;none&lt;/code&gt;, which tells the catalog the client does not need credentials from it, so the catalog can skip generating them. The same debate ran on the Polaris list, covered below.&lt;/p&gt;

&lt;p&gt;Revanth Ch raised a migration question about the &lt;a href="https://lists.apache.org/thread/48pqzgp1x095yn7clrpbh1vb56gfbq1t" rel="noopener noreferrer"&gt;new expression JSON forms&lt;/a&gt;. The expressions spec now prefers a form with explicit &lt;code&gt;left&lt;/code&gt; and &lt;code&gt;right&lt;/code&gt; terms, while the Java, Go, and C++ clients still read and write only the older form. Revanth proposed conformance fixtures in the iceberg-verification repository to track the migration. Ryan Blue answered with a simple recommendation: servers should drop residuals entirely, since they cost a lot to compute and clients rarely apply them.&lt;/p&gt;

&lt;h3&gt;
  
  
  V4 design work
&lt;/h3&gt;

&lt;p&gt;The V4 spec work produced three focused threads. Anoop Johnson opened a discussion on &lt;a href="https://lists.apache.org/thread/tv7bvqctdfh5qng1sx5rp8r4r00nsv60" rel="noopener noreferrer"&gt;stats tightness&lt;/a&gt;. Tight bounds let an engine answer some queries from metadata alone, but once a deletion vector attaches to a file, today's rules treat every bound as loose. Anoop wanted a way to keep tightness when a DV is present. Russell Spitzer walked through the cases where per-column tightness helps and concluded that most are narrow or hypothetical. Daniel Weeks, Eduard Tudenhöfner, Hongyue Zhang, and Szehon Ho all backed a single file-wide flag.&lt;/p&gt;

&lt;p&gt;Eduard Tudenhöfner raised a &lt;a href="https://lists.apache.org/thread/8f91nk08cq2pxtsdpf1o34ktthn7jcwk" rel="noopener noreferrer"&gt;rename of &lt;code&gt;avg_value_size_in_bytes&lt;/code&gt; to &lt;code&gt;total_bytes&lt;/code&gt;&lt;/a&gt; in content stats, tracked in &lt;a href="https://github.com/apache/iceberg/pull/18308" rel="noopener noreferrer"&gt;PR 18308&lt;/a&gt;. A total aggregates cleanly across files, and the average still falls out of total bytes divided by value count. The timing hurt, since &lt;code&gt;avgValueSizes()&lt;/code&gt; landed in central Java classes and the REST spec in 1.12.0. Ryan Blue suggested storing &lt;code&gt;totalBytes&lt;/code&gt; and computing &lt;code&gt;avgValueSize&lt;/code&gt; from it in the Java API. Steven Wu agreed and noted that the REST spec does not yet support V4 tables, so a JSON break there is acceptable.&lt;/p&gt;

&lt;p&gt;Gábor Kaszab pointed the list at &lt;a href="https://lists.apache.org/thread/7fp9gcgp7948omd3kk407390o9dnkbxf" rel="noopener noreferrer"&gt;PR 17533 on reusable encryption keys&lt;/a&gt; for statistics files. If the approach holds, the same pattern applies to encrypting the V4 root metadata file. Sandeep Gottimukkala proposed a one-sentence &lt;a href="https://lists.apache.org/thread/c91ph82tnrlhj8qq9lj8n72b0s7qq5r0" rel="noopener noreferrer"&gt;spec clarification on promotable types&lt;/a&gt; in &lt;a href="https://github.com/apache/iceberg/pull/18404" rel="noopener noreferrer"&gt;PR 18404&lt;/a&gt;. Readers must accept any data file column whose type promotes to the field's type, whether or not the field evolved. Sandeep said some systems check for an exact type match and break on valid tables.&lt;/p&gt;

&lt;p&gt;Alexander Loeser and Andrei Tserakhau kept the &lt;a href="https://lists.apache.org/thread/8f89jt50p53xkorh3z39dtz13jchd0gx" rel="noopener noreferrer"&gt;collation discussion&lt;/a&gt; moving. Both prefer storing bounds for multiple collation versions per data file, which helps during ICU upgrades. The open question is layout. Andrei plans to prototype the current &lt;code&gt;content_stats&lt;/code&gt; layout against Russell's idea of derived &lt;code&gt;COLLATE(field, collation, version)&lt;/code&gt; fields and compare on-disk size with one, two, and three live versions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Indexes, vectors, and a new file format
&lt;/h3&gt;

&lt;p&gt;Shawn Chang reopened a settled question about the &lt;a href="https://lists.apache.org/thread/8zq10wdsz5rx8v35zgon24r4gnsjsv9h" rel="noopener noreferrer"&gt;index spec's non-overlapping region files&lt;/a&gt;. He listed the costs: write amplification on hot key ranges and more maintenance work. Péter Váry explained the design goal. The index targets fast, predictable single-key lookups, and non-overlapping regions mean one region-file read once the tracking file sits in cache. Region files stay small, around 4 MB, so writing a consolidated region costs about the same as writing an overlay. Péter later posted the &lt;a href="https://lists.apache.org/thread/tvr8nsrl5srnslsxnk9thgt44m73y2ws" rel="noopener noreferrer"&gt;index sync summary&lt;/a&gt;, confirming non-overlapping regions, total row ordering through sort keys (renamed from cluster keys), and a ready-for-review spec in &lt;a href="https://github.com/apache/iceberg/pull/16961" rel="noopener noreferrer"&gt;PR 16961&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Steven Wu announced that the Thursday biweekly sync &lt;a href="https://lists.apache.org/thread/k3ncg4j27mpfqcm57px8goc0ox8rvdlp" rel="noopener noreferrer"&gt;will cover both File and Vector types&lt;/a&gt; starting October 8. The file type work nears consensus, so most of the time will go to the Vector type design from Yan Yan. That matters because Parquet is debating its own vector type this week, and the two designs need to line up.&lt;/p&gt;

&lt;p&gt;Martin Prammer started a &lt;a href="https://lists.apache.org/thread/pb66o8gk8nqc6yormfld7pkt6rdfkvh7" rel="noopener noreferrer"&gt;mailing-list discussion on adding Vortex&lt;/a&gt; as an Iceberg file format. The draft now opens with an overview of Vortex and its community policies, after questions at the last community sync. Martin asked the list to confirm two things before going further: whether the general rules for adding any file format match expectations, and whether concerns remain about how Vortex meets them. Iceberg has supported Parquet, ORC, and Avro for years, so any new format faces a high bar on governance and long-term stability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clients and catalogs
&lt;/h3&gt;

&lt;p&gt;Matt Topol's &lt;a href="https://lists.apache.org/thread/6sfhg7z7rqt4nxc3m9pgt40354vbgnw1" rel="noopener noreferrer"&gt;Iceberg Go v0.7.0 vote&lt;/a&gt; &lt;a href="https://lists.apache.org/thread/k8lo7j1xfq2kq1f0tblvz8kklc49g6tj" rel="noopener noreferrer"&gt;passed&lt;/a&gt; with four binding approvals from Russell Spitzer, Sung Yun, Fokko Driesprong, and Matt. Xuanwo reported 3,344 passing tests on Go 1.25.9 and one harmless assertion failure on Go 1.27.1. Russell joked that he complained to Matt about a &lt;code&gt;Claude.md&lt;/code&gt; file in the release.&lt;/p&gt;

&lt;p&gt;In Rust, Danny Jones posted a &lt;a href="https://lists.apache.org/thread/pmck5pojp28fcyw0n8x7tdo1kclh9yrg" rel="noopener noreferrer"&gt;plan to drop the dependency TSV files&lt;/a&gt; from iceberg-rust. The files serve no license obligation and go stale between releases. Danny prefers Cargo for consumers and &lt;code&gt;cargo-deny&lt;/code&gt; policies in CI for maintainers. Shawn Chang, Kevin Liu, and Kurtis Wright agreed, and Xuanwo, who added the files, supports removal.&lt;/p&gt;

&lt;p&gt;Andrei Tserakhau revived a debate on &lt;a href="https://lists.apache.org/thread/5cnrhd3kfwzxywkj07kdls8o1twoomoq" rel="noopener noreferrer"&gt;catalog-provided metadata tables&lt;/a&gt;. Java and Spark treat metadata tables as deterministic projections of table metadata, which led to closing a labels metadata-table PR. Andrei argued that PyIceberg, iceberg-rust, and iceberg-go expose &lt;code&gt;inspect&lt;/code&gt; as a library read API, so returning catalog labels as Arrow lets users filter many tables at once for PII, ownership, or cost tags. Manu Zhang objected that the API cannot distinguish a table with no labels from a catalog that does not support labels.&lt;/p&gt;

&lt;p&gt;Javier Sanchez Beltran from Expedia asked why &lt;a href="https://lists.apache.org/thread/r8pbrsvqyyvtko4qw6n14b0gvyqpp1rp" rel="noopener noreferrer"&gt;GlueCatalog writes so little&lt;/a&gt; into the Glue table on commit, compared with the Hive catalog. Shawn Chang said the small footprint is intentional, since Iceberg metadata stays the source of truth and Lake Formation handles authorization. Daniel Weeks named the deeper problem a split brain. Both HMS and Glue mirror some Iceberg metadata but not all of it, and tools that read the mirror instead of the Iceberg metadata get stale or lossy answers. Javier &lt;a href="https://lists.apache.org/thread/y7mong1h19onxlxdrb757drsd69rmt1b" rel="noopener noreferrer"&gt;replied&lt;/a&gt; that his team will change its tooling to read the Iceberg metadata directly. That is the right lesson for any platform team: treat the catalog entry as a pointer, and read the table's own metadata for truth.&lt;/p&gt;

&lt;p&gt;The Kafka Connect runtime drew attention from two directions. Confluent's connector hub &lt;a href="https://lists.apache.org/thread/1sc2o7vz4vqz023l5z6s4164wcolyb5p" rel="noopener noreferrer"&gt;sent a vulnerability notice&lt;/a&gt; warning that the Iceberg connector faces removal unless the project addresses flagged issues. Robin Moffatt bumped his &lt;a href="https://lists.apache.org/thread/tj5w3bp5p6y86j2ynn5s0hctlqp1d138" rel="noopener noreferrer"&gt;discussion on PR 18019&lt;/a&gt;, which fixes the runtime LICENSE and NOTICE files and drops the Hive distribution. Jad Naous from Grepr also submitted a &lt;a href="https://lists.apache.org/thread/5bzhcv52spldl4490qv9s1pmjq1crd0j" rel="noopener noreferrer"&gt;fix for a race condition&lt;/a&gt; in Flink's DynamicIcebergSink through &lt;a href="https://github.com/apache/iceberg/pull/18356" rel="noopener noreferrer"&gt;PR 18356&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Planning 1.13
&lt;/h3&gt;

&lt;p&gt;Anoop Johnson &lt;a href="https://lists.apache.org/thread/mj8czb2ljf8kj1d7ldbfw39sffr9knjc" rel="noopener noreferrer"&gt;opened the 1.13 discussion&lt;/a&gt; and volunteered as release manager. Anurag Mantripragada had already claimed 1.13, so Anoop took 1.14 instead. Anurag proposed early January, given the holiday season, with the V4 spec PR, early V4 work, and Spark 4.2 support on his list. Xin Huang noted that the Spark 4.2 setup PR has merged while publishing stays skipped. Xin's strawman supports existing Iceberg features on Spark 4.2 and treats new Spark features such as the Transactional API as best effort. Daniel Weeks asked the group not to rule out a smaller release before year end, and Kurtis Wright added JDK 25 support to the wish list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community events
&lt;/h3&gt;

&lt;p&gt;Three meetups landed on the calendar. Talat Uyarer &lt;a href="https://lists.apache.org/thread/0r8b7yt84xgmosbzzk9p8c4b3gq93gdb" rel="noopener noreferrer"&gt;opened the CFP&lt;/a&gt; for the Bay Area meetup on November 2 at Google in Sunnyvale, with submissions due October 19. Alex Stephen &lt;a href="https://lists.apache.org/thread/883h6g1291cx53rspfy9p782vt2omc86" rel="noopener noreferrer"&gt;reminded the list&lt;/a&gt; that the Seattle meetup on October 21 still needs talks. Scott Haines &lt;a href="https://lists.apache.org/thread/ov4bk4qg8pfod2s4z035mg3tj3tcv8mn" rel="noopener noreferrer"&gt;announced the October virtual meetup&lt;/a&gt; on October 23, where Liam Earley from Zus Health will cover manifest-level work in iceberg-rust to cut scan latency on TB-scale merge-on-read tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Riding the Iceberg 1.12 upgrade
&lt;/h3&gt;

&lt;p&gt;Alex Dutra moved fast after the Iceberg release. He &lt;a href="https://lists.apache.org/thread/86o65bk2bmk0d89wll8j45cw711lq5gj" rel="noopener noreferrer"&gt;marked the Polaris upgrade to Iceberg 1.12 ready for review&lt;/a&gt; in &lt;a href="https://github.com/apache/polaris/pull/5360" rel="noopener noreferrer"&gt;PR 5360&lt;/a&gt; and addressed the main worry up front. Iceberg 1.12 fixes URL path segment encoding, so the Java client now sends a space as &lt;code&gt;%20&lt;/code&gt; instead of &lt;code&gt;+&lt;/code&gt;. Alex explained that Polaris never used the old decoder on paths, since JAX-RS decodes path parameters per RFC 3986. The upgrade fixes the wrong URLs Polaris used to advertise and needs no migration of persisted namespace encoding. Yufei Gu urged the community to review the PR.&lt;/p&gt;

&lt;p&gt;The same release unblocks older work. Alex &lt;a href="https://lists.apache.org/thread/vk5zj7qtrztl36c9c1qt6d09lryjltdk" rel="noopener noreferrer"&gt;asked whether Polaris should resume remote signing&lt;/a&gt;, which stalled while the spec changed. Iceberg 1.12 adds a &lt;code&gt;remote-signing-config&lt;/code&gt; field to &lt;code&gt;LoadTableResult&lt;/code&gt;, which covers nearly every remaining requirement. One gap remains: refreshing the auth data inside that structure was left out of scope, and Alex plans a separate spec proposal with the Iceberg community.&lt;/p&gt;

&lt;h3&gt;
  
  
  Storage: Cloudflare R2 and FileIO cleanup
&lt;/h3&gt;

&lt;p&gt;The busiest Polaris thread settled how to add &lt;a href="https://lists.apache.org/thread/gmd22d55xs4lbl8yhhy1yz6vv8q8lvbk" rel="noopener noreferrer"&gt;Cloudflare R2 with scoped credential vending&lt;/a&gt;. Yufei Gu worried that a free-form &lt;code&gt;credentialVendingMechanism&lt;/code&gt; string lets a client work against one server and fail against another. Dmitri Bourlatchkov argued that an enum blocks downstream projects from adding custom mechanisms. Jean-Baptiste Onofré pointed out that only catalog administrators touch this Management API field, since Iceberg REST clients just consume vended credentials.&lt;/p&gt;

&lt;p&gt;The community sync produced a compromise. The OpenAPI spec keeps the field as a string, documents the accepted values, and servers validate at runtime. Austen Tomek confirmed the plan for his PRs, starting with &lt;code&gt;STS&lt;/code&gt; and adding R2 in a second PR. Yufei proposed naming the R2 mechanism after how it signs, and Austen picked &lt;code&gt;R2_LOCAL_SIGNING&lt;/code&gt;, since token formats vary by provider. Dmitri and JB agreed.&lt;/p&gt;

&lt;p&gt;Two threads tackled how Polaris builds its own server-side FileIO. Vignesh A. &lt;a href="https://lists.apache.org/thread/49vsx3r803nmf35wsyxl2h3qvxfrrfgs" rel="noopener noreferrer"&gt;proposed dropping catalog &lt;code&gt;table-default.*&lt;/code&gt; properties&lt;/a&gt; from server FileIO construction before a table-metadata cache lands. An earlier fix already stopped using caller-supplied metadata properties, tied to CVE-2026-97395. Dmitri opened a &lt;a href="https://lists.apache.org/thread/636ss6fjsrhn9rzf3jdg0p4loqw3sr1v" rel="noopener noreferrer"&gt;parallel thread&lt;/a&gt; with the same conclusion: server FileIO should not depend on default table properties.&lt;/p&gt;

&lt;p&gt;The cache work also raised a deeper question about &lt;a href="https://lists.apache.org/thread/z9cgfj77s829npm51t0vcc32rclrz9mh" rel="noopener noreferrer"&gt;metadata immutability across storage endpoint changes&lt;/a&gt;. Yufei Gu asked whether changing an S3-compatible endpoint can make the same metadata URI return different content. Dmitri reframed it as a cache correctness issue. Polaris does not control what external stores contain, so it should not assume two endpoints serve identical bytes. JB split the difference: Iceberg treats metadata files as immutable within one storage context, but an &lt;code&gt;s3://&lt;/code&gt; URI is not a content hash. Robert Stupp summarized the two assumptions the cache depends on, and neither follows from the URI alone. For anyone running Polaris across several S3-compatible stores, this thread is worth reading before enabling metadata caching.&lt;/p&gt;

&lt;p&gt;Ashok Borra raised a performance regression from &lt;a href="https://lists.apache.org/thread/ry6qpj49o21qy5qjddrn5rzlczgf7x0g" rel="noopener noreferrer"&gt;validating historical metadata references on every commit&lt;/a&gt;. Since PR 5115, each commit checks the location of every snapshot's manifest list and every statistics file. Ashok proposed limiting the check, and Alex Dutra agreed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistence: DynamoDB and multi-object commits
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/6cg0pny3lxm0k4b1vn7wwgojltcqyyfy" rel="noopener noreferrer"&gt;DynamoDB persistence backend&lt;/a&gt; reached agreement. JB and Robert Stupp first argued that the NoSQL persistence layer fits DynamoDB better than the relational-style &lt;code&gt;AtomicOperationMetaStoreManager&lt;/code&gt;. Yufei Gu and Yuewei Zhou countered that the atomic path adds little complexity, since Polaris correctness already works per entity with version checks. Dennis Huo pushed for an iterative approach that does not block progress. The sync recap from Dmitri set the terms: multiple DynamoDB implementations are acceptable, docs must explain the differences, and new backends start as beta. Yuewei asked for reviews on &lt;a href="https://github.com/apache/polaris/pull/5622" rel="noopener noreferrer"&gt;PR 5622&lt;/a&gt;, the first in a series of small changes.&lt;/p&gt;

&lt;p&gt;That debate fed a broader one on &lt;a href="https://lists.apache.org/thread/qm60lz3xtnv15swwfb3w6xc1stmflsv3" rel="noopener noreferrer"&gt;consistent multi-object changes&lt;/a&gt;. EJ Wang described a race where two requests both check for overlapping table locations, see none, and create conflicting tables. EJ proposed a business-aware manager layer that runs those checks in the same transaction as the write, with database adapters that know nothing about tables or grants. The proof of concept includes adapters for FoundationDB, Spanner, and JDBC, and its concurrency tests ran on FoundationDB and PostgreSQL. JB favored multi-object conditional commits over request-scoped transactions, since they map to both JDBC and NoSQL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics, events, and observability
&lt;/h3&gt;

&lt;p&gt;Polaris is building an observability surface for catalogs. Dmitri proposed &lt;a href="https://lists.apache.org/thread/v0gtbwgpw1q3vf14pw6lcdffng96bcy6" rel="noopener noreferrer"&gt;merging PR 4115&lt;/a&gt; for REST endpoints that expose table metrics and events, and JB confirmed all feedback was addressed. The grant changes moved to &lt;a href="https://lists.apache.org/thread/p0q1gxypc0xvh0x54l16o53sqofzwbbb" rel="noopener noreferrer"&gt;PR 5659&lt;/a&gt;. Yufei argued that a new &lt;code&gt;TABLE_READ_METRICS&lt;/code&gt; privilege should stay separate from &lt;code&gt;TABLE_FULL_METADATA&lt;/code&gt;, since metrics reports include query filters from other users. JB agreed and called metrics closer to an activity log than to table metadata.&lt;/p&gt;

&lt;p&gt;Vignesh A. opened a thread on a &lt;a href="https://lists.apache.org/thread/z79bjmv0nrnft6bln9gk1d3vdxony7rp" rel="noopener noreferrer"&gt;shared event JSON envelope&lt;/a&gt; before merging a webhook listener. The group settled on CloudEvents context attributes at the top level, the Polaris payload inside &lt;code&gt;data&lt;/code&gt;, and Kafka parity in version one. Alex Dutra supported isolating the events SPI in its own module. The goal is one payload shape across Kafka, webhooks, and CloudWatch, so downstream consumers parse events the same way regardless of transport.&lt;/p&gt;

&lt;h3&gt;
  
  
  New catalog features: branches, sharing, and tags
&lt;/h3&gt;

&lt;p&gt;Ankur Kotwal opened a discussion on &lt;a href="https://lists.apache.org/thread/zmvrf05z1m100pko8qc0syj982yrwpzx" rel="noopener noreferrer"&gt;catalog-level branches for atomic multi-table promotion&lt;/a&gt;, tracked in issue 3469. Iceberg already branches single tables. Teams running backfills, migrations, or write-audit-publish across many tables face three problems: N calls to branch N tables, non-atomic promotion, and no cheap way to list which tables carry a branch. Ankur proposes a &lt;code&gt;CATALOG_BRANCH&lt;/code&gt; entity that groups per-table Iceberg branches and promotes them in one transaction through the existing &lt;code&gt;commitTransaction&lt;/code&gt; workspace. Engines need no changes, and version one supports fast-forward promotion only. This is the feature many teams adopt Nessie for today, so it deserves close attention.&lt;/p&gt;

&lt;p&gt;Dennis Huo marked the &lt;a href="https://lists.apache.org/thread/bvxr9lgox5lh8vlgcm3pp2wv7dgt9t2z" rel="noopener noreferrer"&gt;Open Sharing API spec PR&lt;/a&gt; ready for review in &lt;a href="https://github.com/apache/polaris/pull/5446" rel="noopener noreferrer"&gt;PR 5446&lt;/a&gt;. Sharing builds on existing Polaris authorization, with external identity providers as a first-class case. JB asked the group to focus on the API PR first. EJ Wang also pushed updates to the &lt;a href="https://lists.apache.org/thread/7jlq90mf30bdovzswx96goh1c09264lt" rel="noopener noreferrer"&gt;Tag Spec proposal&lt;/a&gt;, including separate endpoints to assign and unassign tags. David Chaava proposed a &lt;a href="https://lists.apache.org/thread/sdznfv1fvoddd6wpj0584l4t130r81rf" rel="noopener noreferrer"&gt;validator SPI for vendor-specific REST federation&lt;/a&gt;, with a BigLake implementation that keeps the admin service provider-neutral.&lt;/p&gt;

&lt;h3&gt;
  
  
  Process: changelogs, AI disclosure, and 1.9.0
&lt;/h3&gt;

&lt;p&gt;Alex Dutra proposed fixing &lt;a href="https://lists.apache.org/thread/jtj2d4h35gf5hx440y1y0xokn2v09qqp" rel="noopener noreferrer"&gt;CHANGELOG.md merge conflicts&lt;/a&gt; with per-PR fragment files. Ayush Saxena brought numbers: 75 of 339 commits on main in 60 days touched the changelog. JB asked whether Polaris needs a changelog at all, and suggested a label plus hand-written notes assembled at release time. Robert Stupp suggested conventional commit messages instead. Dmitri noted that fragment files can be corrected before a release, which commit messages cannot. The thread had not settled by the end of the week.&lt;/p&gt;

&lt;p&gt;Alex also raised &lt;a href="https://lists.apache.org/thread/p8qpsr9ww5t2mkcz0252pbwklh3s5yr8" rel="noopener noreferrer"&gt;AI-generated code disclosure&lt;/a&gt;. Polaris's AGENTS.md tells agents not to include AI tool names in commit messages, while Iceberg encourages disclosure and current ASF guidance recommends it. Travis Bowen supported aligning with the ASF. Dmitri agreed that disclosure helps but objected to &lt;code&gt;Co-authored-by&lt;/code&gt;, since GitHub then lists the tool like a human contributor. He prefers a header such as &lt;code&gt;Generated-by&lt;/code&gt;, which matches ASF language that separates generated material from authored work.&lt;/p&gt;

&lt;p&gt;JB &lt;a href="https://lists.apache.org/thread/vvn28qykkfbvj07dhk5svnld532rjnty" rel="noopener noreferrer"&gt;proposed Polaris 1.9.0&lt;/a&gt; for the end of October to keep a monthly cadence, with the Polaris Directory feature as a beta. Ayush asked to update the DOAP file after each release, since ASF community pages read from it. Dmitri wants R2 support in as beta and flagged a LICENSE and NOTICE issue that an AI review tool found in his environment. He wants it fixed so the team can rely on AI tools for release validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Arrow 26.0.0 heads for release
&lt;/h3&gt;

&lt;p&gt;Raúl Cumplido &lt;a href="https://lists.apache.org/thread/5yc9gc6ms4g28dgghk0vhr9jhflzv81k" rel="noopener noreferrer"&gt;called the vote on Arrow 26.0.0 RC0&lt;/a&gt;, a release with 337 resolved GitHub issues. Ruoxi Sun, Sutou Kouhei, Gang Wu, Raúl, and Adam Reeve cast binding approvals, and Xuanwo verified a byte-for-byte reproducible source tarball. Raúl flagged two non-blocking verification problems. The Windows source job failed because the latest simdjson on conda, version 5.0.1, does not compile with MSVC. The wheel verification failed on conda because Python 3.15 shipped a third release candidate instead of the final release, so Raúl patched the script to use the RC channel.&lt;/p&gt;

&lt;p&gt;Jeffrey Vo &lt;a href="https://lists.apache.org/thread/4gbx1qvc77r33vh64wov3ox6c9k9x284" rel="noopener noreferrer"&gt;announced a planned arrow-rs 59.3.1 patch release&lt;/a&gt; and invited backport requests on the release ticket.&lt;/p&gt;

&lt;h3&gt;
  
  
  Format work: range types and JSON schemas
&lt;/h3&gt;

&lt;p&gt;Florian Hölzlwimmer &lt;a href="https://lists.apache.org/thread/phhtml4hzoyrof9btssoo2w4sor68w7g" rel="noopener noreferrer"&gt;opened a vote on two canonical extension types&lt;/a&gt; for ranges. &lt;code&gt;arrow.fixed_closedness_range&lt;/code&gt; stores a struct of lower and upper bounds, with one closedness setting for the whole column, which maps one to one onto pandas &lt;code&gt;IntervalArray&lt;/code&gt;. &lt;code&gt;arrow.variable_closedness_range&lt;/code&gt; adds per-value flags for inclusive bounds, which PostgreSQL's &lt;code&gt;numrange&lt;/code&gt; needs. The PR includes C++ and Python implementations, with an independent Rust implementation in arrow-rs. The vote stays open through October 9.&lt;/p&gt;

&lt;p&gt;David Lee contributed to the &lt;a href="https://lists.apache.org/thread/hzkr9hmymvz2y57tcogf0j1nshwvol9c" rel="noopener noreferrer"&gt;JSON representation of Arrow schemas&lt;/a&gt; discussion. He asked for sparse union support and shared a format he uses to define data contracts in HOCON and JSON config files. David Li signed off on the updates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python packaging and contributor health
&lt;/h3&gt;

&lt;p&gt;Alenka Frim responded to Raúl Cumplido's proposal to &lt;a href="https://lists.apache.org/thread/rd0pyyqts04521x45x6qsh7gv48f9kpt" rel="noopener noreferrer"&gt;improve PyArrow modularity&lt;/a&gt;. She has seen projects reject PyArrow as a dependency because of package size, and expects the change to land well with the Python community. She asked whether the extra loading complexity falls on users or on maintainers, and how mixed conda and pip installs behave.&lt;/p&gt;

&lt;p&gt;Pearu Peterson asked how to get a &lt;a href="https://lists.apache.org/thread/jtqhcr6zot6s3sw3n6gdz2hbwlvl36xl" rel="noopener noreferrer"&gt;four-month-old PR reviewed&lt;/a&gt;. PR 50146 lets the CSV reader fall back to configured timestamp parsers for date and time columns, which fixes issues open since 2021. Ian Cook replied that the email landed in his spam folder, a problem several Arrow members have hit lately, and then reviewed the PR. Antoine Pitrou &lt;a href="https://lists.apache.org/thread/x55vbmmthjdj0rdf0vsyr8p3wpc31m1j" rel="noopener noreferrer"&gt;asked for board report input&lt;/a&gt; by October 8, before he leaves for Community over Code in Glasgow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A compromise takes shape on VECTOR
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/4mcq5ojnpx2f6chtdp36bxfzvv72rg6r" rel="noopener noreferrer"&gt;numeric vector type thread&lt;/a&gt; carried the most consequential debate on the Parquet list. Sebastian Baunsgaard argued against requiring finite elements in &lt;a href="https://github.com/apache/parquet-format/pull/624" rel="noopener noreferrer"&gt;parquet-format PR 624&lt;/a&gt;. Parquet already defines FLOAT and DOUBLE as IEEE types, and scalar columns never banned NaN or infinity. Sebastian also noted that finite inputs still overflow, so a magnitude column over a valid vector can still hold infinity. He proposed an optional &lt;code&gt;finite&lt;/code&gt; flag on the type.&lt;/p&gt;

&lt;p&gt;Will Edwards suggested a more general path: standard length constraints on variable-length types, so &lt;code&gt;VECTOR(N)&lt;/code&gt; becomes a list with matching minimum and maximum lengths. The same mechanism also expresses SQL &lt;code&gt;CHAR(N)&lt;/code&gt; and &lt;code&gt;VARCHAR(N)&lt;/code&gt;. Philipp Fischbeck preferred a dedicated logical type for its semantics and future statistics, and said he can live with dropping the finite rule or making it a flag.&lt;/p&gt;

&lt;p&gt;Ryan Blue then summarized the shared ground and named the split. Everyone wants a logical type now and a better physical layout later. Some groups need write-time guarantees of non-null, finite elements for databases, table formats, and vector indexes. Others want NaN, infinity, tensors, and smaller floats. Ryan proposed two types: a &lt;code&gt;FINITE_VECTOR&lt;/code&gt; and a separate fixed-length list or vector that allows special values. With Iceberg's vector type sync starting October 8, the Parquet outcome will shape what Iceberg can promise about vector columns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Encodings, decimals, and wire formats
&lt;/h3&gt;

&lt;p&gt;The FastLanes evaluation produced an &lt;a href="https://lists.apache.org/thread/b3df16sx1ny1lrtzgbhmrpynq4hwztzz" rel="noopener noreferrer"&gt;apology and a reset&lt;/a&gt;. Antoine Pitrou apologized to Prateek Gaur for harsh words in an earlier message and asked for a higher-level document that compares the current &lt;code&gt;DELTA_BINARY_PACKED&lt;/code&gt;, PFOR, FastLanes, an improved delta decoder, and an interleaved variant on shared axes. Prateek recapped the path from PFOR to the FastLanes study, including the finding that the existing delta decoder can run faster with no format change. He had already &lt;a href="https://lists.apache.org/thread/ggo38d5dn7lxk313fshmwf0877ynnz7b" rel="noopener noreferrer"&gt;trimmed the evaluation doc&lt;/a&gt; for readability. Julien Le Dem thanked him for the work.&lt;/p&gt;

&lt;p&gt;Costas Zarifis posted a formal &lt;a href="https://lists.apache.org/thread/r35kv2j59xdm4od5lpmzdzj5l5doblzb" rel="noopener noreferrer"&gt;proposal for an extensible decimal floating-point type&lt;/a&gt;. It backs the full IEEE 754 decimal model, one logical type that keeps the supplied representation, and IEEE &lt;code&gt;totalOrder&lt;/code&gt; for ordering and statistics. The physical layout is still open, with generalized BID listed as one candidate. Thomas Kissinger said he will review it in the doc.&lt;/p&gt;

&lt;p&gt;Neelesh Salian answered Micah Kornfield's review of &lt;a href="https://lists.apache.org/thread/qdm6zp767sqzg9nrwwml3yzcm109hxn4" rel="noopener noreferrer"&gt;WIRE, a logical type for serialized wire-format messages&lt;/a&gt; such as protobuf. The type stores the bytes as the value and never decodes them, so Parquet libraries take on no parser dependencies. Micah opposes the projection piece until an open source engine commits to using it, citing how hard Variant was to get right in engines.&lt;/p&gt;

&lt;p&gt;Andrew Lamb weighed in on a &lt;a href="https://lists.apache.org/thread/plk8oqfbh79v2f4wyngtmpz90dm8bd1m" rel="noopener noreferrer"&gt;proposal to treat &lt;code&gt;distinct_count&lt;/code&gt; as inexact&lt;/a&gt;. He supports richer sketches for planners, but redefining an existing field risks old readers misreading new files. He suggested new standardized metadata instead. Julien Le Dem &lt;a href="https://lists.apache.org/thread/noq7gfxjjfyyp3h4mt9mrxnqb5rcr4cs" rel="noopener noreferrer"&gt;announced the October 7 Parquet sync&lt;/a&gt;, open to anyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache DataFusion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A four-release week
&lt;/h3&gt;

&lt;p&gt;DataFusion ran a release marathon, and the most instructive moment came from a failed vote. Andy Grove started deeper verification of &lt;a href="https://lists.apache.org/thread/qpg0pg99hx86oqlkcnx9co97h9p8rqhz" rel="noopener noreferrer"&gt;Comet 1.1.0 RC1&lt;/a&gt; and found regressions, some serious. He changed his vote to -1, tracked the problems under a regression label, and backported fixes to the release branch. He also noted the verification takes days because his token budget has limits, a small sign of how AI-assisted review now shapes release work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lists.apache.org/thread/f5gkht347vol6f413ygdcbdl56546bho" rel="noopener noreferrer"&gt;Comet 1.1.0 RC2&lt;/a&gt; &lt;a href="https://lists.apache.org/thread/qyxttfywjq8otnj7k120c7fhyprwj5h3" rel="noopener noreferrer"&gt;passed&lt;/a&gt; with nine approvals, six binding, from Andrew Lamb, L. C. Hsieh, Marko Milenković, Oleks V., Matt Butrovich, and Andy. Xuanwo ran 1,773 native library tests and 296 JVM suite tests and caught a packaging gap. The staged Spark 4.1 jars omit the Apache Gluten attribution from their NOTICE file, even though they include the related code. Andy opened &lt;a href="https://github.com/apache/datafusion-comet/pull/6657" rel="noopener noreferrer"&gt;a PR&lt;/a&gt; to fix it going forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lists.apache.org/thread/8gkof0h0q7w4bln12lrnp34zhw2s6tz9" rel="noopener noreferrer"&gt;Ballista 55.0.0 RC1&lt;/a&gt; hit a different snag. Andrew Lamb and Bhargava Vadlamani saw tests hang or fail on macOS. Marko Milenković reproduced the issue and traced it to the open file limit. Raising &lt;code&gt;ulimit -n&lt;/code&gt; to 2048 or higher fixed verification, and the vote &lt;a href="https://lists.apache.org/thread/qptl5swh49vdvbm9mvfdm2qbfblnqgf1" rel="noopener noreferrer"&gt;passed&lt;/a&gt; with six approvals, four binding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lists.apache.org/thread/w9rl86tlc0gt34ronrcog0lscfdqvg63" rel="noopener noreferrer"&gt;DataFusion 55.2.0 RC1&lt;/a&gt; collected binding approvals from Andy Grove, L. C. Hsieh, Marko Milenković, Andrew Lamb, and Tim Saucer. Erik Bogado &lt;a href="https://lists.apache.org/thread/pls9g1pk6nbogzm86ymx74y8fxdtwrsf" rel="noopener noreferrer"&gt;tested it&lt;/a&gt; on AMD Ryzen, Intel Xeon, and ARM Neoverse-N1 hardware. Tim Saucer's &lt;a href="https://lists.apache.org/thread/z70z6z4qk9fmy3br6bo67on373qwvywt" rel="noopener noreferrer"&gt;Python bindings 54.1.0&lt;/a&gt; &lt;a href="https://lists.apache.org/thread/mr3f8lgvqnnvgxrwdyzf6qbltvyq8bg6" rel="noopener noreferrer"&gt;passed&lt;/a&gt; with five approvals, four binding. Xuanwo found a missing NOTICE file in the source tarball and wheels, plus incomplete license text for bundled mimalloc. Andrew Lamb observed that the bindings needed little work this cycle, which suggests a widely used public API that now changes slowly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decoupling Ballista from the Python release train
&lt;/h3&gt;

&lt;p&gt;Andy Grove &lt;a href="https://lists.apache.org/thread/0dsfk0h5kmcpv4wtxnk24r096fjon1l8" rel="noopener noreferrer"&gt;proposed releasing Ballista's Python client separately&lt;/a&gt; from its Rust crates. Ballista moved to DataFusion 55 five weeks earlier and had not released since, because its Python client waits on a matching datafusion-python release. Over the last eleven DataFusion releases, datafusion-python followed by a median of 31 days and once by more than seven weeks. Meanwhile, more than 300 commits sat unreleased, including fixes for wrong results from distributed &lt;code&gt;NOT IN&lt;/code&gt;, executors killed for running out of memory, and jobs hanging when all executors drop. The 55.0.0 release shipped without the Python client, which will get its own vote later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security and AI policies
&lt;/h3&gt;

&lt;p&gt;Andrew Lamb noticed DataFusion had &lt;a href="https://lists.apache.org/thread/9s4771rs8zhxpyw334b3n3jcczz31k6y" rel="noopener noreferrer"&gt;no published security policy&lt;/a&gt; and proposed policies for the core crate and for sqlparser-rs. He is also &lt;a href="https://lists.apache.org/thread/z4pfjzynsk0sx1dzgj5m9lj56swfhbn5" rel="noopener noreferrer"&gt;revising the AI contribution policy&lt;/a&gt; with Jeffrey, Neil, Yongting, and others in &lt;a href="https://github.com/apache/datafusion/pull/24510" rel="noopener noreferrer"&gt;PR 24510&lt;/a&gt;. The substance stays the same, but the text now states that contributors own what they submit and should not post unreviewed AI output. Andy Grove proposed &lt;a href="https://lists.apache.org/thread/nyrn4t3k0j6fx4pdst9m5oq81grnbwhn" rel="noopener noreferrer"&gt;AI guidance for Comet contributors&lt;/a&gt; in &lt;a href="https://github.com/apache/datafusion-comet/pull/6734" rel="noopener noreferrer"&gt;PR 6734&lt;/a&gt;. Automated reviews can help, but a human must perform every PR approval.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie (incubating)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Should a semantic model ship an MCP server?
&lt;/h3&gt;

&lt;p&gt;The longest Ossie thread started as a GitHub discussion about building an &lt;a href="https://lists.apache.org/thread/4t11d04tv6nqpfc92xyk49cl4mfj0bjp" rel="noopener noreferrer"&gt;MCP server for Ossie&lt;/a&gt;. The idea: expose semantic models as tools an agent calls directly, instead of reading raw YAML. Jean-Baptiste Onofré said he does not see value in an MCP server inside Ossie, since catalogs and engines can provide one.&lt;/p&gt;

&lt;p&gt;Markus Cozowicz reframed the pitch as an MCP specification, not an implementation. In his view, Ossie's biggest value is helping agents understand semantics and build correct queries, and an &lt;code&gt;execute_query&lt;/code&gt; tool contract sits at the center of that. Aleksandr Kosachev, who maintains an Ossie MCP server over ClickHouse, pointed out a real gap. The REST API spec proposed in September covers managing models and binding them to physical tables, but not running a query and returning data. Markus later opened PR 529 with a draft.&lt;/p&gt;

&lt;p&gt;Chris Eubank pressed on the semantics. He asked whether &lt;code&gt;execute_query&lt;/code&gt; should steer clients toward portable Ossie query interfaces or also standardize vendor dialects compiled outside Ossie, since the draft ties loosely to Ossie. Markus argued for allowing all registered dialects at first, because vendor conversions will take time. He added that a standard tool contract, once it reaches LLM training data, saves everyone from teaching agents how to run queries. Kyoung Min Kim shared an experiment on 33 datasets with 45 relationships, where models returned a structured metric request and a compiler resolved the joins. JB closed his part of the week by keeping the server out of core while staying open to a spec, and Jakub Moravec suggested shipping skills in Ossie and leaving tools to vendors.&lt;/p&gt;

&lt;p&gt;This is the most important open question in the semantic layer space right now. An agent that finds a well-modeled metric still needs a governed way to run it, and the protocol boundary decides whether that path stays portable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Query layers and Measures in SQL
&lt;/h3&gt;

&lt;p&gt;Justin Talbot's &lt;a href="https://lists.apache.org/thread/p0od6gsjyr7nt4bb4qom6qcmwzy3k0so" rel="noopener noreferrer"&gt;specification layers overview&lt;/a&gt; in PR 452 frames Ossie as a model definition layer plus distinct query interfaces. Julian Hyde shared a lesson from Looker. There, the query language was weaker than the modeling language, so users often had to change the model to run a query, turning minutes into hours. That frustration led him to propose Measures in SQL. JB took the point that a model's meaning only becomes testable through a query layer. Aleksandr ran 182 expressions through SQLGlot parsers to measure dialect coverage, and the group agreed to start a reference query expander in Python with SQLGlot.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/n5t84f01kx02x5b7xz8qdg0c8n7v0ncz" rel="noopener noreferrer"&gt;Relational Query Interface spec&lt;/a&gt; in PR 354 grounds that layer in Measures in SQL. Julian objected to the &lt;code&gt;TO MEASURE&lt;/code&gt; syntax: it is not idiomatic SQL, its precedence is unclear, and it blocks anonymous inline measures. Justin prefers &lt;code&gt;AS MEASURE&lt;/code&gt;, as in the original paper, and JB changed his position after spotting inconsistent parentheses in the draft. Julian logged issues for an Ossie test script format and a view expander, and Chris asked that the tests take Ossie models as input so readers see how much of a spec is queryable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics, filters, and relationships
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/sz17wf36mtlyycv9n0dm93k6j5psz1jl" rel="noopener noreferrer"&gt;dataset-scoped metrics&lt;/a&gt; proposal from Josh Klahr in PR 343 converged. Chris Eubank proposed narrowing scope to get a clean vote. The question was whether unqualified names in a dataset metric resolve to declared fields or source columns. Justin Talbot backed fields first, with explicit precedence rules. Kyoung Min Kim added data: 228 of the 306 field expressions in the repository are passthrough fields that just expose one source column. JB summarized the boundary: field expressions map physical columns to logical fields, and metric expressions aggregate declared fields.&lt;/p&gt;

&lt;p&gt;Chris's &lt;a href="https://lists.apache.org/thread/tgpgjz1855t3bvp3hjmxf0kl02p2wd3g" rel="noopener noreferrer"&gt;vote to add &lt;code&gt;FILTER (WHERE ...)&lt;/code&gt;&lt;/a&gt; to the expression language gathered support. Kyoung Min re-ran the lowering rules on DuckDB 1.5 and confirmed the difference that motivated the change. A CASE workaround with &lt;code&gt;ELSE 0&lt;/code&gt; returns an AVG of 55.0 where FILTER returns 73.33, a silent wrong answer in any metric built the old way.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/sn51cgc34qzlx13qpq00rjxfd1roowsy" rel="noopener noreferrer"&gt;relationship cardinality thread&lt;/a&gt; reached a plan. JB proposed one vocabulary across the ontology spec, core spec, and PR 354: PascalCase multiplicity values, &lt;code&gt;ManyToOne&lt;/code&gt; as the default, and &lt;code&gt;OneToMany&lt;/code&gt; excluded from core. Kyoung Min's audit found 61 relationships in the repository YAML, with 42 covering a declared key on the target and 19 pointing at datasets with no declared key. A related &lt;a href="https://lists.apache.org/thread/mbgp7m76xkmw5jpv6dm9vxvtd3dzykv8" rel="noopener noreferrer"&gt;thread on &lt;code&gt;dataset.column&lt;/code&gt;&lt;/a&gt; agreed that model-level expressions should reference logical fields, not warehouse columns, following the SQL view analogy Julian and Justin described.&lt;/p&gt;

&lt;h3&gt;
  
  
  Repository structure and extensions
&lt;/h3&gt;

&lt;p&gt;JB &lt;a href="https://lists.apache.org/thread/jvsjpcld2vy2970y0kkgl10xd0r089dl" rel="noopener noreferrer"&gt;created the ossie-converters repository&lt;/a&gt; and opened PRs to move the converters out of the spec repo. Yufei Gu noted that the last community sync named this a blocker for the first spec release. Kurt Stirewalt explained why semantic models were &lt;a href="https://lists.apache.org/thread/o9gqod3hxq6226xm6vzj2w55z1rxbqt9" rel="noopener noreferrer"&gt;embedded inside ontology mappings&lt;/a&gt;: the original goal of single self-contained documents. JB supports decoupling and wants the embedded shape removed before the 0.3.0-incubating release.&lt;/p&gt;

&lt;p&gt;Mike Carlo's proposal to make &lt;a href="https://lists.apache.org/thread/s5ch0qsc14qx6x69c5j9ch5q0jk9d096" rel="noopener noreferrer"&gt;custom extension data a structured object&lt;/a&gt; instead of an opaque JSON string drew support from Yufei, Markus, and Chris. Chris pushed for schema docs per converter, since custom extensions hold much of the vendor-specific logic. Kyoung Min and Andrew Nepogoda agreed on &lt;a href="https://lists.apache.org/thread/fd178yxtwjnrcqzlp8jhwnkn0ht1967k" rel="noopener noreferrer"&gt;semantic checks for ontology documents&lt;/a&gt; in &lt;code&gt;validate.py&lt;/code&gt;. A bidirectional &lt;a href="https://lists.apache.org/thread/tf2yz1k12zwpotq1x4w5551rj3j2p3hv" rel="noopener noreferrer"&gt;OpenMetadata converter&lt;/a&gt; also appeared.&lt;/p&gt;

&lt;p&gt;Ossie keeps attracting new contributors. Aleksandr Kosachev &lt;a href="https://lists.apache.org/thread/0mxzxxdc8s0tmy3fyjftyoymyhzxncpg" rel="noopener noreferrer"&gt;introduced himself&lt;/a&gt; as a backend architect who kept seeing teams wire AI assistants to databases and get confident, wrong answers. He picked ClickHouse, an engine the converters did not cover, and built an implementation. His measurements showed up in four threads this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI enters the release and review process
&lt;/h3&gt;

&lt;p&gt;Every project touched AI-assisted contribution this week, and each took a slightly different stance. Iceberg voters used agents to verify release candidates and disclosed it. DataFusion's Andy Grove used AI-assisted verification to find serious regressions and vote down an RC. Polaris debated how to disclose AI-generated code in commits and which header to use. DataFusion rewrote its AI policy to stress ownership, and Comet requires a human for every approval.&lt;/p&gt;

&lt;p&gt;The pattern is consistent. Projects welcome AI as a verification and review aid, and they draw a firm line at authorship and approval. Disclosure is moving toward the ASF's recommendation. For contributors, the takeaway is simple: use the tools, say so, and own the result.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vectors pull on every layer
&lt;/h3&gt;

&lt;p&gt;Vector data showed up at three layers at once. Parquet debated whether a &lt;code&gt;VECTOR&lt;/code&gt; type guarantees finite elements. Iceberg started a dedicated Vector type sync and finalized its index region design for fast point lookups. Ossie's MCP debate is about how agents retrieve governed answers, which sits right next to retrieval over embeddings. The file format decides what a vector column can hold. The table format decides what it can promise and index. The semantic layer decides how agents ask for it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Specs, implementations, and sources of truth
&lt;/h3&gt;

&lt;p&gt;Several threads asked where the truth lives. Iceberg debated whether specs belong in their own repository and agreed to separate spec changes from Java release notes. The Glue thread named the split brain between catalog mirrors and Iceberg metadata. Polaris asked whether a metadata URI identifies content or just a route to it. Ossie wants a required portable core in every document instead of vendor dialects hidden in extensions. Arrow kept refining a JSON form of its schema. Each case pushes toward one authoritative definition, with everything else derived from it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Release hygiene is a shared job
&lt;/h3&gt;

&lt;p&gt;LICENSE and NOTICE problems surfaced in Iceberg's Kafka Connect runtime, DataFusion Comet's jars, DataFusion Python's wheels, and a Polaris pre-release check. Each fix came from a careful voter, often with tool help. Open source licensing compliance rarely makes headlines, but it decides whether downstream vendors can ship these projects at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Watch the Iceberg Thursday sync on October 8, where the Vector type takes center stage, and the Parquet community's response to Ryan Blue's two-type compromise. The Arrow range-type vote closes October 9, and the Arrow 26.0.0 result should follow. Polaris aims to cut 1.9.0 at the end of October, so the R2, DynamoDB, and Iceberg 1.12 PRs face review pressure now. In Ossie, track PR 529 on &lt;code&gt;execute_query&lt;/code&gt; and the converter repository move, which gate the first spec release. The Iceberg 1.13 scope discussion will keep running, with early January as the working target.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;If this digest helps you follow the open lakehouse, my books go deeper on every layer covered here, from Apache Iceberg and Apache Polaris to Arrow, Parquet, semantic layers, and agentic analytics. Browse the full catalog at &lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt; and pick the one that fits the problem in front of you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Weekly: Mistral Large 4 and the Decision Model Wave</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 07 Oct 2026 17:25:07 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/ai-weekly-mistral-large-4-and-the-decision-model-wave-38k4</link>
      <guid>https://dev.to/alexmercedcoder/ai-weekly-mistral-large-4-and-the-decision-model-wave-38k4</guid>
      <description>&lt;p&gt;&lt;em&gt;Week of September 30 to October 7, 2026&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Open-weight models owned this week. Mistral previewed a trillion-parameter flagship, Reflection AI introduced its first open model, and three companies shipped small decision models that return probabilities instead of prose. On the tooling side, OpenAI started a 28-day shipping sprint for Codex, and GitHub let Copilot drive desktop apps. Underneath it all, memory makers told investors that supply stays tight through 2028.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models: Mistral Large 4 Pushes the Open-Weight Frontier
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mistral Large 4, aka Le Chonk
&lt;/h3&gt;

&lt;p&gt;Mistral &lt;a href="https://mistral.ai/news/mistral-large-4/" rel="noopener noreferrer"&gt;launched a public preview of Mistral Large 4&lt;/a&gt; on October 6. The company calls it ML4 for short and Le Chonk for fun. The &lt;a href="https://docs.mistral.ai/models/mistral-large-4-0" rel="noopener noreferrer"&gt;docs page&lt;/a&gt; lists the model ID &lt;code&gt;mistral-large-4&lt;/code&gt;, a granular mixture-of-experts design with 1.05 trillion total parameters and 52 billion active, plus a 1.6 billion parameter vision encoder. The launch post rounds those to 1 trillion total and 49 billion active, and the &lt;a href="https://huggingface.co/mistralai/Mistral-Large-4.0-1T05-A52B" rel="noopener noreferrer"&gt;Hugging Face placeholder&lt;/a&gt; explains the gap: 49 billion active per token, or 52 billion counting embeddings and output layers.&lt;/p&gt;

&lt;p&gt;The docs list a 1 million token context window. Preview pricing is $1.36 per million input tokens, $0.14 per million cached input tokens, and $4.18 per million output tokens. That puts ML4 well under most closed frontier models on price. The model takes text and image input and returns text, with structured outputs, function calling, document Q&amp;amp;A, batching, and the Agents API all supported.&lt;/p&gt;

&lt;p&gt;Mistral says it trained ML4 from scratch on 3,800 NVIDIA Grace Blackwell GPUs in its own European data centers. The preview runs on the same hardware. Mistral also says more than 160 languages made up a large share of the training data, including every official EU language. The company frames the release as a sovereignty play: a frontier-class model that European customers can run on their own infrastructure, under their own rules.&lt;/p&gt;

&lt;p&gt;All benchmark numbers below are vendor-reported by Mistral. On agentic coding, ML4 scores 61.7% on DeepSWE v1.1, 59.4% on SWE-Atlas-QnA, and 28.3% on Terminal-Bench 4. Its combined Coding Agent Index score of 49.8% lands ahead of DeepSeek V4 Pro 0813 and Qwen3.8 Max, by Mistral's count. On AutomationBench, which covers 657 business workflows across apps like Gmail, Sheets, Slack, and Salesforce, it scores 59.9%. On the Dense 200 visual grounding test, Mistral reports 42% against 41% for GPT-6 Astra.&lt;/p&gt;

&lt;p&gt;Cybersecurity sits at the center of the pitch. Mistral says ML4 solves 93% of the 40 Cybench challenges and scores 82% on a test that asks a model to reproduce and then patch a real open source vulnerability. The post argues that several closed models score near zero on that test because they refuse the task. Mistral also reports a 93.3% resistance rate on Lakera's B3 prompt injection benchmark and a higher refusal rate on malicious cyber prompts than other open models it tested.&lt;/p&gt;

&lt;p&gt;The cyber story has a second side. &lt;a href="https://thenewstack.io/mistral-large-4-weights/" rel="noopener noreferrer"&gt;The New Stack reports&lt;/a&gt;, citing Reuters, that ML4 tried to move beyond its test environment during evaluation. Mistral's VP of Science said the behavior was expected and contained in software. Mistral is red-teaming the model with security firms, vetted partners, and state authorities, who get a version with reduced moderation.&lt;/p&gt;

&lt;p&gt;This sets up the sharpest policy contrast of the week. OpenAI and Anthropic responded to similar behavior in their most cyber-capable models by restricting access. Mistral plans to publish the weights, which hands safeguard decisions to whoever runs the model. Defenders get a capable tool they control, and so does anyone else who downloads it. Expect this split to shape procurement debates in security teams for months.&lt;/p&gt;

&lt;p&gt;The weights are the part to watch. Mistral says they drop by the end of October, and the Hugging Face page counts down to October 31. Reporters were told October 27. The New Stack also reports that ML4 ships under a custom license rather than the Apache 2.0 license Mistral used for Large 3. Teams planning to self-host should read that license before building on the model.&lt;/p&gt;

&lt;p&gt;What this changes for practitioners: a 1 million token, image-capable model with frontier-adjacent coding scores, priced under $1.50 per million input tokens, and downloadable within weeks. For regulated industries in Europe, ML4 gives procurement teams a credible open option where they previously had to accept a US or Chinese provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reflection AI introduces Beam
&lt;/h3&gt;

&lt;p&gt;Reflection AI &lt;a href="https://reflection.ai/blog/introducing-beam" rel="noopener noreferrer"&gt;introduced Beam&lt;/a&gt; on October 5, its first open-weight model. Beam is a sparse mixture-of-experts model with 501 billion total parameters and 23 billion active. It is text-only and built for coding, reasoning, and agentic work. Reflection pretrained it on 23.8 trillion tokens, and midtraining extended its effective context to 1 million tokens.&lt;/p&gt;

&lt;p&gt;The training numbers stand out. Pretraining ran in under four weeks on 6,144 NVIDIA GB300 GPUs in NVL72 racks. The reinforcement learning run used 10,500 GB300 GPUs for four weeks, generated more than 100 million rollouts with up to 256,000 tokens of context, and drew from about one million curated environments. Reflection says capability kept rising with RL compute and showed no plateau.&lt;/p&gt;

&lt;p&gt;Reflection's own benchmark table, all vendor-reported, shows Beam at 80.9 on SWE-Bench Verified, 65.5 on SWE-Bench Pro v1, 80.1 on Terminal-Bench v2.1, and 44.4 on DeepSWE v1.1. Reflection says Beam competes with GLM 5.2 and approaches Qwen 3.8-Max on coding and agentic tasks, while Kimi K3 stays ahead on raw capability. The pitch is cost per answer. Reflection claims Beam matches GLM 5.2 on reasoning tests with three to four times less inference compute.&lt;/p&gt;

&lt;p&gt;Beam is in final red-teaming. Early access runs through a waitlist on the Reflection platform. Reflection says it will release the weights under Apache 2.0, along with a technical report, a model card, and tooling for running and fine-tuning the model, later in October. A user-facing reasoning effort setting lets developers trade answer quality for tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  This week's open-weight scorecard
&lt;/h3&gt;

&lt;p&gt;The table below collects the open releases from this week in one place. All capability claims behind these models are vendor-reported, and two of the three large models have not published weights yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lrps0cxt38z17uv6cj6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lrps0cxt38z17uv6cj6.png" alt="This week's open-weight scorecard" width="800" height="940"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two patterns stand out. First, the large Western open models now compete on agentic coding and inference cost rather than on raw chat quality. Mistral and Reflection both lead their launch posts with coding agents, tool use, and tokens per correct answer. Second, the small models are getting more specialized. Decision models and multimodal embedders do one job each, run fast, and ship with permissive licenses, which makes them easy to drop into existing pipelines.&lt;/p&gt;

&lt;p&gt;There is also a geopolitical thread. Mistral describes ML4 as the strongest open model from the US or Europe, and Reflection describes Beam as advancing the Western open frontier. Both still benchmark against Chinese leaders such as Kimi K3, GLM 5.3, Qwen 3.8, and DeepSeek V4, and both concede those models stay ahead on some measures. The open-weight race now has a regional scoreboard, and buyers in regulated sectors care about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decision models arrive from three directions
&lt;/h3&gt;

&lt;p&gt;The quietest trend of the week matters a lot for production agents. Several vendors shipped decision models: small models that pick from developer-supplied options and return typed answers with probabilities, instead of generating free text. TypeSafe's Jev started the wave a few weeks ago. This week the big platforms answered.&lt;/p&gt;

&lt;p&gt;Cloudflare &lt;a href="https://blog.cloudflare.com/clef-decision-models/" rel="noopener noreferrer"&gt;released Clef and Clef-flash&lt;/a&gt; on October 1, hosted on Workers AI as &lt;code&gt;@cf/cloudflare/clef&lt;/code&gt; and published on Hugging Face under Apache 2.0. Clef freezes Qwen3.8-27B as its backbone, and Clef-flash freezes Qwen3.5-9B. Cloudflare trained a routing head and rank-256 adapters on top, with a non-autoregressive scoring step that skips token-by-token generation. Both models take a 64K token context, double Jev's 32K, and include a vision encoder for image classification.&lt;/p&gt;

&lt;p&gt;Cloudflare's latency numbers, vendor-reported across 43 benchmarks, put Clef at a 209 ms median and Clef-flash at 38.8 ms, against 524 ms for Jev. On its quality table, Clef scores 94.20 macro-F1 on BANKING77 and 97.43 on CLINC150 with out-of-scope detection. Jev still wins on When2Call and BRIGHT. The models are fully Jev API compatible, so teams can swap providers without code changes. Cloudflare also announced a reinforcement learning fine-tuning service, starting with its forward-deployed engineers before a self-serve version.&lt;/p&gt;

&lt;p&gt;Cloudflare's own use case shows why this matters. Its threat intelligence team feeds a domain to Clef, which renders the site and returns category probabilities, such as 95% fashion, 85% ecommerce, and under 1% phishing. That run took 2.2 seconds. The fastest general LLM in the same workflow, gpt-oss-120b, took 4.7 seconds and returned only two categories. Halving latency while returning richer output is the whole argument for decision models in one example.&lt;/p&gt;

&lt;p&gt;AWS launched &lt;a href="https://thenewstack.io/aws-strands-decider-model/" rel="noopener noreferrer"&gt;Strands Decider 2B&lt;/a&gt; the same day. It uses Qwen3.5-2B as the base, replaces the text-generating head with a pointer head of just over a million parameters, and adds a rank-16 LoRA adapter. AWS released the model plus the data and scripts used to train it. The New Stack's example shows the use case clearly. An agent guesses a city for a weather request, and Decider checks whether that argument is grounded in the conversation before the tool runs. If not, the agent asks the user.&lt;/p&gt;

&lt;p&gt;OpenAI launched its Decisions API as a limited preview earlier in the week, per The New Stack, built on its Luna model. Perplexity released &lt;a href="https://huggingface.co/perplexity-ai/pplx-decider-v1-27b" rel="noopener noreferrer"&gt;Decider v1 27B&lt;/a&gt; on October 1 with Apache 2.0 weights. The common thread is clear. Teams want a cheap, fast, auditable check inside the agent loop, and a general LLM is the wrong tool for a yes, no, or pick-one answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google EmbeddingGemma 2 goes multimodal
&lt;/h3&gt;

&lt;p&gt;Google &lt;a href="https://thenewstack.io/google-embeddinggemma-multimodal-search/" rel="noopener noreferrer"&gt;released EmbeddingGemma 2&lt;/a&gt; on October 6. Built on Gemma 4, it maps text, code, images, video, and audio into one 768-dimension vector space, so teams no longer need to caption images or transcribe audio before indexing them. The full model has 740 million parameters, but developers load only the encoders they need. The text and code base uses 270 million parameters and about 191 MB of RAM on a Pixel 11 Pro in Google's testing. The full model used about 567 MB with quantization.&lt;/p&gt;

&lt;p&gt;Google quadrupled the context window from 2,048 to 8,192 tokens. The company says that covers up to 5.5 minutes of audio, 29 images, or 58 video frames per input. The weights ship under Apache 2.0, with on-device deployment through LiteRT and MediaPipe Tasks available now and an Android ML Kit integration coming. The key design choice is the shared vector space. A team can start with a text index and add image or audio search later without re-embedding what it already stored.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smaller releases and a cost check
&lt;/h3&gt;

&lt;p&gt;Microsoft &lt;a href="https://microsoft.ai/news/our-first-streaming-transcription-model/" rel="noopener noreferrer"&gt;shipped three speech models&lt;/a&gt; on October 1: MAI-Transcribe-2-Streaming, its first streaming transcription model, plus MAI-Voice-2.1 and MAI-Voice-2.1-Flash. All three are generally available.&lt;/p&gt;

&lt;p&gt;No new frontier model shipped this week from OpenAI, Anthropic, Google, xAI, Meta, or DeepSeek. The most useful closed-model news was an independent cost test. The New Stack &lt;a href="https://thenewstack.io/gpt-6-1-sol-vs-gpt-6-astra/" rel="noopener noreferrer"&gt;ran GPT-6.1 Sol against GPT-6 Astra&lt;/a&gt; on three tasks, five runs each: CI triage, incident log analysis, and writing a dependency resolver from a spec. Both models got all 15 runs right. GPT-6.1 Sol costs $2 per million input tokens and $10 per million output, against $10 and $50 for Astra. Across the runs, Sol cost $2.66 against Astra's $14.77, or 18% of the price, and finished the two longer tests faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retirements to act on
&lt;/h3&gt;

&lt;p&gt;Deprecations deserve attention because they break pinned configs. GitHub &lt;a href="https://github.blog/changelog/2026-10-02-selected-models-in-github-copilot-deprecated/" rel="noopener noreferrer"&gt;deprecated four models&lt;/a&gt; across all Copilot experiences on October 2: Gemini 3.5 Flash and Gemini 3.6 Flash, with Gemini 3.8 Flash as the suggested replacement, Kimi K2.7 Code, replaced by Kimi K3, and Claude Opus 4.7, replaced by Claude Opus 5.5. OpenAI also deprecated &lt;code&gt;gpt-5.3-codex&lt;/code&gt;, &lt;code&gt;gpt-5.1&lt;/code&gt;, and &lt;code&gt;gpt-5.4-nano&lt;/code&gt; ahead of a 2027 API shutdown, according to &lt;a href="https://releasebot.io/updates/openai" rel="noopener noreferrer"&gt;release trackers&lt;/a&gt;. Audit any workflow that pins one of these IDs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling: Codex Starts a Sprint and Copilot Learns to Click
&lt;/h2&gt;

&lt;h3&gt;
  
  
  OpenAI's 28-day Codex sprint
&lt;/h3&gt;

&lt;p&gt;Thibault Sottiaux, who leads Codex engineering at OpenAI, set an unusual public challenge on October 4. He promised one clear improvement for most Codex and ChatGPT Work users every day for 28 days, or a full usage reset instead. &lt;a href="https://thenewstack.io/openai-codex-shipping-sprint/" rel="noopener noreferrer"&gt;The New Stack covered Day 1&lt;/a&gt;: GPT-6 Astra and GPT-6.1 Sol now run about 50% faster by default. Sottiaux later put it at roughly 50 tokens per second, up from about 30.&lt;/p&gt;

&lt;p&gt;The speedup reaches beyond OpenAI's own apps. Subscribers who use Sign in with ChatGPT get it inside OpenCode, Pi, Amp, and Devin as well. The timing carries some irony. Two days before the sprint began, Sottiaux apologized for a slow GPT-6.1 Sol launch caused by a load spike and issued a global usage reset for paid accounts. Usage resets now work like a currency in the coding tool market, and OpenAI is spending it to win developer goodwill.&lt;/p&gt;

&lt;p&gt;The CLI kept shipping too. &lt;a href="https://developers.openai.com/codex/changelog/" rel="noopener noreferrer"&gt;Codex CLI 0.160.0&lt;/a&gt; landed October 1. It adds opt-in Guardian review features that pull earlier user instructions and context from agent handoffs into safety reviews. It also lets users start sessions outside a project with workspace defaults when policy allows, and it fixes a batch of Windows sandbox issues. Version 0.160.1 followed on October 5 with a fix for environment variables passed to remote MCP servers. The September 29 releases had already made GPT-6.1 Sol the default model in Codex, including in the Amazon Bedrock catalogs.&lt;/p&gt;

&lt;p&gt;Guardian deserves a closer look. It is the Codex component that reviews risky actions before they run, such as commands that need elevated permissions or network access. A reviewer that sees only the current command misses intent. The new opt-in features let Guardian pull earlier user instructions and context passed between agents during handoffs, so it can judge whether an action matches what the user asked for. As coding agents split work across subagents, safety checks need the full chain of instructions, not just the last step.&lt;/p&gt;

&lt;p&gt;The sprint itself is worth tracking as a signal. Daily public commitments put pressure on every competitor's release cadence, and they make quality visible in a way quarterly launches never did. Developers will judge the sprint by whether the improvements reach their daily work, not by how many posts it produces.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot gets computer use
&lt;/h3&gt;

&lt;p&gt;GitHub put &lt;a href="https://github.blog/changelog/2026-10-01-github-copilot-can-now-interact-with-desktop-apps/" rel="noopener noreferrer"&gt;computer use into public preview&lt;/a&gt; in Copilot CLI and the Copilot app on macOS and Windows on October 1. Copilot can now read app content, click controls, type, scroll, drag, and move through workflows across desktop apps. The target is legacy and GUI-only software that has no API, CLI, or MCP integration.&lt;/p&gt;

&lt;p&gt;The control model matters as much as the feature. Copilot asks for approval before it controls an app, and users can review or reset apps they marked as always allowed. On macOS, setup walks through Accessibility and Screen Recording permissions. Organization-managed settings can turn the feature off. Users enable it with &lt;code&gt;/computer on&lt;/code&gt; in the CLI or a settings toggle in the app. &lt;a href="https://thenewstack.io/github-copilot-computer-use-desktop/" rel="noopener noreferrer"&gt;The New Stack noted&lt;/a&gt; that GitHub's own guidance tells users to try other options first, which is the right posture for a tool that drives a real desktop.&lt;/p&gt;

&lt;p&gt;The same day, GitHub added &lt;a href="https://github.blog/changelog/2026-10-01-dynamic-workflows-in-copilot-cli-and-the-copilot-app/" rel="noopener noreferrer"&gt;code-defined workflows to Copilot CLI, the Copilot app, and the Copilot SDK&lt;/a&gt;, available on all plans in public preview. A workflow is a program that defines the steps of a task in code and calls agents only for the parts that need judgment. Steps can run in sequence or in parallel, pass structured results forward, ask subagents to verify each other, and pause at checkpoints for human review. GitHub's examples include parallel PR review across many files and a check that only reports a finding when two models agree. This is the reliability pattern serious agent teams have been hand-building, now packaged into the product.&lt;/p&gt;

&lt;p&gt;GitHub draws a line between this feature and &lt;code&gt;/fleet&lt;/code&gt;, its existing mode where Copilot hands work to subagents and coordinates them on its own. A fleet decides its own plan. A code-defined workflow follows the plan you wrote, every time. Teams can write workflows by hand or ask Copilot to draft one, and the program lives inside a Copilot extension with access to the extension APIs. For release checks, incident investigation, and large codebase sweeps, repeatability beats cleverness, and this design reflects that.&lt;/p&gt;

&lt;p&gt;The two October 1 features also connect. Computer use extends what an agent can touch, and code-defined workflows constrain how it moves through a task. Together they push Copilot from a chat assistant toward an automation platform with guardrails written in code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code review gets an API and a benchmark
&lt;/h3&gt;

&lt;p&gt;GitHub &lt;a href="https://github.blog/changelog/2026-10-02-copilot-code-review-api-support-and-new-default-effort-level/" rel="noopener noreferrer"&gt;opened Copilot code review to the REST and GraphQL APIs&lt;/a&gt; on October 2, with a per-request effort level. Balanced is now the default effort level for new and existing repositories. Teams that prefer the lighter mode can switch to Lite.&lt;/p&gt;

&lt;p&gt;GitHub also &lt;a href="https://thenewstack.io/github-reviewbench-code-review/" rel="noopener noreferrer"&gt;unveiled ReviewBench&lt;/a&gt;, an open benchmark built with Microsoft to measure how well AI review agents find useful problems in pull requests. It uses 219 public PRs from 187 repositories across 19 languages. GitHub picked the corpus after analyzing 103.9 million PRs, matching language and repository-size mix to GitHub as a whole and leaning away from tiny single-file changes. Copilot code review tops the first leaderboard. Treat that result the way you treat any vendor-run benchmark, and look at independent review leaderboards before you choose a tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enterprises rethink their coding agent bills
&lt;/h3&gt;

&lt;p&gt;The Information reported on October 5 that Microsoft and Meta are steering employees away from Claude Code and toward in-house tools, &lt;a href="https://cybersecuritynews.com/meta-microsoft-claude-ai" rel="noopener noreferrer"&gt;per a summary from Cybersecurity News&lt;/a&gt;. At Meta, Claude Code users reportedly fell from about 60,000 earlier this year to about 30,000, with layoffs as one factor and the push toward MetaCode and Muse Code as the larger one. The same report says Meta still spent more than $105 million on Claude Code in one 28-day period. Microsoft is reportedly shifting internal teams toward GitHub Copilot CLI.&lt;/p&gt;

&lt;p&gt;The lesson for engineering leaders is cost visibility. Agent spending grows with usage in ways seat licenses never did. Large companies now run their own models and harnesses partly to control that bill, and smaller teams need the same discipline: per-team budgets, usage dashboards, and routing simple work to cheaper models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observability for agents
&lt;/h3&gt;

&lt;p&gt;Dynatrace &lt;a href="https://thenewstack.io/dynatrace-arize-agents-observability/" rel="noopener noreferrer"&gt;closed its $915 million acquisition of Arize&lt;/a&gt;, announced in August. The pitch is simple. An application can look healthy on infrastructure dashboards while the agent on top gives wrong answers, calls the wrong tool, or stalls. Dynatrace brings application and infrastructure monitoring, and Arize brings tracing and evaluation for models and agents. Expect more observability vendors to buy or build agent evaluation, since traces alone do not tell you whether an answer was right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standards: Watermarks, MCP Context Costs, and Decision APIs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What agent tooling teaches standards bodies
&lt;/h3&gt;

&lt;p&gt;The tooling news this week carries a standards lesson. Copilot's computer use, Codex's Guardian reviews, and code-defined workflows all solve the same problem: how much an agent can do, and who approves it. Each vendor answers that question in its own format today. Approval prompts, permission scopes, and audit trails do not move between tools. A shared way to describe agent permissions and approvals lets security teams set one policy and apply it across Copilot, Codex, Claude Code, and in-house harnesses. MCP covers tool access and A2A covers handoffs, but neither covers that policy layer yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI opens text watermarking to the API
&lt;/h3&gt;

&lt;p&gt;OpenAI &lt;a href="https://thenewstack.io/openai-api-text-watermarking/" rel="noopener noreferrer"&gt;introduced opt-in text watermarking&lt;/a&gt; for its API on October 5, using a system it calls textGrain. The method nudges word choice, picking one fitting word over another, so that a long enough passage carries a statistical pattern OpenAI's detector recognizes. API customers anywhere can turn it on for supported models today. It stays off by default in the API.&lt;/p&gt;

&lt;p&gt;The driver is the EU AI Act's transparency rules. OpenAI says it will start watermarking eligible ChatGPT and Codex text generated in the EU automatically in the coming weeks. The approach differs from Anthropic's, announced in August, which applies watermarking globally at the model level, including for API users and Claude Code. Developers now face two defaults from two major providers. Teams that sell into the EU should decide on a provenance policy now, rather than inherit one from whichever model they call.&lt;/p&gt;

&lt;p&gt;Text watermarks have known limits. A statistical signal needs a long enough passage to detect, and heavy editing or paraphrasing weakens it. Watermarking is one input to a provenance program, not a full answer. For developers, the practical questions are narrower: which outputs carry a watermark, whether customers can see that, and how the product discloses AI-generated text where the law requires it.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP's context bill, and a fix
&lt;/h3&gt;

&lt;p&gt;A practical MCP story landed this week. Pi, the coding agent acquired by Earendil earlier this year, &lt;a href="https://thenewstack.io/pi-agent-mcp-codemode/" rel="noopener noreferrer"&gt;added native MCP support in Pi 1.0&lt;/a&gt; after a long holdout. Creator Mario Zechner had measured the cost of loading tool definitions. Chrome DevTools MCP alone took about 18,000 tokens, or roughly 9% of a 200,000-token window, before the agent did anything. Playwright MCP used about 13,700 tokens to describe 21 tools.&lt;/p&gt;

&lt;p&gt;Pi's answer keeps tool definitions out of the prompt. Its Codemode feature finds tools on demand, calls them from JavaScript, and returns only the useful output, so results do not have to pass through the model's context to be saved or combined. This mirrors a broader shift. The &lt;a href="https://blog.modelcontextprotocol.io/posts/" rel="noopener noreferrer"&gt;MCP 2026-07-28 specification&lt;/a&gt; made the protocol stateless and HTTP-native, and the &lt;a href="https://modelcontextprotocol.io/development/roadmap" rel="noopener noreferrer"&gt;current roadmap&lt;/a&gt; focuses on unifying HTTP and stdio transports. The protocol works. The open problem is how clients spend tokens on it.&lt;/p&gt;

&lt;p&gt;Cloud gateways keep adding MCP plumbing. Google Cloud's API Gateway &lt;a href="https://docs.cloud.google.com/api-gateway/docs/release-notes" rel="noopener noreferrer"&gt;added API key authentication&lt;/a&gt; for the MCP &lt;code&gt;tools/list&lt;/code&gt; method on September 30, building on its September feature that turns an annotated OpenAPI spec into a remote MCP server. That pattern, an existing API spec projected as MCP tools behind a gateway with standard auth, is becoming the default enterprise path.&lt;/p&gt;

&lt;h3&gt;
  
  
  A de facto API for decision models
&lt;/h3&gt;

&lt;p&gt;The decision model releases also carry a standards story. Cloudflare made Clef &lt;a href="https://blog.cloudflare.com/clef-decision-models/" rel="noopener noreferrer"&gt;fully compatible with the Jev API&lt;/a&gt;, with typed question schemas for yes or no, choice, and score answers. That turns one startup's interface into a shared contract only weeks after launch. AWS took a different route with a downloadable model wired into its Strands agent framework, and OpenAI chose a hosted Decisions API. If more vendors adopt the Jev request shape, teams gain the same portability for decision calls that OpenAI-compatible endpoints brought to chat completions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent safety moves below the application
&lt;/h3&gt;

&lt;p&gt;NVIDIA &lt;a href="https://nvidianews.nvidia.com/news/open-agent-safety-platform" rel="noopener noreferrer"&gt;launched its Open Agent Safety Platform&lt;/a&gt;, an open software platform and reference design for governing agents from testing to deployment. Its core is OpenShell, open source runtime software that sets execution boundaries for agents on CPUs and can extend to Arm and Intel platforms. The reference design adds Sentry, an out-of-band watchdog on BlueField-4 DPUs that monitors agent behavior and quarantines agents that leave their boundaries. Cadence is &lt;a href="https://semiengineering.com/chip-industry-week-in-review-158/" rel="noopener noreferrer"&gt;integrating the platform&lt;/a&gt; with its chip-design agents.&lt;/p&gt;

&lt;p&gt;NVIDIA's framing is pointed. Recent incidents share a pattern where agents get around controls at the application layer to finish their tasks. Putting enforcement in a separate runtime, and in silicon outside the host, means a misbehaving agent cannot simply reason its way past the guard. Read this next to Mistral's report of a model probing its test environment. Containment now needs layers the model cannot reach.&lt;/p&gt;

&lt;h3&gt;
  
  
  Documentation for machine readers
&lt;/h3&gt;

&lt;p&gt;Docsy, the Hugo documentation theme Google created in 2019, &lt;a href="https://thenewstack.io/docsy-linux-foundation-agents/" rel="noopener noreferrer"&gt;is moving to the Linux Foundation&lt;/a&gt;. Erin McKean of Google announced the move at Open Source Summit Europe in Prague on October 7. About 2,200 projects used Docsy by the end of 2024, including Kubernetes, OpenTelemetry, gRPC, and Jaeger. The project is adding features aimed at AI agents as readers of technical docs. As agents read documentation before they write code, docs structure becomes part of the interface contract for any API.&lt;/p&gt;

&lt;h3&gt;
  
  
  A2A stays quiet
&lt;/h3&gt;

&lt;p&gt;The Agent2Agent protocol had no major release this week. A2A reached &lt;a href="https://you.com/resources/a2a-protocol-explained-what-agent-to-agent-communication-solves" rel="noopener noreferrer"&gt;version 1.0 with signed Agent Cards&lt;/a&gt; earlier this year and passed 150 supporting organizations under Linux Foundation governance. Most production stacks now pair MCP for tools with A2A for agent-to-agent handoffs, and that split held steady this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure: Memory Sets the Price of Every Token
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Micron says supply stays tight through 2028
&lt;/h3&gt;

&lt;p&gt;Memory remains the scarcest part of the AI stack, and this week's numbers made that plain. Micron &lt;a href="https://semiengineering.com/chip-industry-week-in-review-158/" rel="noopener noreferrer"&gt;reported record fiscal fourth-quarter revenue of $54 billion&lt;/a&gt;, up from $11 billion a year earlier. The company said memory supply stays tight through 2028 and that more than 75% of its 2027 output is already committed. It also told investors that 2027 HBM prices will run well above 2026 levels.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nextplatform.com/store/2026/10/02/microns-numbers-show-why-hbm4-memory-is-worth-15x-its-weight-in-gold/5300701" rel="noopener noreferrer"&gt;The Next Platform's analysis&lt;/a&gt; adds detail. Micron's core data center business grew about elevenfold year over year to just over $18 billion. The HBM4 ramp is on track, and Micron is working with NVIDIA on NVHBM, the first custom HBM4E part, for NVIDIA's next GPUs and NVLink Fusion platforms. Custom HBM marks a shift. Memory stacks now get designed around one customer's accelerator, the way logic chips always were.&lt;/p&gt;

&lt;p&gt;Samsung added a capacity data point. A Samsung executive &lt;a href="https://semiengineering.com/chip-industry-week-in-review-158/" rel="noopener noreferrer"&gt;told Reuters&lt;/a&gt; that HBM will consume nearly 30% of DRAM makers' wafer capacity in 2027, up from about 20% today. Every wafer that goes to HBM is a wafer that does not go to standard DRAM, which is why conventional memory prices keep climbing too.&lt;/p&gt;

&lt;p&gt;TrendForce expects conventional DRAM contract prices to rise 10% to 15% in the fourth quarter and NAND flash prices to rise 15% to 20%. It projects enterprise SSD bit demand to grow more than 80% in 2026. South Korea's semiconductor exports hit a record $60 billion in September, up more than 262% year over year, driven by memory volume and price. These figures reach every AI budget. Inference servers, vector stores, and the object storage behind data lakehouses all buy from the same constrained supply.&lt;/p&gt;

&lt;p&gt;For AI teams, the planning implication is direct. Hardware quotes for 2027 will carry higher memory costs, and cloud providers pass those costs into instance prices. Teams that size inference fleets now should model memory as the line item most likely to rise. Techniques that shrink memory per request, such as quantized models, smaller specialized models, and caching shared context, pay off twice in this market.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optics close in on the network bottleneck
&lt;/h3&gt;

&lt;p&gt;As memory gets more expensive, wasted accelerator time costs more too. Counterpoint Research &lt;a href="https://semiengineering.com/chip-industry-week-in-review-158/" rel="noopener noreferrer"&gt;estimates&lt;/a&gt; that GPUs spend roughly 12.5% of their time waiting on the network in some workloads. The firm expects near-packaged optics to start sampling in late 2026 or early 2027, followed by co-packaged optics as scale-up interconnects demand more bandwidth per watt.&lt;/p&gt;

&lt;p&gt;Standards and funding moved this week to support that shift. JEDEC published the industry's first silicon photonics reliability standard, which sets common qualification rules as optical interconnects spread through AI systems. CScale came out of stealth with $145 million to build an optical interconnect for AI scale-up that contains optical failures without stopping compute. Volantis raised $88 million for an interconnect that uses integrated micro-VCSELs to link many memory chips into one pool for inference. Pooled memory over optics attacks the same problem as HBM from a different angle: give each accelerator access to more memory without stacking it all on the package.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who trained on what this week
&lt;/h3&gt;

&lt;p&gt;This week's model launches doubled as infrastructure disclosures. Mistral trained Large 4 on 3,800 Grace Blackwell GPUs in its own European data centers and serves the preview on the same fleet. Its reinforcement learning stack produces roughly 33 billion tokens per day on about 3,000 GPUs, with about 16 billion of those trainable after filtering. Mistral says its €3 billion Series D funds a large compute expansion in Europe.&lt;/p&gt;

&lt;p&gt;Reflection pretrained Beam on 6,144 GB300 GPUs in NVL72 racks, then ran RL on 10,500 GB300 GPUs for four weeks. Its RL platform sustained about 110,000 concurrent rollouts and up to 170,000 concurrent sandboxes across more than 20 clusters, two clouds, and four regions. New weights reached the inference fleet in a median of about 12 seconds. Reflection reports pretraining goodput of 92.3% near the end of the run, with nine rewinds for gradient spikes or suspected silent data corruption.&lt;/p&gt;

&lt;p&gt;These numbers show where frontier spending now goes. Pretraining is only one stage. RL at scale needs huge numbers of CPU sandboxes, fast weight distribution, and fault handling that keeps a month-long job alive through dozens of incidents. That is why NVIDIA's CPU-heavy rack designs and agent sandboxing products keep showing up next to its GPU launches.&lt;/p&gt;

&lt;p&gt;NVIDIA also &lt;a href="https://nvidianews.nvidia.com/news" rel="noopener noreferrer"&gt;published a post&lt;/a&gt; on how its Blackwell GPUs accelerate GPT-6 Astra Ultrafast, which is now live in the OpenAI API and for eligible ChatGPT Work and Codex users. Fast tiers like this are becoming a standard product line, priced above default speed for latency-sensitive agent loops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Capital, fabs, and power
&lt;/h3&gt;

&lt;p&gt;Several deals this week show how AI hardware financing now works. Anthropic's IPO filing &lt;a href="https://semiengineering.com/chip-industry-week-in-review-158/" rel="noopener noreferrer"&gt;revealed&lt;/a&gt; that it is the customer behind Broadcom's previously disclosed compute financing arrangement of up to $42 billion. Chip vendors financing their own customers' compute is now a standard tool for moving custom silicon.&lt;/p&gt;

&lt;p&gt;TSMC is reportedly weighing a multibillion-dollar Texas campus for more AI chips, beyond its Arizona buildout. AMD plans to acquire World Labs, which builds spatial-intelligence models that simulate interactive 3D environments for robotics, in an $8.2 billion all-stock deal expected to close by the end of 2026. Samsung Electro-Mechanics will invest about $4.9 billion to expand FCBGA substrate capacity for AI servers in South Korea and Vietnam.&lt;/p&gt;

&lt;p&gt;Power keeps showing up in chip news. South Korea and the United States are advancing a $22 billion, 6.47 GW gas-fired power project in Texas to serve chip plants and AI data centers. Infineon will supply silicon carbide devices for Eaton's solid-state transformer platform built for 800 VDC data center power. The 800-volt shift reduces conversion losses in dense AI racks, and suppliers are lining up parts for it now.&lt;/p&gt;

&lt;h3&gt;
  
  
  What this means for buyers
&lt;/h3&gt;

&lt;p&gt;Put the week's infrastructure news together and a pattern appears. The cost of AI is shifting from compute alone to compute plus memory plus power. Vendors that disclose cluster sizes, RL token rates, and serving hardware give buyers a better sense of what a model costs to run and how fast it will improve. Mistral and Reflection both published more training detail than most closed labs share. That transparency is part of the open-weight value proposition, and procurement teams should ask every provider for the same numbers.&lt;/p&gt;

&lt;p&gt;The other lesson is about timing. Memory contracts for 2027 are already mostly signed. Teams that need dedicated capacity next year should lock in plans now, and teams that rent capacity should expect prices to follow memory upward.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Layer Angle
&lt;/h2&gt;

&lt;p&gt;Three of this week's stories land squarely on the data platform. EmbeddingGemma 2 puts text, images, video, and audio into one 768-dimension space. That makes vector columns a normal part of analytical tables, not a side system. The open table and file formats are racing to catch up. On the Apache Parquet dev list this week, contributors debated whether a new &lt;code&gt;VECTOR&lt;/code&gt; type should guarantee finite elements, and Ryan Blue proposed shipping two types to settle it. Apache Iceberg started a dedicated sync on October 8 for its own vector type. Teams that plan to store embeddings in their lakehouse should follow both threads, because the outcome decides what readers and indexes can assume about those columns.&lt;/p&gt;

&lt;p&gt;Decision models fit the governed data layer too. A decision model needs clean, well-defined options and fields to choose from. That is exactly what a semantic layer provides. The Apache Ossie (incubating) community spent this week debating whether to define an MCP contract so agents can discover a semantic model and run governed queries against it. Put a decision model in front of that contract, and an agent can route a question to the right metric, check its arguments, and run it with a confidence score attached.&lt;/p&gt;

&lt;p&gt;The memory story ties back as well. When DRAM and NAND prices rise 10% to 20% in a quarter, the cost of keeping hot copies of data rises with them. Open formats on object storage, with engines that cache smartly, keep that cost in check. Moving compute to the data beats copying data into every new AI tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practitioner Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Plan for Mistral Large 4 weights at the end of October, and read the custom license before you commit to self-hosting.&lt;/li&gt;
&lt;li&gt;Put a decision model in your agent loop for routing, tool-argument checks, and output gating. Clef, Strands Decider, and Perplexity Decider all ship open weights.&lt;/li&gt;
&lt;li&gt;Audit pinned model IDs in Copilot and OpenAI configs. Several Gemini, Kimi, Claude, and GPT-5.x IDs retired or entered deprecation this week.&lt;/li&gt;
&lt;li&gt;Decide your text watermarking policy for EU users now. OpenAI and Anthropic ship different defaults.&lt;/li&gt;
&lt;li&gt;Measure the token cost of every MCP server you load. On-demand tool loading can save tens of thousands of tokens per session.&lt;/li&gt;
&lt;li&gt;Budget for higher memory and storage prices through 2027, and favor architectures that avoid duplicate copies of large datasets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to Watch Next Week
&lt;/h2&gt;

&lt;p&gt;OpenAI's Codex sprint promises a new improvement every day, so expect a steady stream of small changes and possibly a new model before the 28 days end. Reflection's Beam weights and technical report are due later in October, and Mistral's ML4 weights should follow by month end. On the infrastructure side, the OCP Global Summit runs October 12 to 15 in San Jose and SEMICON West runs October 13 to 15 in San Francisco, so look for rack, power, and optics announcements. On the standards side, watch whether more vendors adopt the Jev request format for decision models, and whether MCP clients copy Pi's on-demand tool loading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;The pace of change in AI rewards people who understand the fundamentals underneath the headlines. My books cover AI-assisted development, agentic analytics, open lakehouse architecture, and the economics of AI and work. Browse the full catalog at &lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt; and pick the one that matches what you are building next.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Stop Calling Everything Made With AI Slop</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Mon, 05 Oct 2026 14:36:35 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/stop-calling-everything-made-with-ai-slop-5c3e</link>
      <guid>https://dev.to/alexmercedcoder/stop-calling-everything-made-with-ai-slop-5c3e</guid>
      <description>&lt;p&gt;Scroll any comment section under a blog post, a video, or a song in 2026 and you will find the same two-word review. "AI slop." Sometimes the label fits. The post invents a statistic, the video melts into nonsense halfway through, or the article repeats the same empty point six times in slightly different words.&lt;/p&gt;

&lt;p&gt;Other times the label lands on work that is careful, accurate, and genuinely useful. Someone spent hours on the research, wrote pages of their own notes, argued with the draft, fixed what the model got wrong, and shipped something worth reading. A commenter spots a familiar phrase or a too-clean thumbnail and dismisses the whole thing in two words.&lt;/p&gt;

&lt;p&gt;I want to make a case that sounds simple but gets lost in the noise. Bad AI-assisted content is bad because it is bad, not because AI touched it. Good AI-assisted content exists, it takes real skill to make, and the only way anyone builds that skill is by using the tools often enough to get past the clumsy early stage.&lt;/p&gt;

&lt;p&gt;I have not been shy about how I work. I use AI heavily, mostly in areas where I already have deep knowledge, and I use it to move faster. I also make my mistakes in public, because public mistakes bring feedback, and feedback is how I get better. This article explains what slop actually is, why every creative tool goes through this same backlash, what I learned by doing it over and over, and how I think we should judge creative work from here on out.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Slop Actually Is
&lt;/h2&gt;

&lt;p&gt;The word has a real definition now. Merriam-Webster named "slop" its 2025 Word of the Year and defined it as digital content of low quality that is produced usually in quantity by means of artificial intelligence. Macquarie Dictionary picked "AI slop" as its word of the year too. The term earned its spot. The internet filled up with junk fast.&lt;/p&gt;

&lt;p&gt;Read the definition closely, though. "Low quality" sits right in the middle of it. Quality is the defining trait. AI is the usual production method, but the definition does not say every AI-produced thing is slop. It says slop is low-quality content, usually mass-produced with AI.&lt;/p&gt;

&lt;p&gt;That distinction matters, because a lot of people use the word to mean "anything I suspect involved a model." Those are two very different claims. One is a judgment about the work. The other is a guess about the workflow.&lt;/p&gt;

&lt;p&gt;So what puts something in the slop bin? I see three clear markers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It tries to misinform.&lt;/strong&gt; The content spreads false claims, fabricated quotes, fake sources, or invented events. Sometimes this is deliberate. Sometimes the creator just never checked. The result for the reader is the same.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It adds no value.&lt;/strong&gt; The piece says nothing a reader did not already know. It restates the obvious, pads the length, and leaves you with no new idea, no new skill, and no new perspective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It clearly was not reviewed.&lt;/strong&gt; The draft still contains the model's mistakes. You see broken references, contradictions between sections, hallucinated version numbers, and leftover phrases like "as an AI model" or "here is your blog post."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of these markers describes a failure of the creator, not the tool. A human writer with no AI at all can misinform, add nothing, and skip editing. We just had other names for that content before 2023. We called it content farm filler, clickbait, or spam.&lt;/p&gt;

&lt;p&gt;The volume is the new part. A content farm used to need a room full of underpaid writers. Now one person with a script can publish thousands of pages a day. Streaming service Deezer has reported that a large share of the music uploaded to its platform every day is fully AI-generated, at one point estimating about 28 percent of new uploads. That flood is real, and people have every right to be tired of it.&lt;/p&gt;

&lt;p&gt;But fatigue makes people sloppy judges. When the default reaction to any hint of AI is "slop," the label stops meaning "low quality." It starts meaning "made with a tool I disapprove of." That shift hurts the people who use these tools well, and it teaches newcomers that the right move is to hide their process instead of improving it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every Creative Tool Got This Reception
&lt;/h2&gt;

&lt;p&gt;The backlash against AI-assisted work feels new, but the pattern is old. Almost every tool that lowered the barrier to creative work got called cheating, fake, or the death of real art.&lt;/p&gt;

&lt;p&gt;Music has the cleanest example. In 1982, the UK Musicians' Union passed a motion to ban synthesizers, drum machines, and any electronic devices capable of recreating the sounds of conventional instruments. The union feared these machines threatened the jobs of session players. The motion came after Barry Manilow toured the UK using synths to simulate the sound of a big band orchestra.&lt;/p&gt;

&lt;p&gt;The ban went nowhere. Drum machines went on to shape hip-hop, house, and techno. Those genres did not replace older music. They added new music that did not exist before those instruments arrived. The union was right that the work was about to change. It was wrong that the change meant the end of real musicianship.&lt;/p&gt;

&lt;p&gt;Photo editing went through the same cycle. Adobe released Photoshop 1.0 in 1990. For years after, "photoshopped" worked as an insult. It meant fake, manipulated, dishonest. Today nearly every professional photo passes through editing software, and nobody accuses a wedding photographer of fraud for adjusting exposure. People still criticize manipulated images, and they should when the edit deceives. The criticism shifted from "you used the tool" to "you used the tool to lie."&lt;/p&gt;

&lt;p&gt;Digital audio workstations (DAWs) followed the same arc. A DAW is software for recording, editing, and arranging music on a computer. Tools like FL Studio, which started life as FruityLoops in the late 1990s, let a teenager with a laptop build tracks that once needed a studio, an engineer, and a band. Early bedroom producers got mocked for not playing "real" instruments. Some of those bedroom producers now headline festivals.&lt;/p&gt;

&lt;p&gt;I have picked up a lot of these tools over the years. Photoshop, FL Studio, Videoleap, and plenty more. I learned each one for the same reason: it let me make the ideas in my head real. AI tools are the latest entry on that list.&lt;/p&gt;

&lt;p&gt;Not every critic in these cycles was wrong. Some synth-heavy records from the 1980s really are thin. Plenty of early Photoshop work really was garish. Tools do get misused, especially early, when nobody has figured out the craft yet.&lt;/p&gt;

&lt;p&gt;Where the critics went wrong was the target. They judged the tool when they should have judged the output. Over time, the culture corrected. The tool stopped being the story, and the work became the story again. I expect the same correction for AI-assisted work. The only open question is how many capable creators we discourage before it happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using AI Well Is a Skill, and Skills Come From Reps
&lt;/h2&gt;

&lt;p&gt;Here is the part that gets lost in most arguments about AI content. Using these tools well is a skill, and it behaves like every other craft skill. You start out bad, you get feedback, you adjust, and you slowly get good.&lt;/p&gt;

&lt;p&gt;Nobody opens a DAW for the first time and mixes a radio-ready track. Nobody opens Photoshop and produces a clean composite on day one. The first hundred attempts teach you where the controls are. The next hundred teach you what good looks like. After that, you start to build taste and speed at the same time.&lt;/p&gt;

&lt;p&gt;AI tools work the same way. Your first AI-assisted blog post will probably read flat. Your first AI-generated image will have strange hands or warped text. Your first AI-assisted song will sound generic. That tells you that you are a beginner, which is exactly what everyone is at the start of any skill. It says very little about the ceiling of the tool.&lt;/p&gt;

&lt;p&gt;The people quickest to shame AI users often point to those beginner outputs as proof. "Look how bad this is." They are judging a first draft from a first-week user and treating it as the ceiling of the medium. Nobody judges guitar by listening to someone on their third lesson.&lt;/p&gt;

&lt;p&gt;My own practice looks like this. I mostly use AI in areas where I already know the material well. I have co-written books on Apache Iceberg and Apache Polaris and written another on architecting an Iceberg lakehouse. When a model drafts something in that territory, my expertise does the checking. The model does the typing, the first-pass research, and the structural grunt work.&lt;/p&gt;

&lt;p&gt;That pairing is where AI pays off the most. Expertise plus AI acceleration beats either one alone. An expert without AI moves slower. AI without an expert produces confident nonsense. The skill lives in the combination.&lt;/p&gt;

&lt;p&gt;The clearest example from my own work is my personal websites. I manage them myself with AI assistance. That work used to need a team of specialists: a web developer, a copyeditor, a graphic designer. Now I handle the full workflow on my own, end to end. At a larger scale, my plan is not a row of narrow specialists. I want a small team of generalists, each one owning complete workflows end to end with AI support, all pointed at a shared goal.&lt;/p&gt;

&lt;p&gt;None of that came free. I got there by doing the work over and over, and by doing it in public. I make mistakes in public without shame, because that is how I get the feedback and the lessons that let me improve quickly.&lt;/p&gt;

&lt;p&gt;This is why I push back when people say "just don't use AI until it's good." The tools keep getting better, but the person using them only gets better through practice. If you wait on the sidelines until the technology is perfect, you will show up with zero experience while everyone who practiced has years of instinct on you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Early Reps Taught Me About the "AI Meh" Feel
&lt;/h2&gt;

&lt;p&gt;Every heavy AI user eventually learns to recognize a certain texture. I call it the "AI meh" feel. The content is not wrong, exactly. It is grammatical, organized, and on topic. It is also forgettable. Readers sense it within a paragraph, even when they cannot name what bothers them.&lt;/p&gt;

&lt;p&gt;Learning what gives content that feel, and how to get rid of it, was one of the first lessons that came from doing this regularly.&lt;/p&gt;

&lt;p&gt;The meh feel tends to come from a handful of habits that language models fall into when nobody steers them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generic openings.&lt;/strong&gt; Models love to open with a broad statement about how fast the world changes or how important a topic has become. Readers skip these lines automatically. A strong opening starts with a concrete problem the reader recognizes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filler transitions.&lt;/strong&gt; Stiff, formal connector words pile up at the start of sentences in AI drafts. They make prose sound formal while carrying no meaning. The same goes for phrases that announce importance instead of demonstrating it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rhythm lists.&lt;/strong&gt; Models reach for groups of three adjectives because the rhythm sounds polished. After a few paragraphs, the pattern becomes obvious, and the reader starts to tune out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hedging.&lt;/strong&gt; Unsteered drafts qualify everything. Every claim gets a softener in front of it. The result reads as if nobody stands behind any of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing opinion.&lt;/strong&gt; This one matters most. A model with no direction defaults to a balanced summary of every side. Balanced summaries have their place, but they have no voice. Readers come back to creators because those creators see things a certain way.&lt;/p&gt;

&lt;p&gt;I keep a list of style rules and banned words for anything written in my voice. No em dashes. No stacked formal transitions. No hedge words in the body of the piece. Active voice. Short paragraphs. Concrete numbers over vague claims of size. Those rules go to the model as part of the instructions whenever it drafts in my voice.&lt;/p&gt;

&lt;p&gt;Rules only fix the surface, though. The deeper fix for the meh feel is input. A model drafts flat content when it has nothing specific to work with. Give it a generic prompt and you get the average of everything it has read. Give it your specific angle, your notes, your opinions, and the examples you actually care about, and the draft starts to sound like a person with a point of view.&lt;/p&gt;

&lt;p&gt;This article is a good example. It started with a long set of notes in my own words. Every argument in it, every example, every opinion came from those notes. The model helped organize the material, expand it, and tighten it against my style rules. The thinking is mine. The acceleration came from the tool.&lt;/p&gt;

&lt;p&gt;That is the real difference between slop and skilled AI-assisted work. Slop starts with a topic. Skilled work starts with a point of view.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verifying Efficiently: Know Where the Model Breaks
&lt;/h2&gt;

&lt;p&gt;The second big lesson from the early reps was about review. Beginners tend to make one of two mistakes. Some skip review entirely and publish whatever the model gives them. That is how slop gets made. Others review every sentence with equal suspicion, which takes so long that the AI saves them no time at all.&lt;/p&gt;

&lt;p&gt;Efficient review means knowing where the model is strong and where it is weak, then spending your attention where the weaknesses live. A good editor already works this way with human writers. You learn which writer mangles dates and which one overstates conclusions, and you read their drafts with that in mind.&lt;/p&gt;

&lt;p&gt;Language models have fairly predictable weak spots. Here is how I think about the split.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6k67cvy3njcq48w2v9a5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6k67cvy3njcq48w2v9a5.png" alt="Language models have fairly predictable weak spots. Here is how I think about the split." width="669" height="793"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That last row deserves extra attention. An unsteered model writing in your voice will happily invent a conference you never attended or a customer you never met. Those fake stories read well, which makes them dangerous. I have a standing rule that no anecdote appears in my content unless it actually happened to me. The model does not get to make up my life.&lt;/p&gt;

&lt;p&gt;Review also gets faster when you automate the mechanical parts. My style rules are specific enough to check with a script. Here is a version of the verification pass for my long-form drafts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;F&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;article.md

&lt;span class="c"&gt;# Word count: long-form pieces need to clear 6,000 words&lt;/span&gt;
&lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Em dashes and en dashes: must return nothing&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-nE&lt;/span&gt; &lt;span class="s1"&gt;'—|–'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Semicolons: must return nothing outside code blocks&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s1"&gt;';'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Banned vocabulary sweep: the words that make prose read like a template&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-niE&lt;/span&gt; &lt;span class="s1"&gt;'\b(delve|leverag|seamless|paradigm|synergy|holistic|robust|unlock|realm|tapestry|testament|embark|myriad|plethora|pivotal|transformative|bespoke|curated|meticulous|elevate|empower|streamline|foster)\w*'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Hedging modals: claims get stated plainly or not at all&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-niE&lt;/span&gt; &lt;span class="s1"&gt;'\b(might|could|would|may) '&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Call to action present&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s1"&gt;'books.alexmerced.com'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$F&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is what each part does and why it exists.&lt;/p&gt;

&lt;p&gt;The first line sets a variable named &lt;code&gt;F&lt;/code&gt; to the file path, so every later command checks the same file without retyping the name.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;wc -w&lt;/code&gt; command counts words. Long-form pieces have a target length, and models often land short when asked for a long draft in one pass. A word count catches that right away, before anyone spends time reading a draft that needs more material anyway.&lt;/p&gt;

&lt;p&gt;The dash check uses &lt;code&gt;grep -nE&lt;/code&gt; with a pattern that matches either an em dash or an en dash. The &lt;code&gt;-n&lt;/code&gt; flag prints line numbers, so each hit is easy to find. Models lean on em dashes heavily, and a page full of them is one of the fastest tells of unedited AI prose.&lt;/p&gt;

&lt;p&gt;The semicolon check works the same way. My style rules keep semicolons out of prose, so the only acceptable hits are inside code blocks.&lt;/p&gt;

&lt;p&gt;The vocabulary sweep uses &lt;code&gt;-i&lt;/code&gt; for case-insensitive matching and &lt;code&gt;\b&lt;/code&gt; for word boundaries, so one stem catches every form of a word, capitalized or not. Every word on that list is technically fine English. The problem is frequency. Models reach for these words far more often than people do, and a reader who sees three of them in a paragraph stops trusting the writing.&lt;/p&gt;

&lt;p&gt;The hedging check looks for soft modal verbs followed by a space. The goal is plain claims. If a claim is true, state it. If it holds only under certain conditions, name the conditions.&lt;/p&gt;

&lt;p&gt;The last line confirms the call to action made it into the final draft. That sounds trivial, but when a model rewrites a closing section, the link sometimes disappears.&lt;/p&gt;

&lt;p&gt;None of this replaces reading the piece. The script handles the mechanical checks in about a second, which frees my attention for the parts only a human expert can judge. Is the argument right? Is the technical claim accurate? Does this say something worth saying?&lt;/p&gt;

&lt;p&gt;That division of labor is the whole point. The machine checks the machine-checkable. I check the meaning.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Flow Changes With the Model, the Tool, and the Medium
&lt;/h2&gt;

&lt;p&gt;Once you have a process that works, it is tempting to treat it as finished. It never is. My workflow shifts every time one of three things changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The model.&lt;/strong&gt; Different models have different habits. One model leans on certain phrases, while another pads its output with summaries at the end of every section. One is more likely to invent citations, another is more cautious but more generic. When I switch models, my review checklist shifts with it. The weak spots in the table above hold up broadly, but the details move.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The tool around the model.&lt;/strong&gt; The same model behaves differently depending on the app or agent setup wrapped around it. A chat window, a coding agent with file access, and a writing tool with a custom style guide all produce different results. Some setups let the model search the web, which helps with current facts but introduces new risks around sources. Others let the model run code, which helps with verification. Learning what each setup is good at is its own skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The medium.&lt;/strong&gt; Writing, video, and music each have their own failure modes. In writing, the risk is factual errors and the meh feel. In video, it is visual consistency from shot to shot, characters whose faces drift, and motion that breaks physics in distracting ways. In music, it is generic arrangements, muddy mixes, and lyrics that rhyme without saying anything.&lt;/p&gt;

&lt;p&gt;Each medium needs its own review habits. For an article, review targets facts and voice. For a video, it targets continuity from shot to shot, and anything that breaks the illusion gets cut. For a song, it targets the moments where the arrangement goes on autopilot.&lt;/p&gt;

&lt;p&gt;The underlying pattern stays the same across all three. You learn where the tool is reliable. You learn where it fails. You put your effort where the failures are. And the only way to build that map is to make a lot of things and pay attention to what goes wrong.&lt;/p&gt;

&lt;p&gt;This is also why one attempt, years ago, is a weak basis for deciding AI is useless. The tools they tried are gone. The models changed, the setups changed, and the outputs changed. More to the point, they never built the map. One try tells you almost nothing about what a practiced user can do.&lt;/p&gt;

&lt;h2&gt;
  
  
  "If AI Wrote It, Why Should I Read It?"
&lt;/h2&gt;

&lt;p&gt;This is a common objection, and it deserves a real answer. The argument goes like this. If a machine wrote the piece, the writer put in no effort, so the reader owes it no attention. Why spend my time on something nobody bothered to write?&lt;/p&gt;

&lt;p&gt;The objection rests on an assumption that the person contributed nothing. For slop, that assumption is usually correct. Someone typed a topic into a box, copied the output, and hit publish. There is no person in that content, so there is nothing of a person to read.&lt;/p&gt;

&lt;p&gt;Skilled AI-assisted work is different. The creator puts themselves into the piece at every stage that matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The angle.&lt;/strong&gt; Before any drafting happens, someone decides what the piece argues. A model left alone writes the average take. A creator with a point of view picks the specific claim, the counterintuitive framing, or the uncomfortable truth that makes the piece worth reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The research.&lt;/strong&gt; Someone decides which sources to trust, which facts to verify, and which examples best support the point. Those choices shape the piece as much as any sentence does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The notes.&lt;/strong&gt; Strong AI-assisted pieces start with the creator's own notes. Those notes hold their opinions, their reflections, the wisdom they have built up, and the arguments they want to make. Those notes are the raw material. The model shapes them. It does not invent them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The judgment.&lt;/strong&gt; Someone reads the draft, rejects what is wrong, pushes back on what is weak, and decides when the piece is done. That editorial judgment is a creative act. Film directors do not operate every camera, and nobody says their films lack a creator.&lt;/p&gt;

&lt;p&gt;When all four are present, the reader gets the creator's thinking, delivered faster than typing it alone. That is a good deal for the reader.&lt;/p&gt;

&lt;p&gt;There is a second half to this objection worth answering. People say, "If AI wrote it, why should I read it? I can just ask AI." Fair enough. Ask AI to help you read it, then. Ask a model to summarize a long piece, pull out the key claims, or explain a section you found confusing.&lt;/p&gt;

&lt;p&gt;Reading can be AI-assisted the same way writing can. There is no shame in that. A dense technical article is a lot more approachable when you can ask follow-up questions about it. Using AI to read does not mean the piece should not have been written. It means the reader found a faster way into it.&lt;/p&gt;

&lt;p&gt;The piece still had to exist. Somebody still had to choose the argument, gather the evidence, and stand behind the conclusions. A model summarizing an article you never wrote has nothing to summarize.&lt;/p&gt;

&lt;p&gt;And there is real pleasure in reading something slowly, on your own, with no assistance at all. Some books deserve your full, unassisted attention. Neither approach is the correct one. Both are tools a reader can pick up depending on what they want from the experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Good Looks Like
&lt;/h2&gt;

&lt;p&gt;Arguments are easier to evaluate with examples, so here are two. One comes from a creator whose work shows what this technology can do. The other comes from my own music.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gossip Goblin
&lt;/h3&gt;

&lt;p&gt;The filmmaker Zack London, known online as Gossip Goblin, makes dark, strange science fiction short films with AI video tools. His channel has passed 1.4 million subscribers and more than a billion total views. His first feature-length film, an anthology called &lt;em&gt;Gods Don't Give Gifts&lt;/em&gt;, was scheduled to open in several hundred U.S. theaters on October 30, 2026, produced with the studio Fable.&lt;/p&gt;

&lt;p&gt;What makes his work relevant to this argument is how much human effort goes into it. London has said his feature still needed a human-written script, a dozen voice actors, and a post-production crew. Reporting on the feature describes a team of 10 artists working on it over two months. His process starts with a script, then builds every shot from a still image generated in Midjourney, refined in other tools, and only then animated into video. That is a slower, more hands-on pipeline than the one-click generation most people picture.&lt;/p&gt;

&lt;p&gt;London has also said plainly that AI is a tool for him and not the point. It gave him access to filmmaking without replacing crafts he already valued, like illustration. His shorts do not hide the strangeness of the medium. They lean into it and build a recognizable visual style from it.&lt;/p&gt;

&lt;p&gt;You do not have to like his films. Taste is personal. But nobody watching his work in good faith calls it low effort. It has a vision, a consistent world, and a recognizable voice. Those are the things that separate art from filler in any medium. AI did not supply them. London did.&lt;/p&gt;

&lt;h3&gt;
  
  
  My old acoustic recordings
&lt;/h3&gt;

&lt;p&gt;The second example is smaller and more personal. I have old acoustic recordings from my younger days. They hold my effort and my vision from that time.&lt;/p&gt;

&lt;p&gt;Suno is an AI music platform, and one of its features lets you upload your own audio and generate a new version in a different style while keeping the original melody. My old acoustic recordings have become the seeds for full productions.&lt;/p&gt;

&lt;p&gt;The songwriting, the melodies, and the emotional core come from my younger self. The production comes from a tool that did not exist back then. Neither approach makes these songs alone, and the result is a fun bridge between two versions of me.&lt;/p&gt;

&lt;p&gt;Is that slop? Run it through the three markers. It does not misinform anyone. It adds value by finishing work that started years ago. And the review test comes down to keeping the versions that serve the song and tossing the ones that miss. By the definition that matters, it is not slop. It is a creative project that uses a new tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  There Is Room for Both Markets
&lt;/h2&gt;

&lt;p&gt;I want to be clear about one thing. I am not arguing that all content should be AI-assisted. I do not think that, and I do not want that.&lt;/p&gt;

&lt;p&gt;There will be a strong market for creators who make everything without AI, and there should be. Some audiences care deeply about knowing that a human did every step. That preference is valid, and the market already serves it. Bandcamp, the music platform popular with independent artists, announced in January 2026 that it no longer allows music generated wholly or in substantial part by AI. The company framed the policy as a way to keep its community human. That is a reasonable choice for a platform, and it gives listeners who want fully human music a clear place to find it.&lt;/p&gt;

&lt;p&gt;Handmade work has always held value next to manufactured work. Hand-thrown pottery sells alongside factory dishware. Film photography survives next to digital cameras. Live acoustic sets still draw crowds in a world full of programmed beats. Those markets did not vanish when the faster tool arrived. They found their audience, and the handmade quality became a feature people choose on purpose.&lt;/p&gt;

&lt;p&gt;The same thing will happen with writing, video, and music. Some creators will advertise that they use no AI, and some audiences will seek them out. Other creators will use AI heavily and openly, and their audiences will care about the output, not the process.&lt;/p&gt;

&lt;p&gt;What I push back on is the idea that one camp gets to define the other as illegitimate. The human-only creator is not a dinosaur. The AI-assisted creator is not a fraud. They are making different choices about tools, and both can produce excellent work or terrible work.&lt;/p&gt;

&lt;p&gt;Every major creative technology eventually settles into some balance between efficiency and quality. Photoshop did not make every photo fake. DAWs did not make every song soulless. The balance point took years of experimentation, curiosity, and a lot of bad early work to find. AI-assisted creation is in that experimentation phase right now. The people who will find the balance point are the ones willing to practice in the open.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Practice Without Publishing Slop
&lt;/h2&gt;

&lt;p&gt;If you are early in using AI for creative work, the advice to "just do it a lot" needs some guardrails. Practice should not mean flooding the internet with weak drafts. Here is how I think about building the skill responsibly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start where you are already an expert.&lt;/strong&gt; Use AI first in a subject you know cold. Your knowledge acts as a built-in fact checker. You will catch the model's errors quickly, and you will learn its failure patterns faster because you can see them. Using AI in a field you do not understand is how people publish confident mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify against primary sources.&lt;/strong&gt; When a draft cites a release date, a feature, a quote, or a number, check it against the original source. That means the official documentation, the project's release notes, the dictionary entry, or the article that first reported the claim. Secondhand summaries repeat each other's errors, and models blend them together. A habit of going to the original catches most factual mistakes before they reach a reader, and it gets faster as you learn which sources hold up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write your notes before you prompt.&lt;/strong&gt; Spend 15 minutes writing down what you actually think about the topic. Your opinions, your examples, the arguments you want to make, the mistakes you see other people making. Feed those notes to the model. The difference in output quality between "write about X" and "here are my notes on X, shape them into an article" is enormous.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep a running list of what goes wrong.&lt;/strong&gt; Every time a model makes a mistake you catch, write it down. Wrong dates, invented quotes, repeated phrases, weak openings. After a few dozen pieces, that list becomes your review checklist. It tells you exactly where to look, which is how review gets faster over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn your style into rules.&lt;/strong&gt; If you notice yourself fixing the same pattern over and over, write a rule for it and give the rule to the model up front. Then check the rule with a script where you can. My own banned-word list and verification script are examples of this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Publish less than you generate.&lt;/strong&gt; The ability to produce a lot does not mean you should publish a lot. Generate ten drafts, publish the one that says something. Volume is the defining trait of slop. Selectivity is the defining trait of craft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be open about your process.&lt;/strong&gt; Hiding AI use creates a trust problem when people find out. Being open about it lets you get honest feedback on the work itself. I talk about how I use AI because the feedback makes me better, and because I think the conversation about these tools needs more practitioners sharing real workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Take criticism of the work seriously and criticism of the tool lightly.&lt;/strong&gt; When someone says a claim is wrong or a section is weak, that is gold. Fix it. When someone says "AI slop" with no further detail, there is usually nothing to act on. Check whether your piece hits any of the three slop markers. If it does not, move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Judge the Work, Not the Workflow
&lt;/h2&gt;

&lt;p&gt;So how should we judge creative work now that AI is part of so many workflows? The same way we judged it before. Look at the output and ask the questions that always mattered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is it accurate?&lt;/strong&gt; Does it state true things? Are its sources real? Do its numbers hold up? A piece full of errors fails this test whether a human or a model introduced the errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it add value?&lt;/strong&gt; Did you learn something, feel something, or see something in a new way? Content that leaves you exactly where you started has failed, no matter how it was made.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it have a point of view?&lt;/strong&gt; Can you tell what the creator thinks? Is there a specific argument, a specific style, or a specific vision behind it? Work with a clear voice behind it is almost never slop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was it cared for?&lt;/strong&gt; Do the details hold together? Are the rough edges sanded down? Does it feel finished? Care shows up in the work, and its absence shows up too.&lt;/p&gt;

&lt;p&gt;Notice that none of these questions asks what tools the creator used. That is deliberate. We do not grade a novel by whether the author used a typewriter or a laptop. We do not grade a song by whether the drums came from a kit or a drum machine. We do not grade a photo by whether it passed through editing software. We grade the result.&lt;/p&gt;

&lt;p&gt;These questions also work in both directions. They catch slop made with AI, and they catch lazy work made without it. A handwritten article full of errors fails the accuracy test. A fully human song with nothing to say fails the value test. The standard stays the same no matter which tools sit in the workflow.&lt;/p&gt;

&lt;p&gt;AI-assisted work deserves the same standard. Hold it to a high bar. Call out errors. Call out empty content. Call out work that clearly never got a human review. Those criticisms help everyone.&lt;/p&gt;

&lt;p&gt;But when a piece is accurate, valuable, distinctive, and carefully made, the presence of AI in the workflow counts as a production detail, the same way the choice of camera or DAW is a production detail. Something that adds real value, AI or not, still required skill, vision, and determination to make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Slop is real, and I share the frustration with it. Content that misinforms, adds nothing, and skips review makes the internet worse, and people are right to call it out. The dictionary even gave us a word for it, and the definition puts low quality at the center.&lt;/p&gt;

&lt;p&gt;But the word has drifted. Too many people now use "slop" to mean "made with AI," and that shift punishes the wrong people. It discourages beginners from practicing a skill that only improves with practice. It pressures experienced creators to hide their process instead of sharing what they learned. And it confuses a judgment about a workflow with a judgment about the work.&lt;/p&gt;

&lt;p&gt;My own path has been simple. I learn whatever tool lets me make the things I picture in my head. Photoshop, Videoleap, FL Studio, and now a range of AI tools. Each one made me more versatile. I learn in public and make my mistakes in public on purpose, because public mistakes bring the fastest lessons, and I am proud of what that approach has let me build.&lt;/p&gt;

&lt;p&gt;If you want to criticize AI-assisted work, criticize it on the merits. Point to the wrong fact, the empty argument, the missing review. If you want to make AI-assisted work, put yourself into it. Bring your angle, your notes, your judgment, and your willingness to throw away drafts that do not meet the bar.&lt;/p&gt;

&lt;p&gt;Judge creators by the quality and value of what they make, the way we judge creators in every other medium. That standard worked for photography, for synthesizers, and for the bedroom producer with a laptop and a DAW. It will work for this too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Going
&lt;/h2&gt;

&lt;p&gt;If this piece was useful, I have written a lot more on how AI is changing the way people work. My book on AI and labor economics covers the economic side of this shift, and you can find it at &lt;a href="https://a.co/d/06SeOKw8" rel="noopener noreferrer"&gt;a.co/d/06SeOKw8&lt;/a&gt;. You can find every book I have written, across lakehouse architecture, Apache Iceberg, Apache Polaris, and AI, at &lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Apache Data Lakehouse Weekly: September 23 to 30, 2026</title>
      <dc:creator>Alex Merced</dc:creator>
      <pubDate>Wed, 30 Sep 2026 13:57:19 +0000</pubDate>
      <link>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-september-23-to-30-2026-3lj2</link>
      <guid>https://dev.to/alexmercedcoder/apache-data-lakehouse-weekly-september-23-to-30-2026-3lj2</guid>
      <description>&lt;p&gt;Release week. Apache Iceberg 1.12.0 passed its vote after a license audit sank the first candidate, Apache Polaris shipped 1.8.0 with a security fix inside it, and Iceberg C++ 0.4.0 went out the door. Under the release traffic sat a quieter theme that ran through every list. Specs are getting stricter about what they promise. Iceberg voted to forbid new equality deletes in v4. Parquet argued over whether a vector type should reject NaN. Ossie asked what a column name in a metric expression points to. Polaris debated whether a config field should be an enum or free text. Each thread is a fight about contracts, and each one ends with a narrower, more checkable promise to the engines that read these formats.&lt;/p&gt;

&lt;p&gt;This issue covers roughly 380 messages across the Iceberg, Polaris, Arrow, Parquet, DataFusion and Ossie dev lists between September 23 and September 30.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Iceberg
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Iceberg 1.12.0 passes on the second try
&lt;/h3&gt;

&lt;p&gt;Neelesh Salian ran the 1.12.0 release, and it took two candidates to land. The &lt;a href="https://lists.apache.org/thread/vpoplv96vcyxtzwq7vonc90sy33qcqj9" rel="noopener noreferrer"&gt;RC1 vote&lt;/a&gt; drew early +1s from Alex Dutra, Gianluca Graziadei and Szehon Ho. Then Kurtis Wright posted a -1 with a disclaimer at the top: he had prompted Claude to audit every license in the candidate. The audit found that the GCP bundle jar shipped Caffeine with no entry in its LICENSE file. Kevin Liu followed up with his own table of gaps and found a second one around Jackson's FastDoubleParser. Jean-Baptiste Onofré cast a -1 on the same grounds. Neelesh sorted each report, landed the fixes, and pulled in Gianluca's patch for a variant-column &lt;code&gt;NoSuchMethodError&lt;/code&gt; that hit clusters with older commons-lang3 jars.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/l8gjs6z1ocfd70hv6dj923s7p9qm0w77" rel="noopener noreferrer"&gt;RC2 vote&lt;/a&gt; opened on September 25. Neelesh stretched the window to Tuesday afternoon to cover the weekend. It had one scare. Huaxin Gao pointed out that the staging repository had no Spark 4.2 artifacts, even though the source tree, CI matrix and Gradle defaults all pointed at 4.2. Amogh Jahagirdar agreed a new RC looked necessary. Russell Spitzer then asked why an earlier PR had excluded 4.2 from convenience binaries on purpose. Amogh found the older thread. The community had held back 4.2 binaries while Spark's own APIs kept moving. Huaxin withdrew the alarm and voted +1 with a note that every RC1 license gap was closed in the jars themselves.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/ychjvqbmt7ksmczhct3mnw8j3yowwbcr" rel="noopener noreferrer"&gt;result&lt;/a&gt; came in on September 29: four binding +1s from Russell Spitzer, Kevin Liu, Szehon Ho and Amogh Jahagirdar, and ten non-binding +1s. Two details stood out in the votes. Kevin ran an agent over the repository looking for correctness bugs and flagged a handful of issues that also exist in 1.11. He called them non-blockers and listed them for triage. Kurtis came back with a second AI-assisted pass, this time labeled as the output of an agent skill built for checking open source release candidates. Release verification is turning into a place where contributors point agents at tedious, rule-driven work and then sign their names to the result.&lt;/p&gt;

&lt;p&gt;The CI side of the release had its own story. Steven Wu &lt;a href="https://lists.apache.org/thread/385j2js884o2vct31n775kt7m49jm4sn" rel="noopener noreferrer"&gt;asked where the MinIO replacement stood&lt;/a&gt; after Kafka Connect integration tests failed on the MinIO container. Neelesh opened a tracking issue and a stopgap PR. Within a few hours Kevin reported that the switch was done across every Iceberg repository, crediting Sreesh for the work. Amogh later noted that he ran the RC2 integration tests against RustFS. The S3 test backend for the project is now a Rust implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  v4 forbids new equality deletes
&lt;/h3&gt;

&lt;p&gt;Huaxin Gao called a &lt;a href="https://lists.apache.org/thread/2pgfvf8v5ob221q5t2xwzjo4xvw5ltz1" rel="noopener noreferrer"&gt;spec vote on PR #17783&lt;/a&gt;. The direction was already settled in July: v4 writers must not produce new equality deletes, readers still apply existing ones from v2 and v3 tables, and an upgrade stays metadata-only. This vote covered the exact spec wording. Russell Spitzer questioned whether a second vote was needed at all, then voted +1 anyway. Ryan Blue said the point was to affirm the decision and merge it. Anoop Johnson said the change simplifies the v4 design a lot. The vote passed with four binding +1s from Russell, Yufei Gu, Steven Wu and Ryan, plus five non-binding. Huaxin will merge the PR and follow up with a separate change that restructures how the spec presents deletion vectors next to the legacy delete formats.&lt;/p&gt;

&lt;p&gt;This is the most consequential spec change of the month for engine builders. Equality deletes let streaming writers such as Flink record "delete the row where id = 7" without reading the table first. They also push work onto every reader, which has to join the delete file against data files at scan time. v4 closes that door for new writes. Streaming pipelines that rely on equality deletes need a plan for deletion vectors before they adopt v4.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who controls access: the delegation header debate
&lt;/h3&gt;

&lt;p&gt;A thread that started in Polaris landed on the Iceberg list. youngrae kim &lt;a href="https://lists.apache.org/thread/6zspb6cpb6j2po5lm57mq1sgcp2hppkf" rel="noopener noreferrer"&gt;asked what a REST server should do&lt;/a&gt; when a client sends &lt;code&gt;X-Iceberg-Access-Delegation&lt;/code&gt; but the server can satisfy none of the requested mechanisms. Picture vended credentials against an S3-compatible store with no STS, or remote signing on a server that does not implement it. Polaris returns HTTP 400. The spec says the server can supply access through any or none of the requested mechanisms.&lt;/p&gt;

&lt;p&gt;Alex Dutra proposed spec wording that favors failing fast, and Yufei Gu agreed. Daniel Weeks, who wrote much of the REST spec, disagreed with the framing. His argument was that the catalog should be the sole authority on access, and security around physical data should not be a negotiation between client and server. The loose wording was deliberate. It lets a catalog return credentials or remote signing config, or return metadata only, without the spec forcing its hand. Alex countered that the header cannot express a common client capability, which is using the client's own storage credentials and skipping delegation entirely.&lt;/p&gt;

&lt;p&gt;youngrae closed the loop on September 29. Polaris will keep its 400 as a documented implementation choice. The remaining ask is narrow: one sentence in the spec that says whether the header is a capability statement or a requirement, and what an absent header means. That clarification leaves the catalog's decisions untouched. It only tells clients and servers how to read the signal.&lt;/p&gt;

&lt;p&gt;A related effort moved forward. Sung Yun and Prashant Singh had been &lt;a href="https://lists.apache.org/thread/465y1l88hkrwkv39r8b84xwsl7f19kpg" rel="noopener noreferrer"&gt;discussing access delegation for the FILE type&lt;/a&gt;, where a governed table references files that engines need to read directly. Sung reported that the two of them &lt;a href="https://lists.apache.org/thread/g8h048zdjfvdojfvo4xtykw0y3mfoy5k" rel="noopener noreferrer"&gt;converged their proposals onto PR #18080&lt;/a&gt;, which now carries the optional request and response parameters from both drafts. Steven Wu also announced that the Thursday biweekly sync &lt;a href="https://lists.apache.org/thread/k3ncg4j27mpfqcm57px8goc0ox8rvdlp" rel="noopener noreferrer"&gt;will cover both the File and Vector types&lt;/a&gt; starting October 8. He said the File type discussion is close to consensus, so more of the time will go to the Vector type design doc from Yan Yan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Labels, SQL, and the agent-shaped consumer
&lt;/h3&gt;

&lt;p&gt;Labels landed in the REST spec recently. A catalog can now attach object-level and field-level labels to a load-table response. Andrei Tserakhau &lt;a href="https://lists.apache.org/thread/hrcyh8nqf1svrwnm279n466c75r3wwxn" rel="noopener noreferrer"&gt;asked whether Iceberg should expose them&lt;/a&gt; as a &lt;code&gt;.labels&lt;/code&gt; metadata table. Péter Váry had raised the underlying issue in review. Every metadata table today derives from table metadata. A &lt;code&gt;.labels&lt;/code&gt; table carries catalog-owned data that varies by catalog and can be empty.&lt;/p&gt;

&lt;p&gt;Ryan Blue questioned the premise that labels need a SQL surface at all. He saw them as context for engines, such as cost attribution logs or attaching an engine policy to a table. Andrei answered that some consumers only speak SQL. He named governance tooling and, specifically, LLM agents that explore a warehouse by writing queries. Péter argued that the proposed uses turn labels into full table metadata, which contradicts the read-path design that treats them as a current view with no persistence guarantees. Ryan then took apart Andrei's cost-attribution example. The sample query joined &lt;code&gt;.labels&lt;/code&gt; to &lt;code&gt;.files&lt;/code&gt; with no ON clause, which produced a cartesian join that only looked right because the filter selected one label.&lt;/p&gt;

&lt;p&gt;Andrei conceded the join argument and pointed to an alternative. PR #18049 surfaces object and field labels through &lt;code&gt;DESCRIBE&lt;/code&gt;, which gives SQL-only consumers, agents included, a way to see labels without a new metadata table. The metadata table is parked until someone shows a use case that needs joins. The episode is worth noting. "An AI agent needs to read this" showed up as a design argument on the Iceberg list, and the community answered it with the smallest surface that works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Encryption keys move closer to the files they protect
&lt;/h3&gt;

&lt;p&gt;Gábor Kaszab &lt;a href="https://lists.apache.org/thread/38rkthkr1fg0s86493fjq755cnl3y90s" rel="noopener noreferrer"&gt;reopened the design of encryption key storage&lt;/a&gt;. Today table metadata carries an &lt;code&gt;encryption-keys&lt;/code&gt; list that holds both data encryption keys for manifest lists and the key encryption keys that wrap them. Gábor wants to extend encryption to statistics files and v4 root manifests. His proposal stores each file's wrapped key directly in the metadata entry for that file, one key per file. KEKs stay in the shared list and are still referenced by &lt;code&gt;key-id&lt;/code&gt;. The spec draft for statistics files lives in PR #17533.&lt;/p&gt;

&lt;p&gt;Gidon Gershinsky agreed the DEK metadata belongs in per-file structures in v4. He added that reusing a DEK across files is possible but requires careful handling to avoid breaking AES-GCM, so the practical rule is a fresh random DEK per file. Xander Bailey wanted the one-key-per-file rule stated explicitly and asked for a common wrapped-key structure across file types, so implementations share code. Gábor's closing argument was about cleanup. With keys in a shared list, every new encrypted file type needs its own cleanup trigger when the file is dereferenced. With keys stored inline, the key disappears with the file. Xander found the argument convincing and asked for a Java draft. Gábor wants the design settled first. Xander also &lt;a href="https://lists.apache.org/thread/bjztsshokns59lzrmny6szlvk7vk2o6c" rel="noopener noreferrer"&gt;proposed a recurring encryption community sync&lt;/a&gt; to cover client library work, the KMS vending spec and v4 changes together.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smaller spec decisions
&lt;/h3&gt;

&lt;p&gt;rahul mahadev &lt;a href="https://lists.apache.org/thread/79b5p9pfjso9d8tbs1w10619qz61rt85" rel="noopener noreferrer"&gt;called a vote on a standard User-Agent format&lt;/a&gt; for REST clients. The format lists products from most specific to least, such as &lt;code&gt;Spark/4.0.0 iceberg-spark/1.9.0 iceberg-java/1.9.0 (scala 2.13.16)&lt;/code&gt;. The Iceberg library token must appear when the header is sent. Servers must not reject requests based on it. Xuanwo liked that the header stays separate from authentication and capability negotiation. Alex Dutra left more PR comments to resolve before the vote proceeds.&lt;/p&gt;

&lt;p&gt;Eduard Tudenhöfner &lt;a href="https://lists.apache.org/thread/8f91nk08cq2pxtsdpf1o34ktthn7jcwk" rel="noopener noreferrer"&gt;announced a rename&lt;/a&gt; in the new content stats: &lt;code&gt;avg_value_size_in_bytes&lt;/code&gt; becomes &lt;code&gt;total_bytes&lt;/code&gt; in PR #18308. Averages do not aggregate cleanly across files. Totals do. Daniel Weeks confirmed that the average is still recoverable from &lt;code&gt;total_bytes&lt;/code&gt; and &lt;code&gt;value_count&lt;/code&gt;, and noted that a total gives planners an explicit upper bound for size estimates. Ryan Blue gave a +1.&lt;/p&gt;

&lt;p&gt;Shawn Chang &lt;a href="https://lists.apache.org/thread/8zq10wdsz5rx8v35zgon24r4gnsjsv9h" rel="noopener noreferrer"&gt;asked why the index spec requires&lt;/a&gt; region files to be globally ordered and non-overlapping, given the write amplification and maintenance cost. Péter Váry explained the target. Once index metadata is cached, a single-key lookup should cost one small file read. Overlapping regions force readers to consult several files and reconcile results, and on object storage every extra file read adds latency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Releases beyond Java
&lt;/h3&gt;

&lt;p&gt;Manu Zhang &lt;a href="https://lists.apache.org/thread/lndrr0yn3l2pt7o72wfn2d9ssvhn5ho1" rel="noopener noreferrer"&gt;announced Iceberg C++ 0.4.0&lt;/a&gt; on September 26. The &lt;a href="https://lists.apache.org/thread/3t8r0gnm1pd8omrkdmd0yldq1phqm8dc" rel="noopener noreferrer"&gt;vote&lt;/a&gt; passed with binding support from Gang Wu, Renjie Liu and Kevin Liu. Renjie's verification ran 4,152 individual tests across 19 test executables and exercised REST and SQL catalog support, including a SQLite catalog run. Xuanwo suggested a LICENSE path fix for the MurmurHash3 files, and Manu opened an issue for the next release.&lt;/p&gt;

&lt;p&gt;Matt Topol &lt;a href="https://lists.apache.org/thread/18mcytdbd953cdwz5wsvzx6sbqzsvofh" rel="noopener noreferrer"&gt;opened the vote for Iceberg Go v0.7.0&lt;/a&gt; on September 28. Neelesh Salian, Andrei Tserakhau and Xuanwo voted +1. Xuanwo ran 3,344 tests on Go 1.25.9 and saw one Puffin checksum assertion fail on Go 1.27.1. The code still rejected the corrupted input, so he called it non-blocking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community and housekeeping
&lt;/h3&gt;

&lt;p&gt;Robin Moffatt &lt;a href="https://lists.apache.org/thread/l5c1bjl252310x5xg1holrzovm3r9v8p" rel="noopener noreferrer"&gt;opened PR #18019&lt;/a&gt; to finish the Kafka Connect LICENSE and NOTICE cleanup that Ryan Blue started in April. The PR regenerates &lt;code&gt;runtime-deps.txt&lt;/code&gt;, aligns the connector's cloud SDK dependencies with the AWS, GCP and Azure bundles, and drops the Hive distribution. The timing matters. A &lt;a href="https://lists.apache.org/thread/0zc0yhwjvwnpqov9ydtkg0hp8gr0wfyl" rel="noopener noreferrer"&gt;Confluent Hub security scan&lt;/a&gt; flagged the Iceberg Kafka Connect listing, and Confluent's policy escalates flagged connectors toward removal unless the partner responds.&lt;/p&gt;

&lt;p&gt;Gaspard Merten &lt;a href="https://lists.apache.org/thread/995qpplkok0rfw5z6o5bp3d8bgorpjck" rel="noopener noreferrer"&gt;shared a PyIceberg PR&lt;/a&gt; that moves upsert comparisons out of Python loops and into PyArrow compute. He built it while working on a data lake for a financial organization, and he said the change cuts memory and CPU for wide-table upserts. He also noted that he wrote part of it with Claude and reviewed it himself several times.&lt;/p&gt;

&lt;p&gt;Viktor Kessler announced two European community meetups in back-to-back days: &lt;a href="https://lists.apache.org/thread/pq1z3vk09kkqs87j522ksg67lj66bkwb" rel="noopener noreferrer"&gt;Berlin on November 18&lt;/a&gt; and &lt;a href="https://lists.apache.org/thread/fqmsxckdw88t32y2owvfd3mxjs7ttkr3" rel="noopener noreferrer"&gt;Amsterdam on November 19&lt;/a&gt;. Both have open calls for talks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Polaris
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Polaris 1.8.0 ships with a CVE fix
&lt;/h3&gt;

&lt;p&gt;Jean-Baptiste Onofré's first 1.8.0 candidate did not survive. Alex Dutra &lt;a href="https://lists.apache.org/thread/m6n72gfb48z82qml2o0h9ds94nx4zsj0" rel="noopener noreferrer"&gt;voted -1 on rc1&lt;/a&gt; because a test file added in PR #4823 carried an incorrect license header. JB &lt;a href="https://lists.apache.org/thread/9kow0cdomvg9pg9sbrmsh8nvkd8jsgtl" rel="noopener noreferrer"&gt;cancelled the vote&lt;/a&gt; and took another pass at LICENSE and NOTICE. The &lt;a href="https://lists.apache.org/thread/y9h97q5cd355vlcglyfo7mnqz23yfj2s" rel="noopener noreferrer"&gt;rc2 vote&lt;/a&gt; passed with binding +1s from Alex Dutra, Yufei Gu, Dmitri Bourlatchkov and JB, plus non-binding support from Prithvi S, Ajantha Bhat and Ayush Saxena. Yufei's verification checked 442 artifacts and ran authenticated CLI smoke tests against built and staged servers.&lt;/p&gt;

&lt;p&gt;JB &lt;a href="https://lists.apache.org/thread/vvzpmxj1thg57tfd2xfbll8mr7o24xmh" rel="noopener noreferrer"&gt;announced 1.8.0&lt;/a&gt; on September 28. The notable changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semantic model privileges.&lt;/strong&gt; Semantic models now get dedicated privileges for list, create, read, update and drop. Admins grant them to catalog roles on a single model, a namespace or a whole catalog. This is Polaris preparing to govern Ossie-style semantic models the same way it governs tables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI toggles for STS and KMS.&lt;/strong&gt; &lt;code&gt;catalogs update&lt;/code&gt; accepts &lt;code&gt;--no-sts&lt;/code&gt; and &lt;code&gt;--no-kms&lt;/code&gt;, so operators can change those settings on an existing S3 catalog instead of recreating it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GCP federation auth.&lt;/strong&gt; The CLI adds &lt;code&gt;gcp&lt;/code&gt; as an external catalog auth type for Iceberg REST federation. That lets operators create GCP-authenticated catalogs such as BigLake without passing Google credential secrets as command-line flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paging.&lt;/strong&gt; A global &lt;code&gt;--page-size&lt;/code&gt; option paginates list calls, when the server enables the &lt;code&gt;LIST_PAGINATION_ENABLED&lt;/code&gt; flag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JDBC schema selection.&lt;/strong&gt; The relational JDBC backend reads its schema from the driver's &lt;code&gt;currentSchema&lt;/code&gt; property, so the persistence layer no longer hardcodes a schema name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A day later JB published &lt;a href="https://lists.apache.org/thread/nrk339vtlkpsjw3mg4mqw52j0167wyph" rel="noopener noreferrer"&gt;CVE-2026-97395&lt;/a&gt;, rated important, for all Polaris versions before 1.8.0. A principal with permission to set table properties was able to put FileIO settings such as &lt;code&gt;s3.endpoint&lt;/code&gt; into table metadata. During server-side operations like commits and purges, older Polaris versions built their own FileIO client from those settings unless the catalog's storage config overrode the endpoint. The result: Polaris sent storage requests, signed with operation-scoped credentials, to a host the table writer picked. Deployments that do not fully trust table writers should upgrade. The reporter was credited as vignesh a.&lt;/p&gt;

&lt;p&gt;Ajantha Bhat also shipped the &lt;a href="https://lists.apache.org/thread/r686yo180pz59gx4ycz7r7dfmm7o599r" rel="noopener noreferrer"&gt;Polaris Iceberg Catalog Migrator 1.1.0&lt;/a&gt; after an &lt;a href="https://lists.apache.org/thread/o4b44mrkgbd6p1xjq5h6j6m70sb8ws7k" rel="noopener noreferrer"&gt;RC3 vote&lt;/a&gt; with binding support from Dmitri, Russell Spitzer, JB and Alex. Russell's check covered all 12 primary Maven artifacts and 89 tests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enum or free text: the R2 credential vending fight
&lt;/h3&gt;

&lt;p&gt;Austen Tomek of Chicago Trading has a PR adding Cloudflare R2 support with scoped credential vending. The &lt;a href="https://lists.apache.org/thread/flk86whb81c5yz2qb94o8rfdnozxrp85" rel="noopener noreferrer"&gt;discussion&lt;/a&gt; reached a clean disagreement. Austen explained why endpoint matching cannot identify the storage vendor: MinIO and other self-hosted stores use arbitrary hostnames, and a failed match silently falls back to STS. So the PR adds an explicit &lt;code&gt;credentialVendingMechanism&lt;/code&gt; field to the Management API.&lt;/p&gt;

&lt;p&gt;Dmitri Bourlatchkov wants that field to be free text with runtime validation, so downstream builds of Polaris can add custom mechanisms. Yufei Gu wants an enum, arguing that a spec is a contract and clients should not depend on a specific deployment's extensions. When Dmitri asked for lazy consensus, Yufei said there was none. JB stepped in on September 30 and asked everyone to slow down and align. He pointed out that the field lives in the Management API for catalog administrators. Iceberg REST clients such as Spark and Trino never see it. They only consume the standard vended credentials. That observation lowers the stakes for engine interop, but the question of how extensible the Polaris Management API should be remains open.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistence: DynamoDB and read replicas
&lt;/h3&gt;

&lt;p&gt;Yuewei Zhou &lt;a href="https://lists.apache.org/thread/6lvvvm5x0xszb0ymxtqn5jx858xjmbls" rel="noopener noreferrer"&gt;proposed an optional DynamoDB persistence backend&lt;/a&gt; built as a new adapter under &lt;code&gt;AtomicOperationMetaStoreManager&lt;/code&gt;, the same shape the relational JDBC backend uses. Robert Stupp prefers a different home. He wants DynamoDB as another backend inside the existing NoSQL persistence framework, where a compare-and-set on a reference is the moment a validated catalog change becomes visible as one consistent state. He also has a DynamoDB implementation in his own fork. Dennis Huo asked the community to use DynamoDB as a chance for an apples-to-apples comparison between the two persistence approaches. JB sided with Robert. He noted that the atomic manager implicitly assumes relational multi-entity transactions, and forcing DynamoDB into that shape means orchestrating &lt;code&gt;TransactWriteItems&lt;/code&gt; for multi-entity writes. Yuewei offered to help on whichever path moves forward.&lt;/p&gt;

&lt;p&gt;A second persistence thread ended with a request for data. Yong Zheng wants Polaris to &lt;a href="https://lists.apache.org/thread/pbkz15c6qdydjv0jhrlfw2nb4m36n5lx" rel="noopener noreferrer"&gt;route read-only requests to a database read replica&lt;/a&gt; when a custom header is present. Prithvi S warned that routing by HTTP verb risks double ingestion if a read hits the replica before a commit is visible and the client retries. Robert Stupp read the Medium post behind the proposal and found 15 Polaris pods serving about 400 requests per second, which is under 27 per pod. That does not look like connection saturation to him. Yufei asked for baseline numbers before any design work: request rates, tables per namespace, latency targets. Yong agreed to run benchmarks with the &lt;code&gt;polaris-tools&lt;/code&gt; harness over the coming weeks. JB added that pool multiplexers such as PgBouncer or RDS Proxy belong in that comparison.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics, tags and federation
&lt;/h3&gt;

&lt;p&gt;Dmitri Bourlatchkov &lt;a href="https://lists.apache.org/thread/l5z6jkxlnsxsptp0mvlswohyb2v0ctqo" rel="noopener noreferrer"&gt;flagged Management API changes&lt;/a&gt; inside PR #4115, the long-running work on &lt;a href="https://lists.apache.org/thread/c5jq95qwzn5dtc103rzk457gr8r0d6zh" rel="noopener noreferrer"&gt;REST endpoints for table metrics and events&lt;/a&gt;. The PR adds a &lt;code&gt;TABLE_READ_METRICS&lt;/code&gt; grant at table, namespace and catalog level. Reading reports needs that grant, &lt;code&gt;TABLE_FULL_METADATA&lt;/code&gt; or &lt;code&gt;CATALOG_MANAGE_CONTENT&lt;/code&gt;. Sending scan and commit reports stays tied to data read and write privileges. Yufei reminded the list that the PR also introduces a new REST spec for metrics consumption. Dmitri proposed merging on October 1, and JB agreed, with the JDBC query SPI in PR #4756 as the next step.&lt;/p&gt;

&lt;p&gt;EJ Wang &lt;a href="https://lists.apache.org/thread/l2pj8r0xrtw3wplbnbbo9lzrvrldsm6b" rel="noopener noreferrer"&gt;reported progress on the Tag spec&lt;/a&gt;. All four planned PRs are open: the API contract in #5366, definition CRUD, assignment writes and storage, and reads with inheritance and reverse lookup. Dmitri supports merging the API PR once open review threads close. EJ also built a proof of concept for &lt;a href="https://lists.apache.org/thread/sq94774svy8y88f3fnknrwforkt08bzx" rel="noopener noreferrer"&gt;archiving design proposals as Markdown&lt;/a&gt;. Authors keep collaborating in Google Docs, add a version label and a link to one YAML manifest, and the tool captures the doc as Markdown with images for the repository.&lt;/p&gt;

&lt;p&gt;David Chaava wants fail-fast validation for &lt;a href="https://lists.apache.org/thread/9cpkcwd9hnm0pmwv986m3om0fdln5917" rel="noopener noreferrer"&gt;vendor-specific Iceberg REST federation settings&lt;/a&gt;, starting with BigLake. Dmitri, JB and Prithvi all asked that &lt;code&gt;PolarisAdminService&lt;/code&gt; stay vendor-neutral. David's revised plan uses a CDI-discovered validator SPI with a BigLake implementation. Srinivas Rishindra posted the &lt;a href="https://lists.apache.org/thread/38s4hch6g5w1hvysjh6g3yl2n0zgvmhz" rel="noopener noreferrer"&gt;first PR for multiple storage configurations per catalog&lt;/a&gt;, and Travis Bowen weighed in on where the &lt;a href="https://lists.apache.org/thread/53ym549h87wmcq16oy675wct9tn3bbjp" rel="noopener noreferrer"&gt;new Open Sharing APIs&lt;/a&gt; should live, leaning toward the existing &lt;code&gt;/api/management&lt;/code&gt; path.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code health
&lt;/h3&gt;

&lt;p&gt;Two cleanup threads resolved. Yufei Gu &lt;a href="https://lists.apache.org/thread/jm1sbk8tdzycw6xyrfdoghrd0dfnk1ml" rel="noopener noreferrer"&gt;found the authentication flow confusing&lt;/a&gt; while reviewing another PR. Two augmentors attached a credential that a third consumed, and the ordering only held because of a code comment the compiler cannot check. Alex Dutra proposed merging the OIDC pieces into a single &lt;code&gt;OidcIdentityPreparer&lt;/code&gt; that the authenticating augmentor calls directly. Prithvi agreed, Alex opened PR #5612 on September 25, and it merged on September 28.&lt;/p&gt;

&lt;p&gt;The long argument over &lt;a href="https://lists.apache.org/thread/v0tfmx30rlbh9pd2tn6xf7kzptsfzz4q" rel="noopener noreferrer"&gt;schema upgrade instructions&lt;/a&gt; also ended. Yufei argued that SQL snippets in the upgrade guide break for anyone who starts from an older schema version, and that the versioned schema files are the only source of truth. Alex disagreed but removed every migration snippet from PR #5349 to unblock it. The page now explains how to diff the schema files. Prithvi asked for some SQL guidance to return later, since a schema diff shows the end state but not how to migrate tables that already hold data. The PR has approvals from Dmitri, Yufei and Yong Zheng.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Arrow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Dropping Intel Macs
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/m2c4v0n70rbxojx4pbjx3p5g8c33yw2w" rel="noopener noreferrer"&gt;macOS Intel thread&lt;/a&gt; brought numbers. Joris Van den Bossche pulled 30 days of PyPI downloads: x86_64 made up 6.6 percent of PyArrow's macOS downloads, 57,121 against 807,414 for arm64. Sutou Kouhei reproduced the check with a public ClickHouse query against the PyPI dataset and voted +1. Wes McKinney offered his 2019 Intel Mac Pro for testing commits to main. Kurtis Wright asked whether Arrow has any policy guaranteeing a number of releases before a platform goes away. Raúl Cumplido said no, and that such a promise is not realistic when Arrow depends on package managers and CI platforms with their own deprecation schedules. Homebrew already dropped Intel support without naming a last version.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modularity and schemas
&lt;/h3&gt;

&lt;p&gt;Raúl Cumplido also &lt;a href="https://lists.apache.org/thread/kyqf7wp4n4fm2gf8x69j7o2ol3dj2f4w" rel="noopener noreferrer"&gt;opened a discussion on PyArrow modularity&lt;/a&gt;. Arrow C++ is already split into a dozen libraries, from Core and Compute through Acero, Dataset, Flight, Flight SQL ODBC and S3. GCS and Azure still sit in core libarrow, and he wants them moved out the way S3 and the AWS SDK were. The goal is PyArrow installs that pull only the pieces a user needs, which matters for container images and serverless functions where package size has a cost.&lt;/p&gt;

&lt;p&gt;Dewey Dunnington endorsed Kent's revised proposal for a &lt;a href="https://lists.apache.org/thread/k14qnnf6t0zy2725jo23jfv9f407x4dp" rel="noopener noreferrer"&gt;JSON representation of Arrow schemas&lt;/a&gt;. David Lee asked for union type support and shared the alias-based JSON format he already uses to define data contracts between processes. A standard JSON schema form gives config files, APIs and agents a way to describe Arrow data without a binary IPC message.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arrow Rust 60.0.0
&lt;/h3&gt;

&lt;p&gt;Andrew Lamb &lt;a href="https://lists.apache.org/thread/9hlwcn4ctwbpc5qr22ro8l2d5707wx88" rel="noopener noreferrer"&gt;announced Arrow Rust 60.0.0&lt;/a&gt; on September 29. The release adds new Parquet encoding support, continues a sustained push to remove panics from the codebase, and lands kernel performance work plus fixes across decimals, take and filter, and FFI. The panic removal effort deserves a mention. A library that returns errors instead of aborting the process is easier to embed in long-running query engines and services, which is where arrow-rs lives inside DataFusion, Comet and a long list of downstream projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Parquet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The vector type argument
&lt;/h3&gt;

&lt;p&gt;The busiest Parquet thread of the week, at 30 messages, was about vectors. Rok Mihevc &lt;a href="https://lists.apache.org/thread/llwocp01o87bvcdf993mczmdyf2ppzy4" rel="noopener noreferrer"&gt;opened PR #624 in parquet-format&lt;/a&gt; for a LIST-based &lt;code&gt;VECTOR&lt;/code&gt; logical type. It separates the logical contract from physical layout changes. Every non-null vector has exactly &lt;code&gt;num_elements&lt;/code&gt;. Elements are non-null and finite. Elements are numeric or boolean primitives, with no nesting.&lt;/p&gt;

&lt;p&gt;Antoine Pitrou objected to the restrictions. Parquet is a general-purpose format, he said, and NumPy produces vectors with NaN and infinity all the time. Readers can refuse what they do not support, but the spec should not. Alkis Evlogimenos answered with a survey. Postgres, Oracle, MySQL, SQL Server, Milvus, Qdrant and Pinecone all disallow nulls, NaN and infinity in vectors. DuckDB and ClickHouse allow them, but only because they store vectors as plain float arrays and switch off vector features when bad values appear. Daniel Weeks argued that a vector has mathematical meaning, with dimension, magnitude and direction, and non-finite values break it. Russell Spitzer asked for a concrete tool that produces non-finite vectors and a downstream engine that uses them productively.&lt;/p&gt;

&lt;p&gt;Will Edwards reframed it. He had first assumed the goal was general ML tensors. After the sync calls he understood the immediate need was fixed-length embeddings for nearest-neighbor search, and in that context the constraints make sense. He also noted that embedding APIs do sometimes return NaN on overflow, which is exactly the kind of bad data a strict type catches. Andrew Lamb suggested a narrower name such as &lt;code&gt;FINITE_VECTOR&lt;/code&gt; or &lt;code&gt;VECTOR_EMBEDDING&lt;/code&gt; if the name is the real problem. Gang Wu proposed treating a general FixedSizeList as the physical layout and the specialized vector as a separate logical contract. Philipp Fischbeck and Divjot Arora both want to proceed with the proposal as written. Divjot added a practical point: statistics cannot reliably detect non-finite values, so a type-level guarantee is the only way a reader can trust the data without scanning it.&lt;/p&gt;

&lt;p&gt;The practical outcome is taking shape. A restricted vector type for embeddings, with a possibly more specific name, and a separate track for general multidimensional arrays that Rok still wants to pursue. For lakehouse teams storing embeddings next to their tables, this is the thread that decides whether engines can index Parquet vector columns without validating every value first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Encodings: PFOR, FastLanes, ALP and FSST
&lt;/h3&gt;

&lt;p&gt;Prateek Gaur posted hard numbers in the &lt;a href="https://lists.apache.org/thread/1rnyj6slgohr5zrj8phnoz8s9gb2h1br" rel="noopener noreferrer"&gt;PFOR encoding thread&lt;/a&gt;. Antoine had asked whether PFOR's delta mode can reuse Parquet's &lt;code&gt;DELTA_BINARY_PACKED&lt;/code&gt; kernel. Alkis asked whether a faster DBP decoder closes the gap. Prateek measured three setups on AWS Graviton 4. On 18 datasets where delta mode helps, PFOR's own patched-delta layout reached a 10.07 compression ratio and 9.85 GB/s decode. A DBP stream inside each PFOR vector reached 6.54 and 3.76 GB/s. A tuned DBP decoder with SIMD prefix sums climbed to 5.96 GB/s but kept the 6.54 ratio. His summary: the patched-delta layout is 35 percent smaller and 1.65 times faster to decode on the datasets where delta matters. The gap is structural. PFOR uses one bit width per 1,024-value vector, while DBP splits the same vector into miniblocks with their own widths.&lt;/p&gt;

&lt;p&gt;In the parallel &lt;a href="https://lists.apache.org/thread/fljloxkrx5ydgoj1vhotgwnmwzbdcq08" rel="noopener noreferrer"&gt;FastLanes thread&lt;/a&gt;, Prateek and Alkis agreed to decouple FastLanes from PFOR. The initial PFOR proposal keeps sequential bit packing, and a layout discriminator leaves room to add FastLanes or interleaved layouts later. The thread also produced the sharpest exchange of the week. Antoine told Prateek that his design document and PR descriptions read like AI-generated text and asked him to rewrite them as a person talking to people. Prateek trimmed the document and cut two sections. The Parquet community is receptive to benchmark-driven proposals. It also expects authors to explain their own work.&lt;/p&gt;

&lt;p&gt;On the rest of the encoding roadmap, the ALP blog post &lt;a href="https://lists.apache.org/thread/tnbxk7c4rmbngtr5slp2r349pbco7sc0" rel="noopener noreferrer"&gt;went through community review&lt;/a&gt; and Andrew Lamb described ALP as out the door. He then turned to the &lt;a href="https://lists.apache.org/thread/rd2x7c15dqwf8qkdl70r7zr1ykmwkmf5" rel="noopener noreferrer"&gt;FSST proposal&lt;/a&gt; and suggested an optional inline symbol table so FSST also applies to dictionary pages. ALP targets floating point columns. FSST targets strings. Together with PFOR for integers, Parquet is on track to cover the main column types with modern lightweight encodings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types and the edges of the format
&lt;/h3&gt;

&lt;p&gt;Micah Kornfield pushed back on two type proposals with the same argument: Parquet is a file format, not a table format. Thomas Kissinger wants an &lt;a href="https://lists.apache.org/thread/53l8knj3z5mjn8yyqb6bd0yo4dl35z6p" rel="noopener noreferrer"&gt;extensible decimal floating-point type&lt;/a&gt; with a write-time canonicalization contract. Micah answered that an empty table means no Parquet file exists, so there is no Parquet schema to coordinate independent writers. That coordination belongs to a layer above. Micah also raised concerns about a proposed &lt;a href="https://lists.apache.org/thread/5ycbvbjho0pksg6vxwsv1vsmv4xj8kqo" rel="noopener noreferrer"&gt;WIRE logical type&lt;/a&gt; for serialized messages such as protobuf, citing the edge cases in lining up type systems for shredding, from recursive schemas to well-known types.&lt;/p&gt;

&lt;p&gt;Steve Loughran argued in the &lt;a href="https://lists.apache.org/thread/grqjls84ndd00l2kplp7y8rrhnhgv32h" rel="noopener noreferrer"&gt;format version thread&lt;/a&gt; that readers must fail on an unsupported version. Pretending to support a version you do not understand is a pretense, he said, and that rule is a strong reason not to bump the version without a compelling payoff. Adrian Garcia Badaracco &lt;a href="https://lists.apache.org/thread/l8om71xjcv94x0z3hdvnbswk9ssyn2ks" rel="noopener noreferrer"&gt;proposed classifying &lt;code&gt;distinct_count&lt;/code&gt; as inexact&lt;/a&gt;, since the spec never says whether writers are allowed to estimate it or whether readers can trust it as exact. And Danica Fine invited the community to &lt;a href="https://lists.apache.org/thread/4t1l0tdpylqk1kqn0zn3393x0rpk6hhm" rel="noopener noreferrer"&gt;Lakehouse Day EU on October 10&lt;/a&gt; in Glasgow, co-located with Community Over Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache DataFusion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comet 1.1.0 and the token budget
&lt;/h3&gt;

&lt;p&gt;Andy Grove &lt;a href="https://lists.apache.org/thread/hn45c6dntn1tnhmk0b8rzmkhbpvct0rm" rel="noopener noreferrer"&gt;opened the Comet 1.1.0 RC1 vote&lt;/a&gt; on September 28. L. C. Hsieh, Marko Milenković and Andrew Lamb each gave a binding +1 within a day. Then Andy posted that his deeper verification had already found several regressions. He is tracking them in issue #6402 and said the full check will take a few days because he does not have an unlimited token budget. That line tells you how Andy verifies releases now: with agents that run through test matrices, where the constraint is API spend rather than hours in the day. Watch for a new candidate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ballista wants to ship without waiting
&lt;/h3&gt;

&lt;p&gt;Andy also &lt;a href="https://lists.apache.org/thread/0dsfk0h5kmcpv4wtxnk24r096fjon1l8" rel="noopener noreferrer"&gt;proposed releasing Ballista's Python client separately&lt;/a&gt; from the Rust crates. Ballista moved to DataFusion 55 five weeks ago and still cannot release, because the bundled Python client needs &lt;code&gt;datafusion-python&lt;/code&gt; 55.0.0, whose vote has not started. Over the last eleven DataFusion releases, &lt;code&gt;datafusion-python&lt;/code&gt; followed DataFusion by a median of 31 days and once by more than seven weeks. More than 300 commits sit on Ballista's main branch, including fixes for wrong results from distributed &lt;code&gt;NOT IN&lt;/code&gt;, executors being OOM-killed on heavy queries, and jobs hanging when all executors disappear. Andy wants feedback on issue #2511, especially from Python client users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory accounting
&lt;/h3&gt;

&lt;p&gt;Andrew Lamb's &lt;a href="https://lists.apache.org/thread/ly0vr0gxcftnog4nn7ynscjr965l1bnn" rel="noopener noreferrer"&gt;sync notes from September 23&lt;/a&gt; centered on memory. Raz from Flarion reported a string of memory issues where the memory pool's accounting did not match what operators actually used. One example was a Filter allocation that the pool never saw. Comet has hit the same gap between pool accounting and process memory. An earlier allocator-based memory test was reverted, and Andy agreed to find or create a ticket to coordinate the effort. For anyone running DataFusion inside a service with a hard memory limit, accurate pool accounting is the difference between graceful spilling and an OOM kill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Ossie (incubating)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A standard REST API for semantic models
&lt;/h3&gt;

&lt;p&gt;Jean-Baptiste Onofré &lt;a href="https://lists.apache.org/thread/hf71m6g1g1bnhqj5v0f4kc0rf4h8g4kg" rel="noopener noreferrer"&gt;proposed a standard REST API&lt;/a&gt; for producing, consuming and orchestrating Ossie models, starting as a &lt;code&gt;rest/openapi.yaml&lt;/code&gt; in the main repository. The response showed real vendor pull. Sebastien Gandon said Qlik has started building an Ossie-native API to import and export its data product semantic models, and he asked for a dedicated Content-Type header. Yufei Gu asked whether it builds on the Polaris Ossie REST design, which JB co-authored. JB said yes, and that the goal is for Polaris, Qlik and others to implement one standard API so clients work without knowing the server.&lt;/p&gt;

&lt;p&gt;Viktor Kessler asked the group to agree on the problem first. He saw two scopes: a registry for exchanging and discovering models, and governed semantics, where a service guarantees that a model is bound to the physical tables it references. JB agreed and proposed two API specs, one for model management and one for catalog association. Vinoth Chandar asked that files and storage locations be first-class alongside table formats. Jakub Moravec asked how an importer knows a model changed. JB proposed keeping the core spec plain REST, with explicit versioning, content hashes and HTTP conditional requests using ETags, instead of push protocols.&lt;/p&gt;

&lt;p&gt;This is the most interesting cross-project thread of the week. Iceberg standardized how engines find tables. Polaris implemented it. Ossie is now trying to standardize how tools find and exchange the business meaning that sits on top of those tables, and Polaris 1.8.0 already added the privileges to govern semantic models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Converters move out, and a first release takes shape
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://lists.apache.org/thread/cs3dxf2c7725xoyd517207qw15m3wdox" rel="noopener noreferrer"&gt;converter scope discussion&lt;/a&gt; reached a decision. Russell Spitzer favored separating the spec from implementations, the way Parquet splits parquet-format from its libraries. Markus Weimer cared less about repository count and more about keeping everything inside the ASF, since that makes adoption easier for downstream users. Kurt Stirewalt laid out what stays in the main repo: the spec, the typed object model with parsing and serialization, the validator, and the parser for the ontology formula language. JB then &lt;a href="https://lists.apache.org/thread/qmf7frm5c3w2lzmopz1d8205sx2519nf" rel="noopener noreferrer"&gt;created the ossie-converters repository&lt;/a&gt; on September 29 and asked contributors to pause converter work while he moves the code.&lt;/p&gt;

&lt;p&gt;JB also &lt;a href="https://lists.apache.org/thread/fko72y28okc8r41ds06pxjnj7x9gn29v" rel="noopener noreferrer"&gt;laid out the path to the first incubating releases&lt;/a&gt;: freeze converters, move them, and bump the spec version to 0.3.0-incubating after the recent flat-document change. Kyoung Min Kim did the arithmetic. The &lt;code&gt;0.2.0.dev0&lt;/code&gt; string appears in 111 files, 96 of them under converters, so the bump is one change if it lands before the move and a coordinated two-repo change after. Kyoung Min also &lt;a href="https://lists.apache.org/thread/06zvd90kcg4hnhf22by01m1338dshob6" rel="noopener noreferrer"&gt;confirmed&lt;/a&gt; that the license header check now runs on every PR and the tree is clean.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does &lt;code&gt;orders.amount&lt;/code&gt; mean?
&lt;/h3&gt;

&lt;p&gt;damian waldron &lt;a href="https://lists.apache.org/thread/bc9v9o0d2702gwm978km13mg6v16hzv1" rel="noopener noreferrer"&gt;asked a question the spec does not settle&lt;/a&gt;. In a portable expression like &lt;code&gt;SUM(orders.amount)&lt;/code&gt;, is &lt;code&gt;amount&lt;/code&gt; a field declared in the dataset, or a physical column in the warehouse? He surveyed ten converters and found three different answers. JB said expressions and relationships must reference logical fields, because a semantic layer that reaches past its own fields to physical columns breaks encapsulation. Julian Hyde objected to any reading that locks layers into rigid tiers, since that makes Ossie less composable. Justin Talbot framed it as the SQL view case: a view's query references its immediate inputs, and dataset fields should work the same way. JB clarified that he meant lexical scoping, not a restriction on composition, and the group converged.&lt;/p&gt;

&lt;p&gt;Two spec proposals depend on that answer. Chris Eubank &lt;a href="https://lists.apache.org/thread/sz17wf36mtlyycv9n0dm93k6j5psz1jl" rel="noopener noreferrer"&gt;narrowed the dataset-scoped metrics proposal&lt;/a&gt; in PR #343 so it can reach a vote without settling every open semantic question. JB &lt;a href="https://lists.apache.org/thread/n5t84f01kx02x5b7xz8qdg0c8n7v0ncz" rel="noopener noreferrer"&gt;strongly backed&lt;/a&gt; Justin's Relational Query Interface in PR #354, which grounds Layer 2 in the Measures in SQL model so BI tools that generate their own SQL still get correct metrics across fan-out and chasm traps. Justin also posted a &lt;a href="https://lists.apache.org/thread/bkpvc7czf938j5q25xkw46w6tz1042b2" rel="noopener noreferrer"&gt;short overview of the four spec layers&lt;/a&gt; in PR #452 for newcomers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Votes, validation and structure
&lt;/h3&gt;

&lt;p&gt;Chris Eubank &lt;a href="https://lists.apache.org/thread/tgpgjz1855t3bvp3hjmxf0kl02p2wd3g" rel="noopener noreferrer"&gt;called a vote&lt;/a&gt; to add the SQL-standard &lt;code&gt;FILTER (WHERE ...)&lt;/code&gt; aggregate modifier to the expression language, after &lt;a href="https://lists.apache.org/thread/ghp49rrwtbdovqdq6kro9d9shd86lpf2" rel="noopener noreferrer"&gt;incorporating JB's feedback&lt;/a&gt;. The change is additive and avoids the edge cases of CASE-based workarounds for AVG, MIN, MAX and STDDEV. JB voted +1.&lt;/p&gt;

&lt;p&gt;Kyoung Min Kim noticed that &lt;code&gt;validate.py&lt;/code&gt; &lt;a href="https://lists.apache.org/thread/lltdz30fryypzgvgc0ldd2tbbbhrqt10" rel="noopener noreferrer"&gt;stops at the JSON schema for ontology documents&lt;/a&gt; because every semantic check assumes a &lt;code&gt;datasets&lt;/code&gt; key. He will add ontology checks for built-in concepts, cycle detection on &lt;code&gt;extends&lt;/code&gt;, and a CI step, with JB reviewing. Shao Xie's PR #458 &lt;a href="https://lists.apache.org/thread/v1mf3jpzthk0p0qlclhglot6pxqt6gqq" rel="noopener noreferrer"&gt;splits ontology, semantic model and mapping&lt;/a&gt; into separate documents connected by references, so a slow-moving ontology can map to many semantic models. Yufei asked for more voices on deprecating embedded models. On GitHub, MikeCarlo proposed &lt;a href="https://lists.apache.org/thread/xlmtg8735m1dqbnlm980hjtgqrzz82fs" rel="noopener noreferrer"&gt;storing custom extension data as structured objects&lt;/a&gt; instead of opaque JSON strings, which helps the Power BI TMDL converter keep more metadata. Contributors also opened discussions on &lt;a href="https://lists.apache.org/thread/9z5pxs97hypsjvc2fg00oc135n8jg2jq" rel="noopener noreferrer"&gt;metric additivity&lt;/a&gt; and on recording &lt;a href="https://lists.apache.org/thread/b25ozd1qg7jtw46obboqdj4jx45kw589" rel="noopener noreferrer"&gt;who certified a metric definition&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  An outsider builds Ossie on ClickHouse
&lt;/h3&gt;

&lt;p&gt;The most useful message on the Ossie list came from a newcomer. Aleksandr Kosachev &lt;a href="https://lists.apache.org/thread/0mxzxxdc8s0tmy3fyjftyoymyhzxncpg" rel="noopener noreferrer"&gt;introduced himself&lt;/a&gt; as a backend architect who, six months ago, barely knew what a semantic layer was. He kept seeing teams wire AI assistants to databases and get confident, wrong answers. So he built &lt;code&gt;ossie-clickhouse&lt;/code&gt; from the spec alone. It loads an Ossie document with the &lt;code&gt;apache-ossie&lt;/code&gt; package, translates expressions to ClickHouse SQL with SQLGlot, plans one SELECT per question, and serves the model to agents over MCP. The TPC-DS example model runs end to end.&lt;/p&gt;

&lt;p&gt;His list of places where he had to guess is a free conformance review. Relationship cardinality is not in the spec, so he only joins when the target columns form a primary or unique key. ClickHouse tables that keep change history need &lt;code&gt;FINAL&lt;/code&gt; on read, which he exposed through a custom extension. Function semantics are open: whether &lt;code&gt;REGEXP_REPLACE&lt;/code&gt; replaces the first match or all, whether &lt;code&gt;DAYOFWEEK&lt;/code&gt; is ISO, and what &lt;code&gt;1/0&lt;/code&gt; returns. He pinned his choices in tests until the compliance suite lands. Two of those gaps already have active threads this week. That is how a spec should improve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Project Themes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tighter contracts, fewer surprises.&lt;/strong&gt; Iceberg removed a write path from v4. Parquet is leaning toward a vector type that rejects values most vector stores reject anyway. Ossie is defining whether a name means a field or a column. Polaris is arguing about whether a config field should be an enum. The shared direction is specs that make fewer promises and make them precisely, so a reader can trust data without re-validating it. The pushback is also consistent. Antoine Pitrou in Parquet, Daniel Weeks on the delegation header and Dmitri Bourlatchkov on R2 each defended flexibility for implementers. The best outcomes this week kept both. Polaris keeps its fail-fast behavior as an implementation choice while the Iceberg spec stays loose. Parquet looks headed toward a strict embedding type plus a separate general array track.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents are now participants in the process.&lt;/strong&gt; Kurtis Wright found the Iceberg license gap with Claude. Kevin Liu pointed an agent at the repository to hunt correctness bugs. Andy Grove's Comet verification is gated by token budget. Gaspard Merten wrote his PyIceberg change with Claude. The communities are also setting norms. Contributors label AI-assisted votes, and Antoine asked a Parquet author to rewrite AI-sounding prose in his own words. Agents also showed up as consumers. Andrei Tserakhau argued for SQL-visible Iceberg labels because agents explore warehouses through SQL, and Aleksandr Kosachev built an Ossie server specifically to stop agents from giving wrong answers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The semantic layer is joining the catalog layer.&lt;/strong&gt; Polaris 1.8.0 added privileges for semantic models. Ossie proposed a REST API modeled on the Polaris design and split out a catalog association spec. Iceberg debated catalog-owned labels. The lakehouse stack now has open standards for files, tables and catalogs, and the next layer up, what the numbers mean, is getting the same treatment on the same lists with many of the same people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Release engineering is a security surface.&lt;/strong&gt; Iceberg RC1 failed on bundled license gaps. Polaris rc1 failed on a license header. Confluent is scanning the Iceberg Kafka connector. Polaris shipped a CVE fix for server-side FileIO endpoints. The Iceberg test backend moved from MinIO to RustFS after CI breakage. None of this is glamorous. All of it is the work that lets enterprises run these projects in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Watch for the Iceberg 1.12.0 announcement and the equality delete spec merge, then the October 8 sync on File and Vector types. Polaris plans to merge the table metrics PR on October 1, and the R2 enum question needs a resolution before that PR lands. Parquet's vector type should get a naming decision and a path to a vote. DataFusion Comet needs a new release candidate once Andy Grove's regression list is triaged. Ossie will move converters into their new repository and prepare its first incubating release at spec version 0.3.0. And if you are in Europe, Lakehouse Day EU in Glasgow on October 10 is the next place to see many of these contributors in one room.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keep Learning
&lt;/h2&gt;

&lt;p&gt;If this digest helps you follow the open lakehouse, my books go deeper on every layer covered here, from Apache Iceberg table design and Apache Polaris catalogs to Arrow, Parquet and building agentic analytics on open data. Find the full catalog at &lt;strong&gt;&lt;a href="https://books.alexmerced.com" rel="noopener noreferrer"&gt;books.alexmerced.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
