diff --git a/docs/guides/mcp/claude-code.mdx b/docs/guides/mcp/claude-code.mdx index ec53a2630..2308fcbd6 100644 --- a/docs/guides/mcp/claude-code.mdx +++ b/docs/guides/mcp/claude-code.mdx @@ -10,9 +10,7 @@ import PluginPage from '@site/src/components/PluginPage'; /mcp/\ncodex mcp login glean' }, + ], + }, + ]} +/> diff --git a/docs/guides/mcp/cursor.mdx b/docs/guides/mcp/cursor.mdx index c04488a77..27f3dd023 100644 --- a/docs/guides/mcp/cursor.mdx +++ b/docs/guides/mcp/cursor.mdx @@ -8,9 +8,8 @@ import PluginPage from '@site/src/components/PluginPage'; ". */ + title?: string; steps: PluginStep[]; }; +function StepBody({ step }: { step: PluginStep }): React.ReactElement { + const imageUrl = useBaseUrl(step.image ?? ''); + return ( + <> +
{step.label}
+

{step.description}

+ {step.type === 'cta' ? ( + + {step.ctaText} + {getIcon('ArrowUpRight', 'feather', { + width: 16, + height: 16, + color: 'currentColor', + })} + + ) : null} + {step.type === 'list' ? ( +
    + {step.items.map((item) => ( +
  1. {item}
  2. + ))} +
+ ) : null} + {step.type === 'command' + ? step.commands.map((cmd) => ( +
+ +
+ )) + : null} + {step.image ? ( + {step.label} + ) : null} + + ); +} + +/** + * Plugin install page in the homepage-redesign design language: token-based + * banner with brand lockup, numbered step rail, terminal command panels. + */ export default function PluginPage({ name, tagline, - logo, - accentColor, + clientId, + mono = false, + title, steps, -}: PluginPageProps) { +}: PluginPageProps): React.ReactElement { return ( -
- {/* Hero */} -
-
-
- Glean - × - {name} -
-

Official Glean Plugin for {name}

-

{tagline}

+
+
+ + + Official Glean plugin + +
+ + {getIcon('glean-logo', 'glean', { + width: 26, + height: 26, + color: 'currentColor', + })} + + × +
+

+ {title ?? `Glean plugin for ${name}`} +

+

{tagline}

-

Installation

- - {/* Steps */} - +
Installation
+
+
{steps.map((step, i) => ( - -

{step.description}

- {step.type === 'cta' && ( - - {step.ctaText} - - )} - {step.type === 'list' && ( -
    - {step.items.map((item, j) => ( -
  1. {item}
  2. - ))} -
- )} - {step.type === 'command' && - step.commands.map((cmd, j) => ( -
-

{cmd.title}

- {cmd.code} -
- ))} - {step.image && ( - - {step.label} - - )} -
+
+ {i + 1} +
+ +
+
))} - +
); } diff --git a/src/components/PluginPage/styles.module.css b/src/components/PluginPage/styles.module.css index c6138e557..697eba5dd 100644 --- a/src/components/PluginPage/styles.module.css +++ b/src/components/PluginPage/styles.module.css @@ -1,97 +1,230 @@ -/* HERO */ -.hero { +/* Plugin install page v2 — homepage-redesign design language. + * Token-based (light-first, dark mode maps through --gdt-*). */ + +.page { + font-family: var(--gdt-font-text); +} + +/* ---- Banner ---- */ + +.banner { + border-radius: 20px; + border: 1px solid var(--gdt-border-light); background: linear-gradient( 135deg, - #0b0e51 0%, - var(--plugin-accent, #4785b0) 100% + var(--gdt-bg-light) 0%, + var(--gdt-selected-bg) 100% ); - border-radius: 12px; - padding: 3rem 2.5rem; - margin-bottom: 2.5rem; - color: #ffffff; + padding: 40px 36px; + margin-bottom: 36px; } -.heroInner { - max-width: 640px; +.eyebrow { + display: inline-flex; + align-items: center; + gap: 8px; + height: 28px; + padding: 0 12px; + border-radius: 9999px; + background: var(--gdt-card-bg); + border: 1px solid var(--gdt-border-light); + color: var(--gdt-info-fg); + font-size: 12px; + font-weight: 500; + margin-bottom: 22px; +} + +.eyebrowDot { + width: 6px; + height: 6px; + border-radius: 9999px; + background: var(--gdt-primary); } -.logoRow { +.lockup { display: flex; align-items: center; - gap: 1rem; - margin-bottom: 1.5rem; + gap: 14px; + margin-bottom: 20px; +} + +.brandTile { + width: 52px; + height: 52px; + border-radius: 14px; + background: var(--gdt-card-bg); + border: 1px solid var(--gdt-border-light); + color: var(--gdt-text-primary); + display: inline-flex; + align-items: center; + justify-content: center; +} + +.brandTile svg { + width: 26px; + height: 26px; } -.gleanLogo { - width: 32px; - height: 32px; - object-fit: contain; +/* Monochrome brand marks (Cursor, Codex) need inverting on dark */ +html[data-theme='dark'] .brandTileMono svg { + filter: invert(1) hue-rotate(180deg); } .times { - font-size: 1.25rem; - opacity: 0.6; - font-weight: 300; + font-size: 18px; + color: var(--gdt-text-secondary); } -.pluginLogo { - width: 32px; - height: 32px; - object-fit: contain; - border-radius: 6px; +/* Compound selector out-ranks brand.css `.main-wrapper h1` (0,1,1), which + * otherwise forces letter-spacing +0.025em and line-height 1.2. */ +.banner h1.bannerTitle { + font-family: var(--gdt-font-display); + font-size: 34px; + line-height: 1.12; + letter-spacing: 0; + font-weight: 800; + margin: 0 0 10px; } -.heroTitle { - font-size: 1.75rem; - font-weight: 700; - color: #ffffff !important; - margin-bottom: 0.75rem; - line-height: 1.2; +.bannerTagline { + font-size: 16px; + line-height: 1.55; + color: var(--gdt-text-secondary); + max-width: 560px; + margin: 0; +} + +@media (max-width: 768px) { + .banner { + padding: 28px 22px; + } + + .banner h1.bannerTitle { + font-size: 26px; + } +} + +/* ---- Section label (matches recipe pages) ---- */ + +.sectionLabel { + font-size: 12px; + font-weight: 600; + letter-spacing: 0.5px; + color: var(--gdt-primary); + text-transform: uppercase; + margin-bottom: 16px; +} + +/* ---- Numbered step rail (matches recipe pages) ---- */ + +.stepsWrap { + position: relative; + padding-left: 40px; + margin-bottom: 32px; +} + +.stepsRail { + position: absolute; + left: 11px; + top: 8px; + bottom: 8px; + width: 2px; + background: var(--gdt-border-light); } -.heroTagline { - font-size: 1.0625rem; - opacity: 0.85; +.stepRow { + position: relative; + margin-bottom: 28px; +} + +.stepRow:last-child { margin-bottom: 0; - line-height: 1.55; } -/* Command label */ -.commandLabel { - font-size: 0.875rem; +.stepNum { + position: absolute; + left: -40px; + width: 24px; + height: 24px; + border-radius: 9999px; + background: var(--gdt-primary); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + font-size: 12px; font-weight: 600; - color: var(--ifm-color-content-secondary); - margin-bottom: 0.375rem; - margin-top: 0.75rem; } -/* CTA button */ +.stepBody { + font-size: 14.5px; + line-height: 1.55; +} + +.stepLabel { + font-family: var(--gdt-font-display); + font-size: 17px; + font-weight: 700; + margin-bottom: 6px; +} + +.stepDescription { + color: var(--gdt-text-secondary); + margin: 0 0 14px; + max-width: 640px; +} + +/* ---- CTA step ---- */ + .ctaButton { display: inline-flex; align-items: center; - padding: 0.625rem 1.25rem; - border-radius: 6px; + gap: 8px; + height: 44px; + padding: 0 22px; + border-radius: 9999px; + background: var(--gdt-primary); + color: #fff; + font-size: 14px; font-weight: 600; - font-size: 0.9375rem; - color: #ffffff !important; - text-decoration: none !important; - border: 2px solid transparent; - transition: opacity 0.15s ease; - margin-top: 0.75rem; + transition: background 0.15s ease; } .ctaButton:hover { - opacity: 0.88; - color: #ffffff !important; + background: var(--gdt-primary-hover); + color: #fff; + text-decoration: none; } -/* Responsive */ -@media (max-width: 768px) { - .hero { - padding: 2rem 1.5rem; - } +/* ---- List step ---- */ - .heroTitle { - font-size: 1.375rem; - } +.stepList { + margin: 0 0 14px; + padding-left: 20px; +} + +.stepList li { + margin-bottom: 6px; +} + +/* ---- Command step ---- */ + +.commandBlock { + max-width: 640px; + margin-bottom: 14px; +} + +.commandBlock:last-child { + margin-bottom: 0; +} + +/* ---- Screenshot ---- */ + +.stepImage { + display: block; + max-width: 640px; + width: 100%; + border-radius: 14px; + border: 1px solid var(--gdt-border-light); + margin-top: 6px; } diff --git a/src/components/home/HomeRedesign.module.css b/src/components/home/HomeRedesign.module.css index 108a6d56b..a6021de0e 100644 --- a/src/components/home/HomeRedesign.module.css +++ b/src/components/home/HomeRedesign.module.css @@ -392,6 +392,33 @@ html[data-theme='dark'] .heroSecondary:hover { font-family: var(--ifm-font-family-monospace); } +.terminalCopy { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + margin-left: 10px; + border: none; + border-radius: 6px; + background: transparent; + color: #8b8f98; + cursor: pointer; + transition: + color 0.15s ease, + background 0.15s ease; +} + +.terminalCopy:hover { + color: #e6e7ea; + background: rgba(255, 255, 255, 0.08); +} + +/* When there is no label, push the copy button to the right edge. */ +.terminalCopyEnd { + margin-left: auto; +} + .terminalPre { margin: 0; padding: 22px 20px; diff --git a/src/components/home/HomeRedesign.tsx b/src/components/home/HomeRedesign.tsx index 887e73bce..693651396 100644 --- a/src/components/home/HomeRedesign.tsx +++ b/src/components/home/HomeRedesign.tsx @@ -390,8 +390,8 @@ const MCP_CARDS = [ }, { title: 'Codex', - body: 'Install the Glean plugins for Codex from the gleanwork marketplace.', - href: 'https://github.com/gleanwork/codex-plugins', + body: 'Install the Glean plugin for Codex — enterprise knowledge in your terminal.', + href: '/guides/mcp/codex', clientId: 'codex', mono: true, }, diff --git a/src/components/home/TerminalPanel.tsx b/src/components/home/TerminalPanel.tsx index e59699682..92b475c66 100644 --- a/src/components/home/TerminalPanel.tsx +++ b/src/components/home/TerminalPanel.tsx @@ -1,4 +1,5 @@ -import React from 'react'; +import React, { useState } from 'react'; +import { getIcon } from '@gleanwork/docusaurus-theme-glean/Icons'; import styles from './HomeRedesign.module.css'; /** Minimal syntax tinting per the handoff token colors. */ @@ -41,6 +42,8 @@ interface TerminalPanelProps { label?: string; code: string; className?: string; + /** Show a copy-to-clipboard button in the header. */ + copy?: boolean; } /** Dark editor/terminal card per the handoff: mac dots, filename, label. */ @@ -49,7 +52,20 @@ export default function TerminalPanel({ label, code, className, + copy = false, }: TerminalPanelProps): React.ReactElement { + const [copied, setCopied] = useState(false); + + const copyCode = async () => { + try { + await navigator.clipboard.writeText(code); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { + // Clipboard unavailable; the code stays selectable. + } + }; + return (
@@ -58,6 +74,21 @@ export default function TerminalPanel({ {filename} {label ? {label} : null} + {copy ? ( + + ) : null}
{tint(code)}
diff --git a/src/css/custom.css b/src/css/custom.css index 42dd3da8e..52e44712e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -741,6 +741,13 @@ article:has(.home-redesign-root) > header { display: none; } +/* Plugin pages: the v2 banner carries the title — hide the duplicate + * doc-title header above it */ +article:has(.plugin-page-root) > .theme-doc-markdown > header, +article:has(.plugin-page-root) > header { + display: none; +} + /* Home redesign fills the main column: the doc container's max-width is * sized for text + TOC layouts, which the redesigned homepage doesn't use. * Scoped via :has so it only applies while the redesign is rendering. */ diff --git a/src/data/changelog.json b/src/data/changelog.json index ed05285bd..0ff5f58c8 100644 --- a/src/data/changelog.json +++ b/src/data/changelog.json @@ -1,5 +1,169 @@ { "entries": [ + { + "id": "2026-07-20-glean-agent-toolkit-0-7-0", + "slug": "glean-agent-toolkit-0-7-0", + "title": "glean-agent-toolkit 0.7.0", + "date": "2026-07-20", + "categories": [ + "Glean Agent Toolkit" + ], + "impact": "routine", + "attention": [], + "summary": "

Glean-agent-toolkit 0.7.0: tools: add transport seam, typed search backend, result truncation, status-code errors.

\n", + "fullContent": "

Glean-agent-toolkit 0.7.0: tools: add transport seam, typed search backend, result truncation, status-code errors.

\n

Changes

\n
    \n
  • tools: add transport seam, typed search backend, result truncation, status-code errors.
  • \n
  • chat: read citations from fragments with legacy fallback.
  • \n
  • core: ctx-aware as_*_tool, registry collision warnings, retry unit fix.
  • \n
  • read_document: support renamed retrieve kwarg across glean-api-client versions.
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-20-glean-agent-toolkit-0-7-0.md" + }, + { + "id": "2026-07-19-glean-agent-toolkit-0-6-1", + "slug": "glean-agent-toolkit-0-6-1", + "title": "glean-agent-toolkit 0.6.1", + "date": "2026-07-19", + "categories": [ + "Glean Agent Toolkit" + ], + "impact": "routine", + "attention": [], + "summary": "

Glean-agent-toolkit 0.6.1: read_document: support renamed retrieve kwarg across glean-api-client versions.

\n", + "fullContent": "

Glean-agent-toolkit 0.6.1: read_document: support renamed retrieve kwarg across glean-api-client versions.

\n

Changes

\n
    \n
  • read_document: support renamed retrieve kwarg across glean-api-client versions.
  • \n
  • crewai: pass args_schema to BaseTool so the LLM sees real parameters.
  • \n
  • adk: expose real typed signatures so declarations and invocation work.
  • \n
  • openai: sanitize strict schemas and isolate per-tool conversion failures.
  • \n
  • adapters: map anyOf/union and array item types correctly in get_field_type.
  • \n
  • langchain: use StructuredTool so converted tools are invocable.
  • \n
  • tools: stop closing shared Glean client on every tool call.
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-19-glean-agent-toolkit-0-6-1.md" + }, + { + "id": "2026-07-19-glean-agent-toolkit-0-6-0", + "slug": "glean-agent-toolkit-0-6-0", + "title": "glean-agent-toolkit 0.6.0", + "date": "2026-07-19", + "categories": [ + "Glean Agent Toolkit" + ], + "impact": "action_required", + "attention": [ + { + "level": "action_required", + "label": "Action required" + }, + { + "level": "deprecated", + "label": "Deprecated" + } + ], + "summary": "

Glean-agent-toolkit 0.6.0: crewai: pass args_schema to BaseTool so the LLM sees real parameters.

\n", + "fullContent": "

Glean-agent-toolkit 0.6.0: crewai: pass args_schema to BaseTool so the LLM sees real parameters.

\n

Action Required

\n
    \n
  • Plan migration away from deprecated behavior.
  • \n
\n

Changes

\n
    \n
  • Add installable skills for SDK usage and tool building.
  • \n
  • Search API alignment, chat tool, deprecation path, get_tools, async support, import docs.
  • \n
  • Injectable GleanContext replaces hidden api_client() global (#62).
  • \n
  • deps: add [all] extra combining all framework adapters (CHK-001).
  • \n
  • crewai: pass args_schema to BaseTool so the LLM sees real parameters.
  • \n
  • adk: expose real typed signatures so declarations and invocation work.
  • \n
  • openai: sanitize strict schemas and isolate per-tool conversion failures.
  • \n
  • adapters: map anyOf/union and array item types correctly in get_field_type.
  • \n
  • langchain: use StructuredTool so converted tools are invocable.
  • \n
  • tools: stop closing shared Glean client on every tool call.
  • \n
  • Correct web search tool name from 'Web Browser' to 'Gemini Web Search'.
  • \n
  • Resolve remaining P2 eval items (CHK-111, CHK-115, CHK-118, CHK-119).
  • \n
  • Resolve eval checklist items — dedup, dead code, error handling, imports.
  • \n
  • Namespace tool names and optimize descriptions for LLM consumption.
  • \n
  • Structured error results and consistent adapter return types.
  • \n
  • Depend on langchain-core instead of langchain to support LangGraph 1.x.
  • \n
  • Regenerate lockfile.
  • \n
  • Align publish workflow tag trigger with commitizen tag format.
  • \n
  • Use is not None checks in read_document validation.
  • \n
  • Export Registry from top-level package.
  • \n
  • Remove pydantic BaseModel from adapters public API.
  • \n
  • Preserve float values in retry backoff config (CHK-002).
  • \n
  • release: correct broken version_files path in .cz.toml (CHK-006).
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-19-glean-agent-toolkit-0-6-0.md" + }, + { + "id": "2026-07-15-rest-api-changes-open-api", + "slug": "rest-api-changes-open-api", + "title": "REST API: changes (endpoints) 2026-07-15", + "date": "2026-07-15", + "categories": [ + "API" + ], + "impact": "noteworthy", + "attention": [ + { + "level": "noteworthy", + "label": "Noteworthy" + } + ], + "summary": "

2 endpoints added.

\n", + "fullContent": "

2 endpoints added.

\n

Changes

\n
    \n
  • Added endpoint: /rest/api/index/submissions/{datasourceInstance}/{type}
  • \n
  • Added endpoint: /submissions/{datasourceInstance}/{type}
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-15-rest-api-changes-open-api.md" + }, + { + "id": "2026-07-15-mcp-config-5-4-0", + "slug": "mcp-config-5-4-0", + "title": "mcp-config v5.4.0", + "date": "2026-07-15", + "categories": [ + "MCP" + ], + "impact": "routine", + "attention": [], + "summary": "

Mcp-config v5.4.0: mcp-config-glean, mcp-config-schema: add managed setup URLs.

\n", + "fullContent": "

Mcp-config v5.4.0: mcp-config-glean, mcp-config-schema: add managed setup URLs.

\n

Changes

\n
    \n
  • mcp-config-glean, mcp-config-schema: add managed setup URLs.
  • \n
  • mcp-config-schema: add Cursor Team MCP Servers client.
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-15-mcp-config-5-4-0.md" + }, + { + "id": "2026-07-14-mcp-config-5-3-0", + "slug": "mcp-config-5-3-0", + "title": "mcp-config v5.3.0", + "date": "2026-07-14", + "categories": [ + "MCP" + ], + "impact": "routine", + "attention": [], + "summary": "

Mcp-config v5.3.0: mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.

\n", + "fullContent": "

Mcp-config v5.3.0: mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.

\n

Changes

\n
    \n
  • mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-14-mcp-config-5-3-0.md" + }, + { + "id": "2026-07-10-api-client-typescript-0-17-3", + "slug": "api-client-typescript-0-17-3", + "title": "api-client-typescript v0.17.3", + "date": "2026-07-10", + "categories": [ + "API Clients" + ], + "impact": "routine", + "attention": [], + "summary": "

Api-client-typescript v0.17.3 includes 4 changes.

\n", + "fullContent": "

Api-client-typescript v0.17.3 includes 4 changes.

\n

Changes

\n
    \n
  • Changed request.chatRequest.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.chatResult.chat.messages[].fragments[] on client.chat.retrieve().
  • \n
  • Changed request.chatRequest.messages[].fragments[] on client.chat.createstream().
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-10-api-client-typescript-0-17-3.md" + }, + { + "id": "2026-07-10-api-client-python-0-15-3", + "slug": "api-client-python-0-15-3", + "title": "api-client-python v0.15.3", + "date": "2026-07-10", + "categories": [ + "API Clients" + ], + "impact": "routine", + "attention": [], + "summary": "

Api-client-python v0.15.3 includes 4 changes.

\n", + "fullContent": "

Api-client-python v0.15.3 includes 4 changes.

\n

Changes

\n
    \n
  • Changed request.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.chat_result.chat.messages[].fragments[] on client.chat.retrieve().
  • \n
  • Changed request.messages[].fragments[] on client.chat.create_stream().
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-10-api-client-python-0-15-3.md" + }, + { + "id": "2026-07-10-api-client-java-0-14-3", + "slug": "api-client-java-0-14-3", + "title": "api-client-java v0.14.3", + "date": "2026-07-10", + "categories": [ + "API Clients" + ], + "impact": "routine", + "attention": [], + "summary": "

Api-client-java v0.14.3 includes 4 changes.

\n", + "fullContent": "

Api-client-java v0.14.3 includes 4 changes.

\n

Changes

\n
    \n
  • Changed request.chatRequest.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.messages[].fragments[] on client.chat.create().
  • \n
  • Changed response.chatResult.chat.messages[].fragments[] on client.chat.retrieve().
  • \n
  • Changed request.chatRequest.messages[].fragments[] on client.chat.createstream().
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-10-api-client-java-0-14-3.md" + }, + { + "id": "2026-07-10-api-client-go-0-13-3", + "slug": "api-client-go-0-13-3", + "title": "api-client-go v0.13.3", + "date": "2026-07-10", + "categories": [ + "API Clients" + ], + "impact": "routine", + "attention": [], + "summary": "

Api-client-go v0.13.3 includes 4 changes.

\n", + "fullContent": "

Api-client-go v0.13.3 includes 4 changes.

\n

Changes

\n
    \n
  • Changed request.ChatRequest.Messages[].Fragments[] on client.chat.create().
  • \n
  • Changed response.Messages[].Fragments[] on client.chat.create().
  • \n
  • Changed response.ChatResult.Chat.Messages[].Fragments[] on client.chat.retrieve().
  • \n
  • Changed request.ChatRequest.Messages[].Fragments[] on client.chat.createstream().
  • \n
\n

Source

\n\n", + "hasTruncation": true, + "fileName": "2026-07-10-api-client-go-0-13-3.md" + }, { "id": "2026-07-08-api-client-typescript-0-17-2", "slug": "api-client-typescript-0-17-2", @@ -5459,6 +5623,6 @@ "Website", "langchain-glean" ], - "generatedAt": "2026-07-08T00:00:00.000Z", - "totalEntries": 317 + "generatedAt": "2026-07-20T00:00:00.000Z", + "totalEntries": 327 } \ No newline at end of file diff --git a/static/changelog.xml b/static/changelog.xml index ee2b00854..0102eed0e 100644 --- a/static/changelog.xml +++ b/static/changelog.xml @@ -4,7 +4,7 @@ Glean Developer Changelog https://developers.glean.com Updates and changes to the Glean Developer Platform - Wed, 08 Jul 2026 00:00:00 GMT + Mon, 20 Jul 2026 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html Glean Developer Site en @@ -14,6 +14,297 @@ https://developers.glean.com Copyright © 2026 Glean + + <![CDATA[glean-agent-toolkit 0.7.0]]> + https://developers.glean.com/changelog#glean-agent-toolkit-0-7-0 + 2026-07-20-glean-agent-toolkit-0-7-0 + Mon, 20 Jul 2026 00:00:00 GMT + Glean-agent-toolkit 0.7.0: tools: add transport seam, typed search backend, result truncation, status-code errors.

+]]>
+ Glean-agent-toolkit 0.7.0: tools: add transport seam, typed search backend, result truncation, status-code errors.

+

Changes

+
    +
  • tools: add transport seam, typed search backend, result truncation, status-code errors.
  • +
  • chat: read citations from fragments with legacy fallback.
  • +
  • core: ctx-aware as_*_tool, registry collision warnings, retry unit fix.
  • +
  • read_document: support renamed retrieve kwarg across glean-api-client versions.
  • +
+

Source

+ +]]>
+ Glean + Glean Agent Toolkit +
+ + <![CDATA[glean-agent-toolkit 0.6.1]]> + https://developers.glean.com/changelog#glean-agent-toolkit-0-6-1 + 2026-07-19-glean-agent-toolkit-0-6-1 + Sun, 19 Jul 2026 00:00:00 GMT + Glean-agent-toolkit 0.6.1: read_document: support renamed retrieve kwarg across glean-api-client versions.

+]]>
+ Glean-agent-toolkit 0.6.1: read_document: support renamed retrieve kwarg across glean-api-client versions.

+

Changes

+
    +
  • read_document: support renamed retrieve kwarg across glean-api-client versions.
  • +
  • crewai: pass args_schema to BaseTool so the LLM sees real parameters.
  • +
  • adk: expose real typed signatures so declarations and invocation work.
  • +
  • openai: sanitize strict schemas and isolate per-tool conversion failures.
  • +
  • adapters: map anyOf/union and array item types correctly in get_field_type.
  • +
  • langchain: use StructuredTool so converted tools are invocable.
  • +
  • tools: stop closing shared Glean client on every tool call.
  • +
+

Source

+ +]]>
+ Glean + Glean Agent Toolkit +
+ + <![CDATA[glean-agent-toolkit 0.6.0]]> + https://developers.glean.com/changelog#glean-agent-toolkit-0-6-0 + 2026-07-19-glean-agent-toolkit-0-6-0 + Sun, 19 Jul 2026 00:00:00 GMT + Glean-agent-toolkit 0.6.0: crewai: pass args_schema to BaseTool so the LLM sees real parameters.

+]]>
+ Glean-agent-toolkit 0.6.0: crewai: pass args_schema to BaseTool so the LLM sees real parameters.

+

Action Required

+
    +
  • Plan migration away from deprecated behavior.
  • +
+

Changes

+
    +
  • Add installable skills for SDK usage and tool building.
  • +
  • Search API alignment, chat tool, deprecation path, get_tools, async support, import docs.
  • +
  • Injectable GleanContext replaces hidden api_client() global (#62).
  • +
  • deps: add [all] extra combining all framework adapters (CHK-001).
  • +
  • crewai: pass args_schema to BaseTool so the LLM sees real parameters.
  • +
  • adk: expose real typed signatures so declarations and invocation work.
  • +
  • openai: sanitize strict schemas and isolate per-tool conversion failures.
  • +
  • adapters: map anyOf/union and array item types correctly in get_field_type.
  • +
  • langchain: use StructuredTool so converted tools are invocable.
  • +
  • tools: stop closing shared Glean client on every tool call.
  • +
  • Correct web search tool name from 'Web Browser' to 'Gemini Web Search'.
  • +
  • Resolve remaining P2 eval items (CHK-111, CHK-115, CHK-118, CHK-119).
  • +
  • Resolve eval checklist items — dedup, dead code, error handling, imports.
  • +
  • Namespace tool names and optimize descriptions for LLM consumption.
  • +
  • Structured error results and consistent adapter return types.
  • +
  • Depend on langchain-core instead of langchain to support LangGraph 1.x.
  • +
  • Regenerate lockfile.
  • +
  • Align publish workflow tag trigger with commitizen tag format.
  • +
  • Use is not None checks in read_document validation.
  • +
  • Export Registry from top-level package.
  • +
  • Remove pydantic BaseModel from adapters public API.
  • +
  • Preserve float values in retry backoff config (CHK-002).
  • +
  • release: correct broken version_files path in .cz.toml (CHK-006).
  • +
+

Source

+ +]]>
+ Glean + Glean Agent Toolkit +
+ + <![CDATA[REST API: changes (endpoints) 2026-07-15]]> + https://developers.glean.com/changelog#rest-api-changes-open-api + 2026-07-15-rest-api-changes-open-api + Wed, 15 Jul 2026 00:00:00 GMT + 2 endpoints added.

+]]>
+ 2 endpoints added.

+

Changes

+
    +
  • Added endpoint: /rest/api/index/submissions/{datasourceInstance}/{type}
  • +
  • Added endpoint: /submissions/{datasourceInstance}/{type}
  • +
+

Source

+ +]]>
+ Glean + API +
+ + <![CDATA[mcp-config v5.4.0]]> + https://developers.glean.com/changelog#mcp-config-5-4-0 + 2026-07-15-mcp-config-5-4-0 + Wed, 15 Jul 2026 00:00:00 GMT + Mcp-config v5.4.0: mcp-config-glean, mcp-config-schema: add managed setup URLs.

+]]>
+ Mcp-config v5.4.0: mcp-config-glean, mcp-config-schema: add managed setup URLs.

+

Changes

+
    +
  • mcp-config-glean, mcp-config-schema: add managed setup URLs.
  • +
  • mcp-config-schema: add Cursor Team MCP Servers client.
  • +
+

Source

+ +]]>
+ Glean + MCP +
+ + <![CDATA[mcp-config v5.3.0]]> + https://developers.glean.com/changelog#mcp-config-5-3-0 + 2026-07-14-mcp-config-5-3-0 + Tue, 14 Jul 2026 00:00:00 GMT + Mcp-config v5.3.0: mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.

+]]>
+ Mcp-config v5.3.0: mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.

+

Changes

+
    +
  • mcp-config-schema: add Copilot Studio, Gemini Enterprise, and LibreChat clients.
  • +
+

Source

+ +]]>
+ Glean + MCP +
+ + <![CDATA[api-client-typescript v0.17.3]]> + https://developers.glean.com/changelog#api-client-typescript-0-17-3 + 2026-07-10-api-client-typescript-0-17-3 + Fri, 10 Jul 2026 00:00:00 GMT + Api-client-typescript v0.17.3 includes 4 changes.

+]]>
+ Api-client-typescript v0.17.3 includes 4 changes.

+

Changes

+
    +
  • Changed request.chatRequest.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.chatResult.chat.messages[].fragments[] on client.chat.retrieve().
  • +
  • Changed request.chatRequest.messages[].fragments[] on client.chat.createstream().
  • +
+

Source

+ +]]>
+ Glean + API Clients +
+ + <![CDATA[api-client-python v0.15.3]]> + https://developers.glean.com/changelog#api-client-python-0-15-3 + 2026-07-10-api-client-python-0-15-3 + Fri, 10 Jul 2026 00:00:00 GMT + Api-client-python v0.15.3 includes 4 changes.

+]]>
+ Api-client-python v0.15.3 includes 4 changes.

+

Changes

+
    +
  • Changed request.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.chat_result.chat.messages[].fragments[] on client.chat.retrieve().
  • +
  • Changed request.messages[].fragments[] on client.chat.create_stream().
  • +
+

Source

+ +]]>
+ Glean + API Clients +
+ + <![CDATA[api-client-java v0.14.3]]> + https://developers.glean.com/changelog#api-client-java-0-14-3 + 2026-07-10-api-client-java-0-14-3 + Fri, 10 Jul 2026 00:00:00 GMT + Api-client-java v0.14.3 includes 4 changes.

+]]>
+ Api-client-java v0.14.3 includes 4 changes.

+

Changes

+
    +
  • Changed request.chatRequest.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.messages[].fragments[] on client.chat.create().
  • +
  • Changed response.chatResult.chat.messages[].fragments[] on client.chat.retrieve().
  • +
  • Changed request.chatRequest.messages[].fragments[] on client.chat.createstream().
  • +
+

Source

+ +]]>
+ Glean + API Clients +
+ + <![CDATA[api-client-go v0.13.3]]> + https://developers.glean.com/changelog#api-client-go-0-13-3 + 2026-07-10-api-client-go-0-13-3 + Fri, 10 Jul 2026 00:00:00 GMT + Api-client-go v0.13.3 includes 4 changes.

+]]>
+ Api-client-go v0.13.3 includes 4 changes.

+

Changes

+
    +
  • Changed request.ChatRequest.Messages[].Fragments[] on client.chat.create().
  • +
  • Changed response.Messages[].Fragments[] on client.chat.create().
  • +
  • Changed response.ChatResult.Chat.Messages[].Fragments[] on client.chat.retrieve().
  • +
  • Changed request.ChatRequest.Messages[].Fragments[] on client.chat.createstream().
  • +
+

Source

+ +]]>
+ Glean + API Clients +
<![CDATA[api-client-typescript v0.17.2]]> https://developers.glean.com/changelog#api-client-typescript-0-17-2