feat: settle mobile observations before summarizing steps
This commit is contained in:
1 parent
c818a09a49
commit
4465a2e199
12 files changed
+271
-9
No files matched your search
@@ -64,7 +64,12 @@ def get_model_settings() -> dict:
|
||||
"max_retries": settings.OPENAI_MAX_RETRIES,
|
||||
"retry_interval_seconds": settings.OPENAI_RETRY_INTERVAL_SECONDS,
|
||||
"reasoning_effort": settings.OPENAI_REASONING_EFFORT,
|
||||
"model_presets": ["gpt-5.6-luna", "mimo-v2.6-flash"],
|
||||
"model_presets": [
|
||||
"gpt-5.6-luna",
|
||||
"gpt-6-luna",
|
||||
"mimo-v2.6-flash",
|
||||
"mimo-v2.6-pro",
|
||||
],
|
||||
"env_path": str(get_env_file()),
|
||||
}
|
||||
|
||||
|
||||
+13
-2
@@ -7,7 +7,8 @@ import { CapabilitySettingsComponent } from './capability-settings.component';
|
||||
describe('持久化模型与功能设置', () => {
|
||||
let http: HttpTestingController;
|
||||
const config = { base_url: 'https://example.test/v1', model: 'mimo-v2.6-flash',
|
||||
api_key_configured: true, timeout_seconds: 300, max_retries: 5, retry_interval_seconds: 10, reasoning_effort: 'high', env_path: '/app/.env' };
|
||||
api_key_configured: true, timeout_seconds: 300, max_retries: 5, retry_interval_seconds: 10, reasoning_effort: 'high',
|
||||
model_presets: ['gpt-5.6-luna', 'gpt-6-luna', 'mimo-v2.6-flash', 'mimo-v2.6-pro'], env_path: '/app/.env' };
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({ providers: [provideHttpClient(), provideHttpClientTesting()] });
|
||||
http = TestBed.inject(HttpTestingController);
|
||||
@@ -44,13 +45,23 @@ describe('持久化模型与功能设置', () => {
|
||||
await fixture.whenStable();
|
||||
const root: HTMLElement = fixture.nativeElement;
|
||||
const presets = root.querySelectorAll<HTMLButtonElement>('.model-presets button');
|
||||
expect(presets.length).toBe(2);
|
||||
expect(Array.from(presets, button => button.textContent?.trim())).toEqual([
|
||||
'gpt-5.6-luna', 'gpt-6-luna', 'mimo-v2.6-flash', 'mimo-v2.6-pro'
|
||||
]);
|
||||
presets[0].click();
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
const input = root.querySelector<HTMLInputElement>('#model-name')!;
|
||||
expect(input.value).toBe('gpt-5.6-luna');
|
||||
expect(presets[0].getAttribute('aria-pressed')).toBe('true');
|
||||
presets[1].click();
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
expect(input.value).toBe('gpt-6-luna');
|
||||
presets[3].click();
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
expect(input.value).toBe('mimo-v2.6-pro');
|
||||
expect(input.getAttribute('list')).toBeNull();
|
||||
expect(input.autocomplete).toBe('off');
|
||||
input.value = 'custom/model-v2';
|
||||
|
||||
@@ -11,6 +11,7 @@ interface ModelSettings {
|
||||
max_retries: number;
|
||||
retry_interval_seconds: number;
|
||||
reasoning_effort: string;
|
||||
model_presets: string[];
|
||||
env_path: string;
|
||||
message?: string;
|
||||
}
|
||||
@@ -90,7 +91,7 @@ interface ModelSettings {
|
||||
export class ModelSettingsComponent implements OnInit {
|
||||
private http = inject(HttpClient);
|
||||
saved = output<void>();
|
||||
readonly modelPresets = ['gpt-5.6-luna', 'mimo-v2.6-flash'];
|
||||
modelPresets: string[] = [];
|
||||
baseUrl = ''; model = ''; apiKey = ''; timeout = 300; retries = 5; retryInterval = 10; reasoning = 'high';
|
||||
busy = signal<'save' | 'test' | null>(null);
|
||||
loading = signal(true); keyConfigured = signal(false); envPath = signal('');
|
||||
@@ -112,6 +113,7 @@ export class ModelSettingsComponent implements OnInit {
|
||||
}
|
||||
private apply(config: ModelSettings): void {
|
||||
this.baseUrl = config.base_url; this.model = config.model; this.timeout = config.timeout_seconds;
|
||||
this.modelPresets = config.model_presets;
|
||||
this.retries = config.max_retries; this.retryInterval = config.retry_interval_seconds ?? 10; this.reasoning = config.reasoning_effort ?? 'high'; this.keyConfigured.set(config.api_key_configured); this.envPath.set(config.env_path);
|
||||
}
|
||||
save(): void {
|
||||
|
||||
Reference in new issue
Block a user