getobsrv 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/out/main/cli.js +1 -1
- package/out/main/index.js +741 -201
- package/out/main/{targetSource-nbfc-Fe6.js → targetSource-DlsHc-Ri.js} +43 -1
- package/out/mcp/server.js +21 -1
- package/out/preload/app.js +19 -16
- package/out/renderer/assets/{index-B61fbgqt.css → index-DvwDBeho.css} +107 -4
- package/out/renderer/assets/{index-BlbBg6lm.js → index-gYDbIgqJ.js} +380 -118
- package/out/renderer/index.html +2 -2
- package/out/shared/control.js +13 -1
- package/out/shared/ipcPayloads.js +29 -1
- package/out/shared/presets.js +6 -1
- package/out/shared/tabList.js +46 -0
- package/package.json +1 -1
- package/skills/obsrv-screens/SKILL.md +7 -0
package/README.md
CHANGED
|
@@ -90,6 +90,24 @@ sit in half a window, and for agent captures. The native pane stays loaded while
|
|
|
90
90
|
hidden, so the URL bar, back/forward and link clicks keep working exactly as
|
|
91
91
|
they do side by side.
|
|
92
92
|
|
|
93
|
+
### Tabs
|
|
94
|
+
|
|
95
|
+
The strip above the URL bar holds several independent sessions at once. A tab is
|
|
96
|
+
its own URL, its own screen preset and panel profile, its own view mode and pan,
|
|
97
|
+
and its own page state — so the same page on a 1366×768 laptop and on a budget
|
|
98
|
+
Android sit in two tabs and you flip between them without either one reloading.
|
|
99
|
+
|
|
100
|
+
`Cmd+T` opens a tab, `Cmd+W` closes one, `Cmd+1`–`Cmd+8` select by position and
|
|
101
|
+
`Cmd+9` selects the last. Closing the last tab leaves a fresh blank one rather
|
|
102
|
+
than closing the window. Tabs come back on relaunch — their URLs, their screens
|
|
103
|
+
and which one was in front.
|
|
104
|
+
|
|
105
|
+
Every tab is two Chromium renderers (a native pane and an offscreen 1x surface),
|
|
106
|
+
so the count is capped: 12 by default, settable from 2 to 32 in Settings. At the
|
|
107
|
+
cap the new-tab button dims and says why. Background tabs stay loaded and keep
|
|
108
|
+
their scroll position, but stop rasterising until you return to them — the cost
|
|
109
|
+
of a background tab is memory, not GPU.
|
|
110
|
+
|
|
93
111
|
## Agent & CI use
|
|
94
112
|
|
|
95
113
|
The same rendering pipeline runs headless — no window, JSON on stdout, humans
|
|
@@ -144,6 +162,15 @@ navigates unless you pass `url`, so the scroll survives the shutter. A live
|
|
|
144
162
|
`navigated` field says which happened — and navigating is a fresh load, which
|
|
145
163
|
starts at the top of the page.
|
|
146
164
|
|
|
165
|
+
**Tabs and the agent.** `obsrv_drive` and a live `obsrv_snap` act on the tab
|
|
166
|
+
that is in front, resolved per command rather than fixed when the drive starts —
|
|
167
|
+
a command that quietly succeeded on a tab you could not see would not surface
|
|
168
|
+
until the drive ended. Both report `tabId` and `tabIndex`, so an agent that
|
|
169
|
+
cares can compare them across calls and notice you switched tabs under it. While
|
|
170
|
+
Agent control is on, the driven tab carries a neutral rule on its leading edge
|
|
171
|
+
that brightens for ~3 s on each command, so it is visible which session is being
|
|
172
|
+
driven. An agent cannot open, close or switch tabs; that stays yours.
|
|
173
|
+
|
|
147
174
|
A headless `snap` returns `settled: true` when the page went paint-quiet and
|
|
148
175
|
every pixel painted. `settled: false` is still a usable capture, not a
|
|
149
176
|
failure — a page that kept animating, or one whose repaint never completed,
|
|
@@ -220,3 +247,10 @@ belongs to an unrelated package.
|
|
|
220
247
|
hides its scroller in a shadow root has no escape hatch.
|
|
221
248
|
- Frame delivery has no renderer-side backpressure mailbox (see plan header); at 30 fps
|
|
222
249
|
with dirty rects it has not been needed.
|
|
250
|
+
- Tabs are a first cut. They cannot be reordered, dragged out into another window, or
|
|
251
|
+
reopened after closing (no `Cmd+Shift+T`), and there is no tab overflow menu — a strip
|
|
252
|
+
longer than the window scrolls. An agent can only reach the tab in front: there is no
|
|
253
|
+
way to name another tab in `obsrv_drive`, and no way for an agent to open, close or
|
|
254
|
+
switch tabs at all. The URL bar's visited-URL suggestions are one window-wide list
|
|
255
|
+
rather than one per tab (back/forward *are* per tab), and a restored tab comes back at
|
|
256
|
+
the top of its page — the scroll position is not persisted.
|
package/out/main/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ const electron = require("electron");
|
|
|
3
3
|
const node_fs = require("node:fs");
|
|
4
4
|
const node_os = require("node:os");
|
|
5
5
|
const node_path = require("node:path");
|
|
6
|
-
const targetSource = require("./targetSource-
|
|
6
|
+
const targetSource = require("./targetSource-DlsHc-Ri.js");
|
|
7
7
|
function boxDownsample(src, factor) {
|
|
8
8
|
if (!Number.isInteger(factor) || factor < 1) throw new RangeError("factor must be an integer >= 1");
|
|
9
9
|
const width = Math.floor(src.width / factor);
|