mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
* feat: add server-side TTL for provider snapshots and model list UI Provider snapshots cached forever, causing newly available models (e.g. OpenCode Go minimax, glm) to never appear in the picker. Server: ProviderSnapshotManager now returns stale data immediately and kicks off a background re-warm when the snapshot is older than 5 minutes. Injectable TTL/clock for testing. App: Provider settings rows show model count and are tappable to open a diagnostic sheet with a read-only model list (label + ID). * feat: add per-provider refresh for models and diagnostic * refactor: await refresh completion and clean up diagnostic sheet state - ProviderSnapshotManager.refresh is now async; session.ts awaits it so the RPC ACK reflects real completion instead of just queuing work. - Preserve models/modes/fetchedAt on entries during targeted refresh so the list no longer flashes empty mid-refresh. - Show "Updated Xs ago" next to the Models count, plus loading and error states for the list body. - Split resetSnapshotToLoading into full vs targeted branches. - Flatten nested ternary in model list rendering into renderModelsBody. - Drop redundant local refreshing state and cargo useMemo wrappers. * fix(app): widen isImeComposingKeyboardEvent type to accept optional fields TextInputKeyPressEventData has isComposing and keyCode as optional, so Pick<KeyboardEvent, ...> was too narrow and broke typecheck on main.
72 lines
1.9 KiB
HTML
72 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="%LANG_ISO_CODE%">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover"
|
|
/>
|
|
<title>%WEB_TITLE%</title>
|
|
<!-- The `react-native-web` recommended style reset: https://necolas.github.io/react-native-web/docs/setup/#root-element -->
|
|
<style id="expo-reset">
|
|
/* These styles make the body full-height */
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
}
|
|
/* These styles disable body scrolling if you are using <ScrollView> */
|
|
body {
|
|
overflow: hidden;
|
|
}
|
|
/* Prevent white flash before React mounts */
|
|
@media (prefers-color-scheme: dark) {
|
|
html, body {
|
|
background-color: #181B1A;
|
|
}
|
|
}
|
|
/* These styles make the root element full-height */
|
|
#root {
|
|
display: flex;
|
|
height: 100%;
|
|
flex: 1;
|
|
}
|
|
</style>
|
|
<style>
|
|
button,
|
|
a,
|
|
input,
|
|
textarea,
|
|
select,
|
|
[role='button'],
|
|
[role='link'],
|
|
[role='textbox'],
|
|
[role='combobox'],
|
|
[role='tab'],
|
|
[role='switch'],
|
|
[role='checkbox'],
|
|
[role='slider'],
|
|
[role='menuitem'],
|
|
[tabindex],
|
|
[contenteditable='true'] {
|
|
-webkit-app-region: no-drag !important;
|
|
}
|
|
|
|
/* Suppress the browser's default focus outline — it appears on mouse
|
|
clicks and looks out of place against our themed surfaces. Keep a
|
|
themed ring for keyboard users via :focus-visible. */
|
|
*:focus {
|
|
outline: none;
|
|
}
|
|
*:focus-visible {
|
|
outline: 2px solid #20744A;
|
|
outline-offset: 2px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
<div id="root"></div>
|
|
</body>
|
|
</html>
|