Compare commits
4 Commits
164941f373
...
30e9e65854
| Author | SHA1 | Date | |
|---|---|---|---|
| 30e9e65854 | |||
| e0721c1dbc | |||
| 4302fbbf69 | |||
| f6fbba4c48 |
|
|
@ -241,9 +241,9 @@ pub fn load_models_from(path: &Path) -> Result<Vec<ModelEntry>, CatalogError> {
|
|||
// --- ref 解決 / マニフェスト → ModelConfig ---------------------------------
|
||||
|
||||
/// `<provider_id>/<model_id>` の最初の `/` で 1 回だけ split する。
|
||||
/// OpenRouter の `openrouter/anthropic/claude-sonnet-4` のように
|
||||
/// OpenRouter の `openrouter/anthropic/claude-sonnet-4.6` のように
|
||||
/// model_id に `/` を含むケースは、provider=`openrouter`、
|
||||
/// model_id=`anthropic/claude-sonnet-4` として通る。
|
||||
/// model_id=`anthropic/claude-sonnet-4.6` として通る。
|
||||
fn split_ref(s: &str) -> Option<(&str, &str)> {
|
||||
let (provider, rest) = s.split_once('/')?;
|
||||
if provider.is_empty() || rest.is_empty() {
|
||||
|
|
@ -403,7 +403,7 @@ mod tests {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn resolve_ref_pulls_provider_defaults() {
|
||||
fn resolve_ref_merges_provider_and_model_catalog() {
|
||||
let providers = load_builtin_providers().unwrap();
|
||||
let models = load_builtin_models().unwrap();
|
||||
let manifest = ModelManifest {
|
||||
|
|
@ -423,9 +423,9 @@ mod tests {
|
|||
}
|
||||
assert!(
|
||||
cfg.capability.is_some(),
|
||||
"should fall back to provider.default_capability"
|
||||
"model catalog should provide capability"
|
||||
);
|
||||
assert_eq!(cfg.context_window, 200_000);
|
||||
assert_eq!(cfg.context_window, 1_000_000);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -515,12 +515,12 @@ mod tests {
|
|||
let providers = load_builtin_providers().unwrap();
|
||||
let models = load_builtin_models().unwrap();
|
||||
let manifest = ModelManifest {
|
||||
ref_: Some("openrouter/anthropic/claude-sonnet-4".into()),
|
||||
ref_: Some("openrouter/anthropic/claude-sonnet-4.6".into()),
|
||||
..Default::default()
|
||||
};
|
||||
let cfg = resolve_with_catalogs(&manifest, &providers, &models).unwrap();
|
||||
assert_eq!(cfg.scheme, SchemeKind::OpenaiChat);
|
||||
assert_eq!(cfg.model_id, "anthropic/claude-sonnet-4");
|
||||
assert_eq!(cfg.model_id, "anthropic/claude-sonnet-4.6");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -1,59 +1,68 @@
|
|||
# Anthropic direct
|
||||
[[model]]
|
||||
id = "claude-opus-4-8"
|
||||
provider = "anthropic"
|
||||
context_window = 1000000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", vision = true, prompt_caching = { kind = "explicit", max_breakpoints = 4 } }
|
||||
|
||||
[[model]]
|
||||
id = "claude-sonnet-4-6"
|
||||
provider = "anthropic"
|
||||
context_window = 200000
|
||||
context_window = 1000000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "budget_tokens", vision = true, prompt_caching = { kind = "explicit", max_breakpoints = 4 } }
|
||||
|
||||
[[model]]
|
||||
id = "claude-sonnet-4-5"
|
||||
provider = "anthropic"
|
||||
context_window = 200000
|
||||
|
||||
[[model]]
|
||||
id = "claude-opus-4-1"
|
||||
id = "claude-haiku-4-5"
|
||||
provider = "anthropic"
|
||||
context_window = 200000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "budget_tokens", vision = true, prompt_caching = { kind = "explicit", max_breakpoints = 4 } }
|
||||
|
||||
# Ollama local (capability is router-ish / ollama handles its own models)
|
||||
[[model]]
|
||||
id = "llama3.1"
|
||||
id = "llama3.3"
|
||||
provider = "ollama-local"
|
||||
context_window = 128000
|
||||
|
||||
[[model]]
|
||||
id = "qwen2.5-coder"
|
||||
id = "qwen3-coder"
|
||||
provider = "ollama-local"
|
||||
context_window = 128000
|
||||
context_window = 256000
|
||||
|
||||
# Codex OAuth (ChatGPT backend via Responses API)
|
||||
[[model]]
|
||||
id = "gpt-5.5"
|
||||
provider = "codex-oauth"
|
||||
context_window = 1050000
|
||||
max_context_window = 272000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "gpt-5.4"
|
||||
provider = "codex-oauth"
|
||||
context_window = 1050000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "gpt-5-codex"
|
||||
provider = "codex-oauth"
|
||||
context_window = 400000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "gpt-5"
|
||||
provider = "codex-oauth"
|
||||
context_window = 400000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "gpt-5.5"
|
||||
provider = "codex-oauth"
|
||||
context_window = 1000000
|
||||
max_context_window = 272000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
# OpenRouter
|
||||
[[model]]
|
||||
id = "anthropic/claude-sonnet-4"
|
||||
id = "anthropic/claude-opus-4.8"
|
||||
provider = "openrouter"
|
||||
context_window = 200000
|
||||
context_window = 1000000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "budget_tokens", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "openai/gpt-5"
|
||||
id = "anthropic/claude-sonnet-4.6"
|
||||
provider = "openrouter"
|
||||
context_window = 400000
|
||||
context_window = 1000000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "budget_tokens", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
||||
[[model]]
|
||||
id = "openai/gpt-5.5"
|
||||
provider = "openrouter"
|
||||
context_window = 1050000
|
||||
capability = { tool_calling = "parallel", structured_output = "json_schema", reasoning = "effort", vision = true, prompt_caching = { kind = "auto" } }
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
id: 20260530-054927-refresh-builtin-model-catalog
|
||||
slug: refresh-builtin-model-catalog
|
||||
title: Refresh builtin model catalog to current provider recommendations
|
||||
status: open
|
||||
status: closed
|
||||
kind: task
|
||||
priority: P2
|
||||
labels: [models, providers, catalog, research]
|
||||
created_at: 2026-05-30T05:49:27Z
|
||||
updated_at: 2026-05-30T05:50:04Z
|
||||
updated_at: 2026-05-30T23:17:46Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
Refreshed the builtin model catalog from recorded official/semiofficial sources. Anthropic, OpenAI/Codex OAuth, OpenRouter, and Ollama entries now point at current concrete model IDs; default profile remains `codex-oauth/gpt-5.5`; provider definitions were unchanged.
|
||||
|
||||
External review approved and validation passed:
|
||||
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -p provider`
|
||||
- `cargo test -p manifest model`
|
||||
- `cargo test -p manifest profile -- --nocapture`
|
||||
- `cargo check -p provider -p manifest`
|
||||
- `./tickets.sh doctor`
|
||||
- `git diff --check`
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<!-- event: create author: tickets.sh at: 2026-05-30T05:49:27Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by tickets.sh create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: plan author: hare at: 2026-05-30T05:50:04Z -->
|
||||
|
||||
## Plan
|
||||
|
||||
## Preflight
|
||||
|
||||
Classification: research-first / implementation-ready after sources are recorded.
|
||||
|
||||
The work is mostly data/catalog maintenance. It should begin with current provider documentation/model-list research and a short source note before editing the catalog. Implementation should be limited to `resources/models/builtin.toml` and directly related docs/tests unless research proves a provider definition is wrong.
|
||||
|
||||
Critical risks:
|
||||
- Do not guess model IDs or context windows from memory.
|
||||
- Do not add models that the current provider client cannot address.
|
||||
- Do not churn provider definitions unless needed.
|
||||
- If changing the default profile model, explain the product reason and verify compaction/effective window metadata.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: hare at: 2026-05-30T23:13:31Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Research note for builtin catalog refresh:
|
||||
|
||||
Sources checked:
|
||||
|
||||
- Anthropic Models overview (`https://docs.anthropic.com/en/docs/about-claude/models/overview`, redirected to `https://platform.claude.com/docs/en/about-claude/models/overview`): current comparison lists Claude Opus 4.8, Claude Sonnet 4.6, and Claude Haiku 4.5. API IDs: `claude-opus-4-8`, `claude-sonnet-4-6`, `claude-haiku-4-5-20251001`; aliases include `claude-haiku-4-5`. Context windows: Opus 4.8 1M, Sonnet 4.6 1M, Haiku 4.5 200k. Opus 4.8 is described as the starting point for most complex tasks, but the table says Extended thinking: No, so the catalog gives it an explicit capability without `reasoning = "budget_tokens"`.
|
||||
- OpenAI Models overview (`https://platform.openai.com/docs/models`, redirected to `https://developers.openai.com/api/docs/models`): recommends `gpt-5.5` for complex reasoning/coding, with `gpt-5.4` and `gpt-5.4-mini` as lower latency/cost variants. `gpt-5.5` and `gpt-5.4` have 1.05M context windows and 128k max output.
|
||||
- OpenAI model detail pages:
|
||||
- `https://developers.openai.com/api/docs/models/gpt-5.5`: model ID `gpt-5.5`, 1,050,000 context window, xhigh reasoning support, notes prompts over 272K input tokens are charged differently; local catalog retains `max_context_window = 272000` for the existing backend/effective-window clamp decision.
|
||||
- `https://developers.openai.com/api/docs/models/gpt-5.4`: model ID `gpt-5.4`, 1,050,000 context window.
|
||||
- `https://developers.openai.com/api/docs/models/gpt-5-codex`: model ID `gpt-5-codex`, 400,000 context window, Responses API only, optimized for agentic coding in Codex/similar environments.
|
||||
- OpenRouter model list endpoint (`https://openrouter.ai/api/v1/models`): confirmed `anthropic/claude-opus-4.8` (1M), `anthropic/claude-sonnet-4.6` (1M), and `openai/gpt-5.5` (1.05M) with tools/structured output/reasoning parameters. Dynamic `~...latest` router aliases exist, but the builtin catalog uses concrete IDs to avoid unstable default behavior.
|
||||
- Ollama Library:
|
||||
- `https://ollama.com/library/llama3.3`: `llama3.3` latest/70b has 128K context.
|
||||
- `https://ollama.com/library/qwen3-coder`: `qwen3-coder` latest/30b has 256K context and is positioned for agentic/coding tasks.
|
||||
|
||||
Selected changes:
|
||||
|
||||
- Anthropic direct: replace stale `claude-sonnet-4-5` / `claude-opus-4-1` with `claude-opus-4-8`, `claude-sonnet-4-6`, and `claude-haiku-4-5`; update Sonnet context to 1M.
|
||||
- Codex OAuth/OpenAI: keep default `codex-oauth/gpt-5.5`, update advertised context to 1.05M while retaining the existing 272K effective clamp; replace older plain `gpt-5` entry with `gpt-5.4`; keep `gpt-5-codex` because OpenAI documents it as a Codex/similar-environment Responses model.
|
||||
- OpenRouter: replace stale `anthropic/claude-sonnet-4` / `openai/gpt-5` with concrete current IDs `anthropic/claude-opus-4.8`, `anthropic/claude-sonnet-4.6`, and `openai/gpt-5.5`.
|
||||
- Ollama: replace `llama3.1` / `qwen2.5-coder` with current generic local placeholders `llama3.3` and `qwen3-coder`.
|
||||
- Provider definitions unchanged; no provider-level source indicated that `resources/providers/builtin.toml` is stale.
|
||||
- Default profile remains `codex-oauth/gpt-5.5`; this remains aligned with OpenAI’s current model recommendation and the existing effective-context clamp used by compaction safety.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: hare at: 2026-05-30T23:16:22Z status: approve -->
|
||||
|
||||
## Review: approve
|
||||
|
||||
External review by reviewer Pod `builtin-catalog-reviewer-20260530`: approve.
|
||||
|
||||
Reviewer summary:
|
||||
|
||||
- Sources were recorded in the ticket thread before/with the catalog changes.
|
||||
- Catalog changes align with the recorded sources:
|
||||
- Anthropic entries now use Opus 4.8 / Sonnet 4.6 / Haiku 4.5, with Sonnet and Opus 1M context and Haiku 200k.
|
||||
- Codex OAuth/OpenAI entries use `gpt-5.5`, `gpt-5.4`, and `gpt-5-codex`; `gpt-5.5` retains the existing `max_context_window = 272000` effective clamp while advertising 1.05M.
|
||||
- OpenRouter uses concrete current IDs, avoiding unstable `~...latest` aliases.
|
||||
- Ollama entries use `llama3.3` and `qwen3-coder`.
|
||||
- Provider definitions and default profile were reasonably left unchanged.
|
||||
- Reported validation was adequate.
|
||||
|
||||
Blockers: none.
|
||||
|
||||
Non-blocking note addressed after review:
|
||||
- The provider catalog test name/assertion still implied provider-default capability fallback for a model that now has explicit capability. It was renamed/updated to describe provider+model catalog merge semantics.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: hare at: 2026-05-30T23:17:25Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Implementation report:
|
||||
|
||||
- Refreshed `resources/models/builtin.toml` from recorded official/semiofficial sources.
|
||||
- Anthropic direct entries now cover `claude-opus-4-8`, `claude-sonnet-4-6`, and `claude-haiku-4-5`; Sonnet/Opus context windows are 1M and Haiku is 200k. Opus has explicit capability without `reasoning = "budget_tokens"` because the source table says Extended thinking is not supported.
|
||||
- Ollama local placeholders are now `llama3.3` (128K) and `qwen3-coder` (256K).
|
||||
- Codex OAuth/OpenAI entries now cover `gpt-5.5`, `gpt-5.4`, and `gpt-5-codex`; `gpt-5.5` advertises 1.05M while retaining the existing `max_context_window = 272000` effective clamp.
|
||||
- OpenRouter entries now use concrete current IDs `anthropic/claude-opus-4.8`, `anthropic/claude-sonnet-4.6`, and `openai/gpt-5.5`; dynamic latest aliases were intentionally not added.
|
||||
- `resources/providers/builtin.toml` and `resources/profiles/default.lua` were left unchanged.
|
||||
- Updated provider catalog test expectations and renamed the affected test to avoid implying provider-default capability fallback for an explicitly cataloged model.
|
||||
|
||||
External review:
|
||||
|
||||
- Reviewer Pod `builtin-catalog-reviewer-20260530` approved with no blockers.
|
||||
- Reviewer non-blocking note about the stale test name/assert message was addressed.
|
||||
|
||||
Validation:
|
||||
|
||||
- `cargo fmt --check` passed
|
||||
- `cargo test -p provider` passed
|
||||
- `cargo test -p manifest model` passed
|
||||
- `cargo test -p manifest profile -- --nocapture` passed
|
||||
- `cargo check -p provider -p manifest` passed
|
||||
- `./tickets.sh doctor` passed
|
||||
- `git diff --check` passed
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-05-30T23:17:38Z status: closed -->
|
||||
|
||||
## Closed
|
||||
|
||||
Refreshed the builtin model catalog from recorded official/semiofficial sources. Anthropic, OpenAI/Codex OAuth, OpenRouter, and Ollama entries now point at current concrete model IDs; default profile remains ; provider definitions were unchanged. External review approved and validation passed: cargo fmt --check, cargo test -p provider, cargo test -p manifest model, cargo test -p manifest profile, cargo check -p provider -p manifest, ./tickets.sh doctor, git diff --check.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-05-30T23:17:46Z status: closed -->
|
||||
|
||||
## Closed
|
||||
|
||||
Refreshed the builtin model catalog from recorded official/semiofficial sources. Anthropic, OpenAI/Codex OAuth, OpenRouter, and Ollama entries now point at current concrete model IDs; default profile remains `codex-oauth/gpt-5.5`; provider definitions were unchanged.
|
||||
|
||||
External review approved and validation passed:
|
||||
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -p provider`
|
||||
- `cargo test -p manifest model`
|
||||
- `cargo test -p manifest profile -- --nocapture`
|
||||
- `cargo check -p provider -p manifest`
|
||||
- `./tickets.sh doctor`
|
||||
- `git diff --check`
|
||||
|
||||
|
||||
---
|
||||
|
|
@ -5,24 +5,60 @@ title: ワークスペースのメモリーをLintするヘッドレスCLI
|
|||
status: open
|
||||
kind: task
|
||||
priority: P2
|
||||
labels: [migrated]
|
||||
labels: [migrated, memory, cli]
|
||||
created_at: 2026-05-27T00:00:19Z
|
||||
updated_at: 2026-05-27T00:00:19Z
|
||||
updated_at: 2026-05-31T00:51:55Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
||||
## Migration reference
|
||||
|
||||
- legacy_ticket: null
|
||||
- migrated_from: TODO.md / tickets directory migration on 2026-05-27
|
||||
|
||||
# ワークスペースのメモリーをLintするヘッドレスCLI
|
||||
|
||||
## Background
|
||||
|
||||
This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file.
|
||||
The memory linter currently exists as library/pre-write validation used by memory tools, but there is no headless command to check all existing workspace memory/knowledge records at once. This makes it hard to validate `.insomnia/memory` and `.insomnia/knowledge` before commits, migrations, or manual edits.
|
||||
|
||||
The installed user-facing binary is currently produced by the `tui` crate as `insomnia`. It is acceptable for this ticket to add the headless lint command to that crate/binary instead of introducing a separate binary. A future rename from `tui` crate to `insomnia`, or a more explicit single-binary CLI structure, can be handled separately.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Add a headless CLI mode to the existing `insomnia` binary in the `tui` crate.
|
||||
- Preferred invocation shape: `insomnia memory lint [--workspace <PATH>] [--json] [--warnings-as-errors]`.
|
||||
- `insomnia memory` without `lint` should remain available as a normal positional Pod name if possible.
|
||||
- If this shape is awkward with the current parser, keep the command unambiguous and document the chosen shape in tests/help text.
|
||||
- Default workspace root is the current working directory.
|
||||
- `--workspace <PATH>` overrides the workspace root passed to `memory::WorkspaceLayout::new`.
|
||||
- Lint all existing records classified by `memory::WorkspaceLayout`:
|
||||
- `.insomnia/memory/summary.md` when present;
|
||||
- `.insomnia/memory/decisions/*.md`;
|
||||
- `.insomnia/memory/requests/*.md`;
|
||||
- `.insomnia/knowledge/*.md`.
|
||||
- Do not lint subsystem-owned opaque trees such as `.insomnia/memory/_staging`, `_logs`, `_usage`.
|
||||
- Use the existing `memory::Linter` and `WriteMode::Update` for existing files so the CLI matches tool pre-write validation semantics without triggering create-only duplicate slug checks on the file itself.
|
||||
- Print a deterministic, human-readable report by default:
|
||||
- file path;
|
||||
- errors;
|
||||
- warnings;
|
||||
- summary counts.
|
||||
- Exit status:
|
||||
- `0` if no errors, and no warnings when `--warnings-as-errors` is set;
|
||||
- `1` if lint errors are found, or warnings are found with `--warnings-as-errors`;
|
||||
- `2` for CLI usage / I/O / unexpected runtime failures.
|
||||
- `--json` may be simple but should be machine-readable and stable enough for scripts: include workspace, files, errors, warnings, and counts.
|
||||
- The command must not start a Pod, connect to sockets, enter raw terminal mode, or mutate files.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Renaming the `tui` crate to `insomnia`.
|
||||
- Adding a separate installed binary.
|
||||
- Linting Workflow files; workflow linting can be a future command.
|
||||
- Auto-fixing memory/knowledge records.
|
||||
- Changing memory schema/linter rules.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- Define the concrete requirements before implementation.
|
||||
- `insomnia memory lint` runs headlessly against the current directory and reports existing memory/knowledge lint results.
|
||||
- `insomnia memory lint --workspace <PATH>` works in tests/fixtures.
|
||||
- The command exits non-zero for lint errors.
|
||||
- `--warnings-as-errors` makes warnings fail.
|
||||
- `--json` returns valid JSON containing counts and per-file diagnostics.
|
||||
- Existing Pod/TUI argument parsing behavior remains covered by tests, especially positional Pod names and `--multi`/`--resume` conflicts.
|
||||
- `cargo fmt --check`, focused `cargo test -p tui` tests, `cargo check -p tui`, `./tickets.sh doctor`, and `git diff --check` pass.
|
||||
|
|
|
|||
|
|
@ -4,4 +4,19 @@
|
|||
|
||||
Migrated from TODO.md entry without a legacy ticket file. No legacy review file was present at migration time.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: plan author: hare at: 2026-05-31T00:51:55Z -->
|
||||
|
||||
## Plan
|
||||
|
||||
Planning note:
|
||||
|
||||
- Keep this in the existing user-facing `insomnia` binary implemented by the `tui` crate. Do not add another installed command for this ticket.
|
||||
- The command should be headless: parse args, lint files, print report, exit. It must not initialize terminal UI or connect to a Pod.
|
||||
- `insomnia memory lint` is preferred, but `insomnia memory` alone should continue to be a valid Pod-name attach/create path if practical with the current parser.
|
||||
- Use `memory::Linter` directly so CLI behavior tracks tool pre-write validation. Existing files should be linted with `WriteMode::Update`.
|
||||
- Keep crate rename / single-binary architecture as future cleanup, not part of this ticket.
|
||||
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,26 +0,0 @@
|
|||
<!-- event: create author: tickets.sh at: 2026-05-30T05:49:27Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by tickets.sh create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: plan author: hare at: 2026-05-30T05:50:04Z -->
|
||||
|
||||
## Plan
|
||||
|
||||
## Preflight
|
||||
|
||||
Classification: research-first / implementation-ready after sources are recorded.
|
||||
|
||||
The work is mostly data/catalog maintenance. It should begin with current provider documentation/model-list research and a short source note before editing the catalog. Implementation should be limited to `resources/models/builtin.toml` and directly related docs/tests unless research proves a provider definition is wrong.
|
||||
|
||||
Critical risks:
|
||||
- Do not guess model IDs or context windows from memory.
|
||||
- Do not add models that the current provider client cannot address.
|
||||
- Do not churn provider definitions unless needed.
|
||||
- If changing the default profile model, explain the product reason and verify compaction/effective window metadata.
|
||||
|
||||
|
||||
---
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
id: 20260531-003743-codex-gpt55-effective-context-window
|
||||
slug: codex-gpt55-effective-context-window
|
||||
title: Provider: make codex gpt-5.5 context window effective
|
||||
status: open
|
||||
kind: task
|
||||
priority: P2
|
||||
labels: [provider, models, catalog]
|
||||
created_at: 2026-05-31T00:37:43Z
|
||||
updated_at: 2026-05-31T00:38:23Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
`refresh-builtin-model-catalog` updated the `codex-oauth/gpt-5.5` builtin entry to record OpenAI's advertised 1.05M context window while retaining `max_context_window = 272000` as an effective clamp. That made the catalog entry technically accurate to both OpenAI docs and observed Codex OAuth behavior, but it also made the model metadata harder to understand.
|
||||
|
||||
For a provider-specific builtin entry, `context_window` should represent the effective window for that provider route. `codex-oauth/gpt-5.5` is not the generic OpenAI API route; it is the Codex OAuth / ChatGPT backend route. If that route effectively fails above ~272k input tokens, then the builtin catalog should say `context_window = 272000` directly and explain why in a comment.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Change the builtin `codex-oauth/gpt-5.5` model entry so `context_window` is the effective Codex OAuth route limit (`272000`).
|
||||
- Remove `max_context_window = 272000` from that builtin entry.
|
||||
- Add a nearby TOML comment explaining that OpenAI documents GPT-5.5 with a 1.05M context window, but Codex OAuth / ChatGPT backend access has been observed/known to be effectively limited around 272k, so the provider-specific builtin entry records the effective limit.
|
||||
- Keep the default profile on `codex-oauth/gpt-5.5`.
|
||||
- Preserve the `max_context_window` manifest/config field and its code/tests if still useful for explicit inline overrides or future providers; do not remove the field globally in this ticket unless doing so is clearly tiny and mechanically safe.
|
||||
- Update provider/manifest tests that currently expect catalog-level `max_context_window` clamp for builtin `gpt-5.5`.
|
||||
- Do not change OpenRouter `openai/gpt-5.5` unless there is separate evidence for that route's effective limit; this ticket is about `codex-oauth`.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Re-refreshing the full model catalog.
|
||||
- Changing provider definitions or auth behavior.
|
||||
- Changing compaction/pruning algorithms beyond tests that derive known model context.
|
||||
- Removing `max_context_window` from public manifest/config types wholesale.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- `resources/models/builtin.toml` has `codex-oauth/gpt-5.5` with `context_window = 272000` and no `max_context_window` field.
|
||||
- The builtin catalog comment makes the 1.05M-vs-272k route distinction explicit.
|
||||
- Tests no longer rely on catalog-level `max_context_window` for `codex-oauth/gpt-5.5`.
|
||||
- Inline `max_context_window` clamp behavior remains tested if the field remains supported.
|
||||
- `cargo fmt --check`, focused provider/manifest tests, `./tickets.sh doctor`, and `git diff --check` pass.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<!-- event: create author: tickets.sh at: 2026-05-31T00:37:43Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by tickets.sh create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: plan author: hare at: 2026-05-31T00:38:23Z -->
|
||||
|
||||
## Plan
|
||||
|
||||
Implementation plan:
|
||||
|
||||
1. Update only the provider-specific builtin catalog entry for `codex-oauth/gpt-5.5`: set `context_window = 272000`, remove `max_context_window`, and add a clear comment about generic OpenAI docs vs Codex OAuth effective limit.
|
||||
2. Keep `resources/profiles/default.lua` unchanged.
|
||||
3. Adjust tests so builtin catalog expectations use effective `context_window`, while `max_context_window` behavior remains covered by an inline/config-specific test if the field remains supported.
|
||||
4. Validate with focused provider/manifest tests plus `cargo fmt --check`, `./tickets.sh doctor`, and `git diff --check`.
|
||||
|
||||
|
||||
---
|
||||
Loading…
Reference in New Issue
Block a user