This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 5208929da0f [report] add weekly report 2026-07-06 (#3979)
5208929da0f is described below

commit 5208929da0f783a441ad5f5624b01396d7a5a627
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Mon Jul 13 11:43:51 2026 +0800

    [report] add weekly report 2026-07-06 (#3979)
---
 .../community-report-next/CommunityReportNext.scss | 101 ++++-
 .../community-report-next/CommunityReportNext.tsx  |  93 ++++-
 src/pages/community-report/_reports/2026-07-06.mdx | 425 +++++++++++++++++++++
 3 files changed, 583 insertions(+), 36 deletions(-)

diff --git a/src/components/community-report-next/CommunityReportNext.scss 
b/src/components/community-report-next/CommunityReportNext.scss
index 9c818deabf0..4e39eea51a4 100644
--- a/src/components/community-report-next/CommunityReportNext.scss
+++ b/src/components/community-report-next/CommunityReportNext.scss
@@ -192,44 +192,105 @@
     margin-top: 12px;
 }
 
-.community-report__select-wrap::after {
-    // Custom chevron (native arrow is hidden via appearance:none).
+.community-report__select-button {
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    width: 100%;
+    min-height: 44px;
+    padding: 10px 38px 10px 14px;
+    cursor: pointer;
+    font-family: var(--font-family-base);
+    font-size: 14px;
+    line-height: 1.35;
+    color: var(--cr-ink);
+    text-align: left;
+    background: #fff;
+    border: 1px solid #dfe5f0;
+    border-radius: 8px;
+    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 
0.18s ease;
+}
+
+.community-report__select-button::after {
     content: '';
     position: absolute;
     right: 14px;
     top: 50%;
     width: 10px;
     height: 10px;
-    transform: translateY(-60%) rotate(45deg);
-    border-right: 2px solid var(--cr-muted);
-    border-bottom: 2px solid var(--cr-muted);
+    transform: translateY(-62%) rotate(45deg);
+    border-right: 2px solid #4c576c;
+    border-bottom: 2px solid #4c576c;
     pointer-events: none;
+    transition: transform 0.18s ease, border-color 0.18s ease;
+}
+
+.community-report__select-button:hover,
+.community-report__select-button--open {
+    border-color: var(--cr-green);
+}
+
+.community-report__select-button:focus-visible {
+    outline: none;
+    border-color: var(--cr-green);
+    box-shadow: 0 0 0 3px rgba(6, 128, 95, 0.14);
+}
+
+.community-report__select-button--open {
+    box-shadow: 0 2px 8px 0 rgba(49, 77, 136, 0.16);
+}
+
+.community-report__select-button--open::after {
+    transform: translateY(-38%) rotate(225deg);
+    border-color: var(--cr-green);
+}
+
+.community-report__select-button--placeholder {
+    color: #8592a6;
 }
 
-.community-report__select {
-    -webkit-appearance: none;
-    -moz-appearance: none;
-    appearance: none;
+.community-report__select-menu {
+    position: absolute;
+    z-index: 30;
+    top: calc(100% + 6px);
+    left: 0;
     width: 100%;
+    max-height: 260px;
+    overflow-y: auto;
+    padding: 6px 0;
+    background: #fff;
+    border: 1px solid #dfe5f0;
+    border-radius: 8px;
+    box-shadow: 0 2px 8px 0 rgba(49, 77, 136, 0.16);
+}
+
+.community-report__select-option {
+    display: block;
+    width: 100%;
+    min-height: 36px;
+    padding: 8px 14px;
     cursor: pointer;
-    padding: 11px 36px 11px 14px;
     font-family: var(--font-family-base);
     font-size: 14px;
+    line-height: 1.4;
     color: var(--cr-ink);
-    background: #fff;
-    border: 1px solid var(--cr-line);
-    border-radius: 10px;
-    transition: border-color 0.2s ease, box-shadow 0.2s ease;
+    text-align: left;
+    background: transparent;
+    border: 0;
+    transition: background 0.16s ease, color 0.16s ease;
 }
 
-.community-report__select:hover {
-    border-color: rgba(6, 128, 95, 0.4);
+.community-report__select-option:hover,
+.community-report__select-option:focus-visible {
+    outline: none;
+    background: #f7fafc;
 }
 
-.community-report__select:focus-visible {
-    outline: none;
-    border-color: var(--cr-green);
-    box-shadow: 0 0 0 3px rgba(6, 128, 95, 0.15);
+.community-report__select-option--selected {
+    color: var(--cr-green);
+    font-weight: 500;
+    background: transparent;
 }
 
 /* ---------------- Content ---------------- */
diff --git a/src/components/community-report-next/CommunityReportNext.tsx 
b/src/components/community-report-next/CommunityReportNext.tsx
index b1baa5aa6c5..4667554ca6f 100644
--- a/src/components/community-report-next/CommunityReportNext.tsx
+++ b/src/components/community-report-next/CommunityReportNext.tsx
@@ -1,4 +1,4 @@
-import React, { JSX, useEffect, useState } from 'react';
+import React, { JSX, useEffect, useRef, useState } from 'react';
 import { LayoutNext } from '../home-next/LayoutNext';
 import './CommunityReportNext.scss';
 import './WeeklyReport.scss';
@@ -111,6 +111,8 @@ export default function CommunityReportNext({ reports }: 
CommunityReportNextProp
     const latest = reports[0];
     const historical = reports.slice(1);
     const [selectedId, setSelectedId] = useState<string>(latest?.id ?? '');
+    const [isPastMenuOpen, setIsPastMenuOpen] = useState(false);
+    const pastMenuRef = useRef<HTMLDivElement>(null);
 
     // Allow deep-linking to a specific report via URL hash, e.g.
     // /community-report#2026-06-22. Read on mount (client-only; window is
@@ -122,8 +124,35 @@ export default function CommunityReportNext({ reports }: 
CommunityReportNextProp
         }
     }, [reports]);
 
+    useEffect(() => {
+        if (!isPastMenuOpen) {
+            return;
+        }
+
+        const closeOnOutsideClick = (event: MouseEvent) => {
+            if (!pastMenuRef.current?.contains(event.target as Node)) {
+                setIsPastMenuOpen(false);
+            }
+        };
+
+        const closeOnEscape = (event: KeyboardEvent) => {
+            if (event.key === 'Escape') {
+                setIsPastMenuOpen(false);
+            }
+        };
+
+        document.addEventListener('mousedown', closeOnOutsideClick);
+        document.addEventListener('keydown', closeOnEscape);
+
+        return () => {
+            document.removeEventListener('mousedown', closeOnOutsideClick);
+            document.removeEventListener('keydown', closeOnEscape);
+        };
+    }, [isPastMenuOpen]);
+
     const select = (id: string) => {
         setSelectedId(id);
+        setIsPastMenuOpen(false);
         if (typeof window !== 'undefined') {
             window.history.replaceState(null, '', `#${id}`);
         }
@@ -131,6 +160,7 @@ export default function CommunityReportNext({ reports }: 
CommunityReportNextProp
 
     const selected = reports.find(r => r.id === selectedId) ?? latest;
     const isHistoricalSelected = historical.some(r => r.id === selectedId);
+    const selectedHistoricalLabel = isHistoricalSelected ? selected?.label : 
'Past reports...';
     const SelectedReport = selected?.Component;
 
     return (
@@ -159,22 +189,53 @@ export default function CommunityReportNext({ reports }: 
CommunityReportNextProp
                             )}
 
                             {historical.length > 0 && (
-                                <div className="community-report__select-wrap">
-                                    <select
-                                        className="community-report__select"
-                                        aria-label="Browse past weekly reports"
-                                        value={isHistoricalSelected ? 
selectedId : ''}
-                                        onChange={e => select(e.target.value)}
+                                <div className="community-report__select-wrap" 
ref={pastMenuRef}>
+                                    <button
+                                        type="button"
+                                        className={
+                                            'community-report__select-button' +
+                                            (isPastMenuOpen ? ' 
community-report__select-button--open' : '') +
+                                            (!isHistoricalSelected ? ' 
community-report__select-button--placeholder' : '')
+                                        }
+                                        aria-haspopup="listbox"
+                                        aria-expanded={isPastMenuOpen}
+                                        
aria-controls="community-report-past-menu"
+                                        onClick={() => setIsPastMenuOpen(open 
=> !open)}
+                                        onKeyDown={event => {
+                                            if (event.key === 'ArrowDown') {
+                                                event.preventDefault();
+                                                setIsPastMenuOpen(true);
+                                            }
+                                        }}
                                     >
-                                        <option value="" disabled>
-                                            Past reports…
-                                        </option>
-                                        {historical.map(r => (
-                                            <option key={r.id} value={r.id}>
-                                                {r.label}
-                                            </option>
-                                        ))}
-                                    </select>
+                                        <span>{selectedHistoricalLabel}</span>
+                                    </button>
+                                    {isPastMenuOpen && (
+                                        <div
+                                            id="community-report-past-menu"
+                                            
className="community-report__select-menu"
+                                            role="listbox"
+                                            aria-label="Browse past weekly 
reports"
+                                        >
+                                            {historical.map(r => (
+                                                <button
+                                                    key={r.id}
+                                                    type="button"
+                                                    role="option"
+                                                    aria-selected={selectedId 
=== r.id}
+                                                    className={
+                                                        
'community-report__select-option' +
+                                                        (selectedId === r.id
+                                                            ? ' 
community-report__select-option--selected'
+                                                            : '')
+                                                    }
+                                                    onClick={() => 
select(r.id)}
+                                                >
+                                                    {r.label}
+                                                </button>
+                                            ))}
+                                        </div>
+                                    )}
                                 </div>
                             )}
                         </div>
diff --git a/src/pages/community-report/_reports/2026-07-06.mdx 
b/src/pages/community-report/_reports/2026-07-06.mdx
new file mode 100644
index 00000000000..556bd40c5b9
--- /dev/null
+++ b/src/pages/community-report/_reports/2026-07-06.mdx
@@ -0,0 +1,425 @@
+{/* Auto-generated by community-radar `report export-mdx` — do not edit by 
hand.
+    `report` is English-only structured data laid out by doris-website. */}
+
+export const label = "Jul 6 – Jul 12, 2026";
+export const week = "Week 28, 2026";
+export const stats = [
+  {
+    "num": "89",
+    "label": "Merged PRs"
+  },
+  {
+    "num": "22",
+    "label": "New issues"
+  },
+  {
+    "num": "45",
+    "label": "Contributors"
+  }
+];
+
+export const report = {
+  "summary": {
+    "lead": "Doris maintained a high-velocity week with 89 merged PRs across 
six capability lines and 45 contributors driving the kernel-engineering and 
real-time data warehouse tracks. The convergence across cloud-native 
decoupling, lakehouse format coverage, and query optimizer work signals Doris 
is accelerating from point capability building toward an end-to-end real-time 
analytics platform. With newer threads in agent observability and security & 
governance also picking up, the proje [...]
+    "highlights": [
+      {
+        "title": "Incremental computation: row binlog, Table Stream, and MTMV 
unification",
+        "narrative": "This week fills in key pieces of the incremental 
pipeline: Table Stream gains snapshot reads, MTMV partition lineage is 
deduplicated to cut FE cost, and MySQL ADD/DROP columns now flow through 
streaming jobs. Together with the row-binlog tracking, signal Doris is 
converging stream and batch increments onto one engine layer.",
+        "prs": [
+          {
+            "num": 65265,
+            "title": "[Tracking][Binlog] Binlog feature umbrella — all 
sub-issues tracked here",
+            "url": "https://github.com/apache/doris/issues/65265";
+          },
+          {
+            "num": 65418,
+            "title": "[Feature] Track incremental computation with row binlog, 
Table Stream, and MTMV",
+            "url": "https://github.com/apache/doris/issues/65418";
+          },
+          {
+            "num": 64776,
+            "title": " [feat](dynamic table) support table stream part 4: 
support snapshot read",
+            "url": "https://github.com/apache/doris/pull/64776";
+          },
+          {
+            "num": 63899,
+            "title": "[improvement](mtmv) Optimize MTMV partition lineage 
check",
+            "url": "https://github.com/apache/doris/pull/63899";
+          },
+          {
+            "num": 65325,
+            "title": "[improve](streaming-job) Support MySQL ADD DROP schema 
changes",
+            "url": "https://github.com/apache/doris/pull/65325";
+          }
+        ]
+      },
+      {
+        "title": "Cloud / decoupled storage tier: file cache, metadata cache, 
time travel",
+        "narrative": "Cloud mode adds Time Travel for point-in-time audit 
queries, while external-table file caches now persist table/partition context 
and footer metadata lands on disk with runtime capacity adjustment. Adaptive 
random-bucket routing trims load writer pressure, rounding out the decoupled 
storage stack.",
+        "prs": [
+          {
+            "num": 65422,
+            "title": "[Feature] Time Travel: SELECT ... FOR TIME AS OF 
'<timestamp>' in cloud/decoupled mode",
+            "url": "https://github.com/apache/doris/issues/65422";
+          },
+          {
+            "num": 61518,
+            "title": "[feature](filecache) persist table/partition context for 
cache meta for external table",
+            "url": "https://github.com/apache/doris/pull/61518";
+          },
+          {
+            "num": 63376,
+            "title": "[improvement](be) Add disk cache for external file 
metadata",
+            "url": "https://github.com/apache/doris/pull/63376";
+          },
+          {
+            "num": 65477,
+            "title": "[improvement](be) Support dynamic file cache capacity",
+            "url": "https://github.com/apache/doris/pull/65477";
+          },
+          {
+            "num": 62661,
+            "title": "[feature](load) introduce adaptive random bucket load 
routing",
+            "url": "https://github.com/apache/doris/pull/62661";
+          },
+          {
+            "num": 65431,
+            "title": "[Feat](TimeTravel) Time Travel for Cloud / Decoupled 
Mode",
+            "url": "https://github.com/apache/doris/pull/65431";
+          }
+        ]
+      },
+      {
+        "title": "Lakehouse format coverage: Iceberg + Paimon write/read 
integration",
+        "narrative": "Lakehouse integration deepens on both sides: Iceberg 
REST Catalog gains OIDC session credentials and nested-column DDL, while Paimon 
JNI reads wire up IOManager and JNI write support lands. The FE metadata cache 
refactor sets up future formats, and ANN pre-filtering sharpens vector search 
selectivity.",
+        "prs": [
+          {
+            "num": 63068,
+            "title": "[feature](fe) Support OIDC session credentials for 
Iceberg REST catalog",
+            "url": "https://github.com/apache/doris/pull/63068";
+          },
+          {
+            "num": 65332,
+            "title": "[improvement](paimon) Support IOManager for JNI reads",
+            "url": "https://github.com/apache/doris/pull/65332";
+          },
+          {
+            "num": 65329,
+            "title": "[feature](iceberg) Support nested column schema change",
+            "url": "https://github.com/apache/doris/pull/65329";
+          },
+          {
+            "num": 65381,
+            "title": "[feature](paimon) Paimon JNI write support",
+            "url": "https://github.com/apache/doris/pull/65381";
+          },
+          {
+            "num": 65126,
+            "title": "[refactor](fe) Refactor external metadata cache with 
MetaCacheEntry",
+            "url": "https://github.com/apache/doris/pull/65126";
+          },
+          {
+            "num": 64377,
+            "title": "[feature](ann-index) Pre-filter column predicates into 
ANN TopN searc…",
+            "url": "https://github.com/apache/doris/pull/64377";
+          }
+        ]
+      },
+      {
+        "title": "Query optimizer: DPHyper stats, unique propagation, eager 
agg, hash join, lazy materialization",
+        "narrative": "The optimizer focuses on cost and propagation signals: 
DPhyper refreshes statistics after join enumeration, LogicalJoin now unions 
multi-column unique sets, and distinct aggregation folds into eager agg driven 
by stats. Hash-join probes avoid copying in the all-match path, and multi-stage 
predicate lazy materialization sets up future auto-tuning for lighter 
materialization.",
+        "prs": [
+          {
+            "num": 64559,
+            "title": "[opt](dphyper)optimize dphyper's statistics calculation",
+            "url": "https://github.com/apache/doris/pull/64559";
+          },
+          {
+            "num": 62980,
+            "title": "[improvement](nereids) Enhance LogicalJoin.computeUnique 
with unique-set union propagation",
+            "url": "https://github.com/apache/doris/pull/62980";
+          },
+          {
+            "num": 65099,
+            "title": "[improvement](eager-agg) Push down distinct aggregation 
using statistics",
+            "url": "https://github.com/apache/doris/pull/65099";
+          },
+          {
+            "num": 65300,
+            "title": "[improvement](be) Optimize hash join probe side output",
+            "url": "https://github.com/apache/doris/pull/65300";
+          },
+          {
+            "num": 64891,
+            "title": "[enhancement](Multi-stage lm) Multi-Stage Predicate Lazy 
Materialization",
+            "url": "https://github.com/apache/doris/pull/64891";
+          }
+        ]
+      },
+      {
+        "title": "Full-text & ANN indexing: Japanese analyzer, SNII format, 
ANN pre-filter",
+        "narrative": "Indexing expands for multilingual and hybrid search: the 
inverted index adds Kuromoji-based Japanese tokenization, SNII lands as a 
parallel storage path, and ANN TopN pushes pre-filterable column predicates 
before the vector scan. REGEXP_EXTRACT_ALL_ARRAY rounds out the text-processing 
toolkit.",
+        "prs": [
+          {
+            "num": 61156,
+            "title": "[Feature](func) Support REGEXP_EXTRACT_ALL_ARRAY",
+            "url": "https://github.com/apache/doris/pull/61156";
+          },
+          {
+            "num": 64667,
+            "title": "[feature](inverted-index) Add Japanese (Kuromoji) 
morphological analyzer",
+            "url": "https://github.com/apache/doris/pull/64667";
+          },
+          {
+            "num": 64909,
+            "title": "[feature](be) Add SNII inverted index storage format",
+            "url": "https://github.com/apache/doris/pull/64909";
+          },
+          {
+            "num": 65482,
+            "title": "[feature](query-cache) Support incremental merge for 
stale query cache entries",
+            "url": "https://github.com/apache/doris/pull/65482";
+          }
+        ]
+      }
+    ],
+    "numbers": {
+      "mergedPrs": 89,
+      "newIssues": 22,
+      "contributors": 45
+    }
+  },
+  "repos": [
+    {
+      "repo": "apache/doris",
+      "scenarios": [
+        {
+          "name": "Multi-modal Lakehouse",
+          "mergedNarrative": "Lakehouse work this week deepened Doris's read 
paths across Iceberg, Paimon, ORC and external catalogs. Deletion vectors were 
rewritten as Roaring bitmaps for leaner caching, Iceberg struct-evolution cast 
nullability and Paimon JNI predicate fallbacks were corrected, the format-v2 
pipeline gained an ORC reader, and catalog quirks like MaxCompute 
partition-by-name and",
+          "merged": [
+            {
+              "num": 64937,
+              "title": "[fix](fe) Parse MaxCompute partition specs by name",
+              "url": "https://github.com/apache/doris/pull/64937";
+            },
+            {
+              "num": 65083,
+              "title": "[fix](maxcompute)Fix MaxCompute IN predicate pushdown 
polarity.",
+              "url": "https://github.com/apache/doris/pull/65083";
+            },
+            {
+              "num": 65085,
+              "title": "[fix](orc)fix hive-orc reader read columns base in 
column index by default rather than column name.",
+              "url": "https://github.com/apache/doris/pull/65085";
+            },
+            {
+              "num": 65094,
+              "title": "[fix](fe) Preserve external table column name case",
+              "url": "https://github.com/apache/doris/pull/65094";
+            },
+            {
+              "num": 65165,
+              "title": "[fix](glue) cache credentials provider in 
ConfigurationAWSCredentialsProvider",
+              "url": "https://github.com/apache/doris/pull/65165";
+            }
+          ],
+          "inProgressNarrative": "Multi-modal lakehouse work sharpens 
correctness on external sources: Iceberg REST catalog re-auth on 401 instead of 
wedging, position-deletes system table support, static-partition overwrite with 
empty source, Iceberg written bounds aligned with Spark, and ignoring stale 
external partitions during pruning. Complementary changes add a lance-c 
third-party dependency, reuse the Paimon JNI",
+          "inProgress": []
+        },
+        {
+          "name": "Real-time Data Warehouse",
+          "mergedNarrative": "Real-time warehouse work converged on ingestion, 
optimizer and scanner this week. Stream load gained forward group commit and 
CDC stream-TVF delete-sign support, PostgreSQL change detection switched to 
Relation events, and TopN plus FileScannerV2 received opt-in cache-write 
controls. The optimizer side closed correctness holes in 
PushDownAggThroughJoinOnPkFk, eager aggregation over empty relations",
+          "merged": [
+            {
+              "num": 65369,
+              "title": "[improvement](be) Optimize Parquet predicate filtering 
in format v2",
+              "url": "https://github.com/apache/doris/pull/65369";
+            },
+            {
+              "num": 63594,
+              "title": "[fix](group commit) support forward group commit 
stream load",
+              "url": "https://github.com/apache/doris/pull/63594";
+            },
+            {
+              "num": 64820,
+              "title": "(fix)(eager-agg) null-to-non-null safety check and 
remove redundant normalize calls in eager aggregation",
+              "url": "https://github.com/apache/doris/pull/64820";
+            },
+            {
+              "num": 64850,
+              "title": "[improvement](streaming-job) Detect PostgreSQL schema 
changes from Relation events",
+              "url": "https://github.com/apache/doris/pull/64850";
+            },
+            {
+              "num": 64898,
+              "title": "[fix](fe) Prevent pushing other join conditions to 
right child of null-aware anti join",
+              "url": "https://github.com/apache/doris/pull/64898";
+            }
+          ],
+          "inProgressNarrative": "Real-time data warehouse work keeps refining 
the planner, ingest path, and scanner efficiency. Planner fixes stabilize now() 
within one execution, remove FD-redundant GROUP BY keys via ANY_VALUE, tighten 
anti-join null-reject inference, scale broadcast cost by backend count, and 
disable top-N lazy materialization on non-light-schema-change tables. Ingest 
and execution add SHOW",
+          "inProgress": []
+        },
+        {
+          "name": "Compute-Storage Separation & Cloud-Native",
+          "mergedNarrative": "Toward a cleaner compute-storage split and 
cloud-native posture, this week's work advanced along four lines: rendezvous 
(HRW) hashing replaced modulo placement so colocate tables ride out 
compute-group scale events with far less cold-cache jitter; the fe-filesystem 
SPI gained an HTTP module and capability groundwork for future consumers; 
operations were tightened",
+          "merged": [
+            {
+              "num": 64564,
+              "title": "[chore](tde) Add scoped KMS credentials to regression 
clusters",
+              "url": "https://github.com/apache/doris/pull/64564";
+            },
+            {
+              "num": 64638,
+              "title": "[improvement](cloud) Use rendezvous hashing for 
colocate tablet placement",
+              "url": "https://github.com/apache/doris/pull/64638";
+            },
+            {
+              "num": 64853,
+              "title": "[feature](fs-spi) add HTTP filesystem module, 
capability framework and URI validation",
+              "url": "https://github.com/apache/doris/pull/64853";
+            }
+          ],
+          "inProgressNarrative": "Compute-storage separation and cloud-native 
work targets multi-tenant efficiency, observability, and recycler reliability: 
tenant-level Colocation reduces replica redundancy and removes bucket-count 
limits, while a Resource Group affinity extension framework for FE query, load, 
and repair scheduling ships as no-op by default so vendors can plug in custom 
policies. Cloud-mode fixes land",
+          "inProgress": [
+            {
+              "num": 64167,
+              "title": "[feat](colocate) support tenant-level colocation",
+              "url": "https://github.com/apache/doris/pull/64167";
+            },
+            {
+              "num": 65173,
+              "title": "[feature](fe) Add resource group affinity extension 
framework",
+              "url": "https://github.com/apache/doris/pull/65173";
+            }
+          ]
+        },
+        {
+          "name": "Agent Observability",
+          "mergedNarrative": "To keep Doris observable under heavy cloud load, 
the community closed two observability gaps this week. The Cloud P0 
index-change wait was lengthened and hardened with a FINISHED-only check to 
eliminate flake, while BE metrics gained dedicated remote-byte counters for 
inverted-index and segment-footer file cache, letting operators distinguish 
cold cache",
+          "merged": [
+            {
+              "num": 65197,
+              "title": "[fix](regression) stabilize index change wait",
+              "url": "https://github.com/apache/doris/pull/65197";
+            },
+            {
+              "num": 65398,
+              "title": "[improve](metrics) Export file cache remote index byte 
metrics",
+              "url": "https://github.com/apache/doris/pull/65398";
+            }
+          ],
+          "inProgressNarrative": "Agent observability work focuses on 
hardening index and streaming load paths: blocking legacy V1 inverted index 
creation to keep small-file merging effective, aligning JSON Stream Load 
boolean scalar casts with INSERT INTO, and unifying json_extract_no_quotes as 
an alias of json_extract_string so FE binding and rewrite behavior stay 
consistent. New this",
+          "inProgress": [
+            {
+              "num": 64522,
+              "title": "[fix](fe) block inverted index V1 creation in FE ",
+              "url": "https://github.com/apache/doris/pull/64522";
+            },
+            {
+              "num": 64773,
+              "title": "[fix](load) Align JSON stream load scalar casts",
+              "url": "https://github.com/apache/doris/pull/64773";
+            },
+            {
+              "num": 65380,
+              "title": "[fix](fe) Treat json_extract_no_quotes as 
json_extract_string alias",
+              "url": "https://github.com/apache/doris/pull/65380";,
+              "isNew": true
+            }
+          ]
+        },
+        {
+          "name": "Security & Governance",
+          "mergedNarrative": "On the security and governance front, this week 
delivered a key consistency hardening: when HTTPS is enabled cluster-wide, 
FE-to-FE traffic also switches to HTTPS automatically, eliminating the residual 
plaintext channel that previously undermined hardened or zero-trust deployments 
of Doris.",
+          "merged": [
+            {
+              "num": 60921,
+              "title": "[Enhancement] (FE) Convert intra FE-to-FE calls to 
HTTPS when enabled",
+              "url": "https://github.com/apache/doris/pull/60921";
+            }
+          ],
+          "inProgressNarrative": "Security and governance work tightens 
authorization and dependency hygiene: a new SHOW GRANTS FOR ROLE command for 
role-level audits, output-buffer bounds checks in the Snappy decompressor, 
normalized internal FE HTTP URLs under enable_https, and a consolidated CVE 
patch covering Netty DNS resolver cache poisoning and Go-side vulnerabilities, 
reducing Doris's attack",
+          "inProgress": [
+            {
+              "num": 62995,
+              "title": "[feature](nereids) support show grants for role xxx 
command to display grants by role",
+              "url": "https://github.com/apache/doris/pull/62995";
+            },
+            {
+              "num": 63910,
+              "title": "check output buffer bounds in SnappyBlockDecompressor",
+              "url": "https://github.com/apache/doris/pull/63910";
+            },
+            {
+              "num": 64697,
+              "title": "[Improve](Audit) Auditlog on FE with https enabled",
+              "url": "https://github.com/apache/doris/pull/64697";
+            },
+            {
+              "num": 65212,
+              "title": "[fix](https) normalize internal FE HTTP URLs",
+              "url": "https://github.com/apache/doris/pull/65212";
+            }
+          ]
+        },
+        {
+          "name": "Kernel & Engineering",
+          "mergedNarrative": "Kernel engineering concentrated on stability and 
developer efficiency: a long-standing ASAN-only BE crash on the throw path was 
finally rooted out via `__asan_handle_no_return`, print-stack and scan-executor 
lifetimes were hardened, and latent type and overflow hazards were closed 
across schema, transaction, ORC and analytic paths. Alongside that, 
fast-fe-ut.sh, stronger Codex review",
+          "merged": [
+            {
+              "num": 63188,
+              "title": "[fix](build) Update pytest dependency pins for 
security advisories",
+              "url": "https://github.com/apache/doris/pull/63188";
+            },
+            {
+              "num": 64093,
+              "title": "[Enhancement](BE) Make print stack API more stable",
+              "url": "https://github.com/apache/doris/pull/64093";
+            },
+            {
+              "num": 64670,
+              "title": "[fix](show frontends) show effective HTTP/HTTPS port",
+              "url": "https://github.com/apache/doris/pull/64670";
+            },
+            {
+              "num": 64732,
+              "title": "[chore](broker)(sdk) Remove apache_hdfs_broker daemon 
module and in-tree SDKs",
+              "url": "https://github.com/apache/doris/pull/64732";
+            },
+            {
+              "num": 64789,
+              "title": "[fix](regression) Adjust large TTL cache regression 
case",
+              "url": "https://github.com/apache/doris/pull/64789";
+            }
+          ],
+          "inProgressNarrative": "Kernel and engineering work continues 
hardening storage, load, and execution layers: MoW delete bitmap races with 
segcompaction, Nereids constant folding aligned with BE behavior, Arrow and 
Parquet dictionary decoder bounds, empty-input split semantics, stale output 
capacity in Lz4BlockDecompressor, and tighter MOW/MV delete-bitmap queue 
observability. New this week extend coverage to",
+          "inProgress": []
+        }
+      ],
+      "demand": [
+        {
+          "name": "Real-time Data Warehouse",
+          "narrative": "For real-time data warehousing, the community is 
building an end-to-end incremental computation stack: row binlogs capture 
durable row-level changes with before images and LSN/TSO, Table Stream exposes 
those changes as a queryable stream, and MTMVs consume the stream for 
continuously refreshed materialized views. Together they turn Doris into a true 
streaming warehouse where analytics stay fresh without full refreshes.",
+          "refs": [
+            {
+              "num": 65418,
+              "title": "[Feature] Track incremental computation with row 
binlog, Table Stream, and MTMV",
+              "url": "https://github.com/apache/doris/issues/65418";
+            }
+          ]
+        },
+        {
+          "name": "Compute-Storage Separation & Cloud-Native",
+          "narrative": "For real-time data warehousing, the community is 
building an end-to-end incremental computation stack: row binlogs capture 
durable row-level changes with before images and LSN/TSO, Table Stream exposes 
those changes as a queryable stream, and MTMVs consume the stream for 
continuously refreshed materialized views. Together they turn Doris into a true 
streaming warehouse where analytics stay fresh without full refreshes.",
+          "refs": [
+            {
+              "num": 65422,
+              "title": "[Feature] Time Travel: SELECT ... FOR TIME AS OF 
'<timestamp>' in cloud/decoupled mode",
+              "url": "https://github.com/apache/doris/issues/65422";
+            }
+          ]
+        }
+      ]
+    }
+  ]
+};


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to