mirror of
https://github.com/openai/codex.git
synced 2026-10-21 17:48:44 +00:00
Add frozen cloud skill snapshots to the app server (#55631)
## What changed - Add `--cloud-skills-snapshot PATH` to load a cloud skill catalog and resource contents from JSON once at app-server startup, without contacting a live skill service. - Expose snapshot skills through the native `skills.list` and `skills.read` interface, preserving aliases and prompt visibility. Reads remain available after the snapshot file is removed. - Validate package boundaries, required resources, duplicate packages, and size limits; fail startup for missing or invalid snapshots. - Keep frozen cloud catalog and read caches independent of live MCP resource changes. ## Testing Add provider, cache, app-server, and core scenario tests covering validation, exact resource contents, authority boundaries, startup failures, and listing and reading frozen skills alongside a named executor. GitOrigin-RevId: d438a5d678121db3e17515fc5edcd00d4e20b900
This commit is contained in:
committed by
copyberry
parent
48b6a9d8e0
commit
e776b27eb0
@@ -573,6 +573,9 @@ struct AppServerCommand {
|
||||
#[command(flatten)]
|
||||
startup_config: codex_app_server::StartupConfigArgs,
|
||||
|
||||
/// Load frozen cloud skills from a JSON snapshot instead of a live skill service.
|
||||
#[arg(long, value_name = "PATH")]
|
||||
cloud_skills_snapshot: Option<PathBuf>,
|
||||
/// Omit to run the app server; specify a subcommand for tooling.
|
||||
#[command(subcommand)]
|
||||
subcommand: Option<AppServerSubcommand>,
|
||||
@@ -1241,6 +1244,7 @@ async fn cli_main(
|
||||
Some(Subcommand::AppServer(app_server_cli)) => {
|
||||
let AppServerCommand {
|
||||
startup_config,
|
||||
cloud_skills_snapshot,
|
||||
subcommand,
|
||||
code_mode_host,
|
||||
strict_config: app_server_strict_config,
|
||||
@@ -1282,6 +1286,7 @@ async fn cli_main(
|
||||
};
|
||||
let auth = auth.try_into_settings()?;
|
||||
let runtime_options = codex_app_server::AppServerRuntimeOptions {
|
||||
cloud_skills_snapshot,
|
||||
code_mode_host_transport: code_mode_host.into(),
|
||||
managed_daemon,
|
||||
remote_control_startup_mode: match (remote_control, remote_control_disabled)
|
||||
|
||||
Reference in New Issue
Block a user