Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type FieldCopy = Record<string, Readonly<{ description?: string; label: string;

const capabilityCopy: Record<WorkspaceLocale, Record<string, LocalizedCopy>> = {
en: {
context_delivery: {displayName: "Differential context", description: "Reuse unchanged context across supported Agent turns. A missing retained baseline keeps the full context."},
context_delivery: {displayName: "Progressive context", description: "Read current requirements before supporting material. Supported hosts can reuse unchanged context independently."},
codex_chat: {displayName: "Codex Goal conversation defaults", description: "Choose the native Codex profile, model, speed tier and reasoning effort for new Goal conversations. Existing conversations keep their original history. This does not start or reconfigure an active Agent Loop, worker or steward."},
decision_context: {displayName: "Find evidence", description: "Find advisory evidence with a temporary private profile. OpenViking and BM25 are retrieval implementations; this page does not save a binding or enable automatic memory."},
content_ops: {displayName: "Content production", description: "Prepare source-backed outlines, compose local videos or generate cloud images and footage with the optional media provider. Review the result before sharing."},
Expand Down Expand Up @@ -82,7 +82,7 @@ const capabilityCopy: Record<WorkspaceLocale, Record<string, LocalizedCopy>> = {
},
},
"zh-CN": {
context_delivery: {displayName: "差分上下文", description: "在支持的 Agent 轮次间复用未变化的上下文;无法确认基线保留时使用完整上下文。"},
context_delivery: {displayName: "渐进上下文", description: "先展示当前目标与约束,按需读取材料;支持的宿主可独立复用跨轮上下文。"},
codex_chat: {displayName: "Codex Goal 对话默认值", description: "分别选择 Codex 配置来源、模型、速度档和推理强度,作用于本机的新 Goal 对话。已有对话保留原历史;不会启动或重配正在运行的 Agent Loop、工作 Agent 或管家。"},
decision_context: {displayName: "资料召回", description: "通过临时私有配置查找参考证据。OpenViking、BM25 是检索实现;本页不保存绑定,也不启用自动记忆。"},
content_ops: {displayName: "内容制作", description: "准备有来源的提纲,使用可选媒体扩展制作本机视频、生成云端图像与镜头,检查作品后再分享。"},
Expand Down Expand Up @@ -247,13 +247,13 @@ export function localizeCapability(

export function localizedCapabilityFieldCopy(locale: WorkspaceLocale, capabilityId?: string): FieldCopy {
if (capabilityId === "context_delivery") return {...fieldCopy[locale], mode: locale === "zh-CN" ? {
label: "Codex", description: "仅作用于支持的 Codex 心跳;显式关闭的实验保持关闭。", options: {off: "关闭", on: "开启"},
label: "渐进读取", description: "适用于各宿主;关闭后保留完整内联输入。", options: {off: "关闭", on: "开启"},
} : {
label: "Codex", description: "Applies only to supported Codex heartbeats; explicitly disabled runs stay disabled.", options: {off: "Off", on: "On"},
}, antigravity_mode: locale === "zh-CN" ? {
label: "Antigravity", description: "仅作用于强能力 Antigravity 管家的交付历史渐进读取;关闭时保持完整内联。", options: {off: "关闭", on: "开启"},
label: "Progressive reads", description: "Applies across hosts; off keeps full inline input.", options: {off: "Off", on: "On"},
}, delta_delivery: locale === "zh-CN" ? {
label: "跨轮差分", description: "仅在支持连续性的宿主自动启用;可独立关闭,保留渐进读取。", options: {off: "关闭", auto: "自动"},
} : {
label: "Antigravity", description: "Applies only to progressive history reads in trusted-owner Antigravity manager sessions; off keeps full inline input.", options: {off: "Off", on: "On"},
label: "Cross-Turn Delta", description: "Automatic only on supported continuity hosts; off preserves progressive reads.", options: {off: "Off", auto: "Automatic"},
}};
if (capabilityId === "codex_chat") return {...fieldCopy[locale], ...(locale === "zh-CN" ? {
codex_profile: {label: "Codex 配置来源", description: "选择已有本机配置,例如 codex-gpt。账户和凭据留在原目录,不复制;留空继承服务配置。"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ export function MachineConfigurationSettings({ section, onChanged }: {
setNotice(null);
}

async function setContextDelivery(mode: "off" | "on", key: "mode" | "antigravity_mode" = "mode") {
async function setContextDelivery(mode: "off" | "on" | "auto", key: "mode" | "delta_delivery" = "mode") {
if (busy || !editorAvailable || selected?.capability_id !== "context_delivery" || !selected.machine_namespace) return;
const namespace = selected.machine_namespace;
const configuration = {...selected.default, ...selectedCurrent, [key]: mode};
Expand All @@ -298,8 +298,10 @@ export function MachineConfigurationSettings({ section, onChanged }: {
if (next.machine_configuration?.namespaces[namespace]?.[key] !== mode) {
throw new Error(locale === "zh-CN" ? "保存后的配置已变化,请刷新后重试。" : "The saved configuration changed. Refresh and retry.");
}
const targetLabel = key === "antigravity_mode" ? "Antigravity" : "Codex";
setNotice(locale === "zh-CN" ? `${targetLabel} 偏好已保存。` : `${targetLabel} preference saved.`);
const targetLabel = key === "delta_delivery"
? locale === "zh-CN" ? "跨轮差分" : "Cross-turn delta"
: locale === "zh-CN" ? "渐进读取" : "Progressive reads";
setNotice(locale === "zh-CN" ? `${targetLabel}偏好已保存。` : `${targetLabel} preference saved.`);
onChanged?.();
} catch (cause) {
if (generation === editorGeneration.current) setError(cause instanceof Error ? cause.message : t("machine.applyError"));
Expand Down Expand Up @@ -526,29 +528,21 @@ export function MachineConfigurationSettings({ section, onChanged }: {
</section>
) : null}

{selected.capability_id === "context_delivery" ? <section aria-label={locale === "zh-CN" ? "使用差分上下文的应用" : "Applications using differential context"} className="personal-capability-field-summary">
{selected.capability_id === "context_delivery" ? <section aria-label={locale === "zh-CN" ? "上下文读取方式" : "Context reading"} className="personal-capability-field-summary">
<div className="personal-capability-fields"><label className="is-boolean">
<span>Codex</span>
<input aria-label={locale === "zh-CN" ? "在 Codex 中使用差分上下文" : "Use differential context in Codex"}
<span>{locale === "zh-CN" ? "渐进读取" : "Progressive reads"}</span>
<input aria-label={locale === "zh-CN" ? "渐进读取上下文" : "Read context progressively"}
type="checkbox" role="switch" checked={(selectedCurrent?.mode ?? selected.default?.mode) === "on"} disabled={Boolean(busy) || !editorAvailable}
onChange={(event) => void setContextDelivery(event.target.checked ? "on" : "off", "mode")} />
</label><label className="is-boolean">
<span>Antigravity</span>
<input aria-label={locale === "zh-CN" ? "在 Antigravity 中渐进读取管家历史" : "Use progressive manager history in Antigravity"}
type="checkbox" role="switch" checked={(selectedCurrent?.antigravity_mode ?? selected.default?.antigravity_mode ?? "on") === "on"} disabled={Boolean(busy) || !editorAvailable}
onChange={(event) => void setContextDelivery(event.target.checked ? "on" : "off", "antigravity_mode")} />
<span>{locale === "zh-CN" ? "跨轮差分" : "Cross-turn delta"}</span>
<input aria-label={locale === "zh-CN" ? "在受支持宿主中自动使用跨轮差分" : "Use cross-turn delta automatically on supported hosts"}
type="checkbox" role="switch" checked={(selectedCurrent?.delta_delivery ?? selected.default?.delta_delivery ?? "auto") === "auto"} disabled={Boolean(busy) || !editorAvailable}
onChange={(event) => void setContextDelivery(event.target.checked ? "auto" : "off", "delta_delivery")} />
</label></div>
<p role="status">{(selectedCurrent?.mode ?? selected.default?.mode) === "on"
? selectedCurrent
? locale === "zh-CN" ? "已开启;原生初始化与实际使用尚未验证。" : "On; native setup and use unverified."
: locale === "zh-CN" ? "默认开启;原生初始化与实际使用尚未验证。" : "Default on; native setup and use unverified."
: locale === "zh-CN" ? "Codex 已关闭。" : "Off for Codex."}</p>
<p role="status">{(selectedCurrent?.antigravity_mode ?? selected.default?.antigravity_mode ?? "on") === "on"
? locale === "zh-CN" ? "Antigravity 管家历史渐进读取已开启。" : "Antigravity progressive manager history is on."
: locale === "zh-CN" ? "Antigravity 已关闭。" : "Off for Antigravity."}</p>
<ContextHelp label={locale === "zh-CN" ? "Codex 与 Antigravity 支持范围与生效条件" : "Codex and Antigravity support and activation requirements"}><p>{locale === "zh-CN"
? "Codex(mode)与 Antigravity(antigravity_mode)独立控制:受支持的 POSIX Codex App/SSH 和 benchmark 心跳默认开启差分,已保存的关闭继续生效,benchmark trial 可单独显式关闭;强能力 Antigravity 管家默认开启私有快照的交付历史渐进读取,关闭时保持完整内联。其他应用和平台保留完整交付;显式开启遇到未知或冲突跑法会报错。保存偏好不代表当前会话已采用差分。宿主就绪且旧上下文完整时才使用差分,否则完整恢复;私有存储与会话隔离自动管理。"
: "Codex (mode) and Antigravity (antigravity_mode) are controlled independently: supported POSIX Codex App/SSH and benchmark heartbeats default on (saved off is preserved; benchmark trials can disable it independently), while trusted-owner Antigravity manager turns default on for progressive private-capture history reads and keep full inline input when off. Other applications and platforms retain full delivery. Explicit on rejects unknown or conflicting modes. Saving a preference does not establish current-session adoption. Delta needs a ready host and complete retained context; otherwise full context is restored. Private storage and session isolation are automatic."}</p></ContextHelp>
<ContextHelp label={locale === "zh-CN" ? "上下文开关的支持范围与生效条件" : "Context support and activation requirements"}><p>{locale === "zh-CN"
? "渐进读取先提供当前要求,支持材料按需展开,适用于所有宿主。跨轮差分独立控制:仅在受支持的 POSIX Codex App/SSH、benchmark 心跳已保留完整旧上下文时自动使用,否则恢复完整当前输入。关闭偏好和实验显式关闭均继续生效。保存不会安装 hook、启动实验或证明当前会话已采用差分。"
: "Progressive reads present current requirements before expandable supporting material on every host. Cross-turn delta is independent: automatic reuse requires a supported POSIX Codex App/SSH or benchmark heartbeat and complete retained context; otherwise the current full input is restored. Saved off preferences and explicit experiment opt-outs remain effective. Saving installs no hook, starts no experiment and does not prove current-session delta use."}</p></ContextHelp>
</section> : null}
{editorAvailable && selected.capability_id !== "context_delivery" ? <>{editorMode === "json" || !selected.configuration_editor.fields.some((field) => field.key === "enabled" && field.input_kind === "boolean") ? <div className="personal-capability-editor-mode">
<button disabled={Boolean(busy)} onClick={() => changeMode(editorMode === "guided" ? "json" : "guided")} type="button">
Expand Down
6 changes: 3 additions & 3 deletions docs/architecture/rfcs/manager-runtime-profile-v0.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ These defaults do not change ordinary Goal Chat models or grant other Agents too
frozen snapshot reader, not the Codex-only live `loopx_manager_read` tool or a delta baseline.
Before relying on that history, read the required section through its final page. Context
loss recovers from the same capture without resending the request or repeating effects.
- The machine `context_delivery.antigravity_mode=off` preference or host environment
`LOOPX_CONTEXT_DELIVERY=off` keeps subsequent native manager inputs fully inline, while
`context_delivery.mode` remains the independent Codex preference.
- The manager selects history delivery automatically according to its authorized reader.
Existing explicit `context_delivery.antigravity_mode=off` preferences and the host environment
`LOOPX_CONTEXT_DELIVERY=off` retain complete inline history.
Restricted/text-only hosts, invalid settings and unavailable private capture IO also retain
that input; no host permission or approval is changed. These references preserve only the
already-authorized snapshot, not fresh observation or action authority. Capture files stay
Expand Down
4 changes: 2 additions & 2 deletions docs/architecture/rfcs/manager-runtime-profile-v0.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ LoopX 管家最初只有受限的规划会话:它可以读取 LoopX 提供的
执行供应的选择命令,不知道时再查目录。这是冻结快照读取,不是 Codex 专属的实时
`loopx_manager_read` 工具或差分基线。依赖该历史前,应读完所需片段的全部页;上下文
丢失后从同一 capture 恢复,不重新发送请求或重复副作用。
- 机器配置 `context_delivery.antigravity_mode=off` 或宿主环境变量 `LOOPX_CONTEXT_DELIVERY=off`
使后续原生管家输入保持完整内联,`context_delivery.mode` 仍保持为独立的 Codex 偏好。
- 管家依据已授权的读取能力自动选择历史交付方式。既有显式 `context_delivery.antigravity_mode=off` 偏好
或宿主环境变量 `LOOPX_CONTEXT_DELIVERY=off` 使后续原生管家输入保持完整内联。
受限/文本宿主、配置损坏或私有 capture IO 不可用时
也保留原输入,不改变宿主权限或审批。引用只保留原已授权快照,不是新鲜观察或动作
授权;capture 私有保存于 Chat 存储,不写入所选项目的检出目录。RPC 与真实 CLI fixture
Expand Down
Loading
Loading