sourcemonkey 0.0.0-stage → 0.5.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/LICENSE +21 -0
- package/README.md +87 -2
- package/dist/bytes.js +37 -0
- package/dist/channel-placeholder.js +5 -0
- package/dist/collection-scan.js +17 -0
- package/dist/collections.html +353 -0
- package/dist/compare.html +358 -0
- package/dist/composed-source.js +205 -0
- package/dist/connect-prompt.html +47 -0
- package/dist/debug/icons.html +211 -0
- package/dist/debug/storage.html +163 -0
- package/dist/debug-log.js +75 -0
- package/dist/diagnostic-location.js +64 -0
- package/dist/eval-hook.js +308 -0
- package/dist/extension/background.js +5263 -0
- package/dist/extension/channel.js +133 -0
- package/dist/extension/code-links.js +187 -0
- package/dist/extension/code-tabs.js +460 -0
- package/dist/extension/collection-dialog.js +619 -0
- package/dist/extension/collection-display.js +322 -0
- package/dist/extension/collections.js +2905 -0
- package/dist/extension/compare.js +867 -0
- package/dist/extension/concurrency.js +186 -0
- package/dist/extension/connect-grants.js +109 -0
- package/dist/extension/connect-prompt-page.js +70 -0
- package/dist/extension/connect-prompt.js +266 -0
- package/dist/extension/copy-button.js +63 -0
- package/dist/extension/copy-dialog.js +502 -0
- package/dist/extension/copy-preference.js +66 -0
- package/dist/extension/debug/icons.js +203 -0
- package/dist/extension/debug/storage.js +365 -0
- package/dist/extension/deep-link.js +77 -0
- package/dist/extension/delete-dialog.js +432 -0
- package/dist/extension/delete-icon.js +40 -0
- package/dist/extension/details-tooltips.js +66 -0
- package/dist/extension/directories.js +679 -0
- package/dist/extension/export-backup.js +407 -0
- package/dist/extension/export-dialog.js +142 -0
- package/dist/extension/file-access.js +74 -0
- package/dist/extension/file-changes.js +346 -0
- package/dist/extension/frame-info.js +85 -0
- package/dist/extension/github-provider.js +336 -0
- package/dist/extension/glyph.js +84 -0
- package/dist/extension/gm-bindings.js +601 -0
- package/dist/extension/gm-download.js +419 -0
- package/dist/extension/gm-menu.js +228 -0
- package/dist/extension/gm-notification.js +141 -0
- package/dist/extension/gm-originator-map.js +23 -0
- package/dist/extension/gm-tab-data.js +121 -0
- package/dist/extension/gm-tab.js +160 -0
- package/dist/extension/gm-url-change.js +111 -0
- package/dist/extension/gm-url-scheme.js +27 -0
- package/dist/extension/gm-values.js +176 -0
- package/dist/extension/gm-window-control.js +104 -0
- package/dist/extension/gm-xhr-headers.js +333 -0
- package/dist/extension/gm-xhr.js +584 -0
- package/dist/extension/injector.js +3145 -0
- package/dist/extension/install-capture.js +277 -0
- package/dist/extension/line-diff.js +233 -0
- package/dist/extension/local-copy.js +560 -0
- package/dist/extension/local-delete.js +276 -0
- package/dist/extension/location-kinds.js +108 -0
- package/dist/extension/log-format.js +158 -0
- package/dist/extension/managed-changes.js +361 -0
- package/dist/extension/managed-items.js +57 -0
- package/dist/extension/match-index.js +375 -0
- package/dist/extension/missing-scripts.js +66 -0
- package/dist/extension/more-menu.js +109 -0
- package/dist/extension/move-dialog.js +197 -0
- package/dist/extension/offscreen.js +37 -0
- package/dist/extension/options.js +504 -0
- package/dist/extension/page-heading.js +170 -0
- package/dist/extension/page-links.js +199 -0
- package/dist/extension/parse-check-client.js +70 -0
- package/dist/extension/parse-check.js +161 -0
- package/dist/extension/parse-sandbox-host.js +172 -0
- package/dist/extension/parse-sandbox.js +175 -0
- package/dist/extension/popup-commands-open.js +41 -0
- package/dist/extension/popup-view.js +387 -0
- package/dist/extension/popup.js +703 -0
- package/dist/extension/prism-userscript.js +53 -0
- package/dist/extension/refresh-error.js +136 -0
- package/dist/extension/refresh-targets.js +160 -0
- package/dist/extension/related-versions.js +1144 -0
- package/dist/extension/resize-observer-loop.js +19 -0
- package/dist/extension/row-cache.js +387 -0
- package/dist/extension/script-blobs.js +413 -0
- package/dist/extension/script-details.js +658 -0
- package/dist/extension/script-enablement.js +285 -0
- package/dist/extension/script-identity.js +310 -0
- package/dist/extension/script-keys.js +54 -0
- package/dist/extension/script-log-id.js +155 -0
- package/dist/extension/script-log.js +290 -0
- package/dist/extension/script-rejection.js +104 -0
- package/dist/extension/script-sites.js +158 -0
- package/dist/extension/script-store.js +3507 -0
- package/dist/extension/script-updater.js +991 -0
- package/dist/extension/script-url-hash.js +61 -0
- package/dist/extension/select-all.js +37 -0
- package/dist/extension/select-open-guard.js +90 -0
- package/dist/extension/site-icon.js +1261 -0
- package/dist/extension/sm-dev-link.js +302 -0
- package/dist/extension/solo-click.js +58 -0
- package/dist/extension/sticky-numbers.js +188 -0
- package/dist/extension/storage-breakdown.js +253 -0
- package/dist/extension/storage-scan.js +86 -0
- package/dist/extension/storage-usage.js +194 -0
- package/dist/extension/structural-keys.js +29 -0
- package/dist/extension/sw-teardown.js +36 -0
- package/dist/extension/tab-status.js +403 -0
- package/dist/extension/toolbar-summary.js +105 -0
- package/dist/extension/user-scripts-access.js +43 -0
- package/dist/extension/userscript.js +3672 -0
- package/dist/extension/value-store.js +204 -0
- package/dist/extension/version-probe-fetch.js +68 -0
- package/dist/extension/worker-client.js +109 -0
- package/dist/extension/worker-ops.js +171 -0
- package/dist/extension/zip-writer.js +24 -0
- package/dist/external-files.js +878 -0
- package/dist/file-loader.js +436 -0
- package/dist/file-locations.js +439 -0
- package/dist/generated-wrappers.js +5 -0
- package/dist/github-auth.js +148 -0
- package/dist/github-urls.js +46 -0
- package/dist/gm-api-catalog.js +217 -0
- package/dist/gm-connect.js +273 -0
- package/dist/gm-xhr-types.js +5 -0
- package/dist/http-read.js +142 -0
- package/dist/icons/icon-128.png +0 -0
- package/dist/icons/icon-16.png +0 -0
- package/dist/icons/icon-48.png +0 -0
- package/dist/local-file-overrides.js +558 -0
- package/dist/manifest.json +38 -0
- package/dist/markup-response.js +126 -0
- package/dist/match-targets.js +305 -0
- package/dist/menu-captions.js +22 -0
- package/dist/offscreen.html +39 -0
- package/dist/options.html +197 -0
- package/dist/parse-check-protocol.js +51 -0
- package/dist/parse-location.js +171 -0
- package/dist/parse-sandbox.html +56 -0
- package/dist/phase-timing.js +155 -0
- package/dist/popup.html +197 -0
- package/dist/public-suffixes.js +6957 -0
- package/dist/run-context.js +31 -0
- package/dist/runtime-messages.js +34 -0
- package/dist/sandboxed-page.js +35 -0
- package/dist/script-build.js +787 -0
- package/dist/script-display.js +383 -0
- package/dist/script-icon.js +43 -0
- package/dist/script-links.js +204 -0
- package/dist/script-source-url.js +214 -0
- package/dist/script-world.js +65 -0
- package/dist/sm-dev-protocol.js +84 -0
- package/dist/source-map.js +177 -0
- package/dist/stack-link.js +138 -0
- package/dist/styles.css +825 -0
- package/dist/unsafe-window-use.js +229 -0
- package/dist/url-match.js +734 -0
- package/dist/userscript-header.js +248 -0
- package/dist/userscript.html +1165 -0
- package/dist/vendor/fflate.LICENSE +21 -0
- package/dist/vendor/fflate.js +2692 -0
- package/dist/vendor/prism/prism-line-numbers.css +1 -0
- package/dist/vendor/prism/prism-line-numbers.js +1 -0
- package/dist/vendor/prism/prism.css +1 -0
- package/dist/vendor/prism/prism.js +1946 -0
- package/dist/version-compare.js +141 -0
- package/dist/version-probe.js +120 -0
- package/lib/build-info.json +1 -0
- package/lib/bytes.d.ts +3 -0
- package/lib/bytes.js +37 -0
- package/lib/channel-placeholder.d.ts +1 -0
- package/lib/channel-placeholder.js +5 -0
- package/lib/collection-scan.d.ts +8 -0
- package/lib/collection-scan.js +17 -0
- package/lib/composed-source.d.ts +28 -0
- package/lib/composed-source.js +205 -0
- package/lib/debug-log.d.ts +9 -0
- package/lib/debug-log.js +75 -0
- package/lib/diagnostic-location.d.ts +8 -0
- package/lib/diagnostic-location.js +64 -0
- package/lib/eval-hook.d.ts +34 -0
- package/lib/eval-hook.js +308 -0
- package/lib/external-files.d.ts +111 -0
- package/lib/external-files.js +878 -0
- package/lib/file-loader.d.ts +48 -0
- package/lib/file-loader.js +436 -0
- package/lib/file-locations.d.ts +44 -0
- package/lib/file-locations.js +439 -0
- package/lib/generated-wrappers.d.ts +11 -0
- package/lib/generated-wrappers.js +5 -0
- package/lib/github-auth.d.ts +12 -0
- package/lib/github-auth.js +148 -0
- package/lib/github-urls.d.ts +1 -0
- package/lib/github-urls.js +46 -0
- package/lib/gm-api-catalog.d.ts +24 -0
- package/lib/gm-api-catalog.js +217 -0
- package/lib/gm-connect.d.ts +34 -0
- package/lib/gm-connect.js +273 -0
- package/lib/gm-xhr-types.d.ts +68 -0
- package/lib/gm-xhr-types.js +5 -0
- package/lib/harness/browser-extensions.d.ts +73 -0
- package/lib/harness/browser-extensions.js +285 -0
- package/lib/harness/browser-lang.d.ts +20 -0
- package/lib/harness/browser-lang.js +86 -0
- package/lib/harness/browser-launch.d.ts +14 -0
- package/lib/harness/browser-launch.js +184 -0
- package/lib/harness/checks.d.ts +110 -0
- package/lib/harness/checks.js +321 -0
- package/lib/harness/cli.d.ts +2 -0
- package/lib/harness/cli.js +2259 -0
- package/lib/harness/command-args.d.ts +91 -0
- package/lib/harness/command-args.js +369 -0
- package/lib/harness/command-lines.d.ts +80 -0
- package/lib/harness/command-lines.js +180 -0
- package/lib/harness/command-list.d.ts +206 -0
- package/lib/harness/command-list.js +1475 -0
- package/lib/harness/console-commands.d.ts +463 -0
- package/lib/harness/console-commands.js +3216 -0
- package/lib/harness/download-watch.d.ts +21 -0
- package/lib/harness/download-watch.js +156 -0
- package/lib/harness/extension-backend.d.ts +41 -0
- package/lib/harness/extension-backend.js +100 -0
- package/lib/harness/extension-host.d.ts +112 -0
- package/lib/harness/extension-host.js +552 -0
- package/lib/harness/extension-launch.d.ts +67 -0
- package/lib/harness/extension-launch.js +285 -0
- package/lib/harness/extension-link.d.ts +315 -0
- package/lib/harness/extension-link.js +607 -0
- package/lib/harness/external-manager.d.ts +146 -0
- package/lib/harness/external-manager.js +414 -0
- package/lib/harness/fixture.d.ts +165 -0
- package/lib/harness/fixture.js +461 -0
- package/lib/harness/frame-sessions.d.ts +71 -0
- package/lib/harness/frame-sessions.js +248 -0
- package/lib/harness/frames.d.ts +68 -0
- package/lib/harness/frames.js +216 -0
- package/lib/harness/help-format.d.ts +17 -0
- package/lib/harness/help-format.js +127 -0
- package/lib/harness/host.d.ts +352 -0
- package/lib/harness/host.js +423 -0
- package/lib/harness/index.d.ts +8 -0
- package/lib/harness/index.js +10 -0
- package/lib/harness/input-file.d.ts +18 -0
- package/lib/harness/input-file.js +61 -0
- package/lib/harness/json-output.d.ts +565 -0
- package/lib/harness/json-output.js +71 -0
- package/lib/harness/manager-actions.d.ts +21 -0
- package/lib/harness/manager-actions.js +129 -0
- package/lib/harness/manager-commands.d.ts +142 -0
- package/lib/harness/manager-commands.js +1196 -0
- package/lib/harness/manager-fetch.d.ts +33 -0
- package/lib/harness/manager-fetch.js +239 -0
- package/lib/harness/managers.d.ts +24 -0
- package/lib/harness/managers.js +27 -0
- package/lib/harness/output-style.d.ts +125 -0
- package/lib/harness/output-style.js +322 -0
- package/lib/harness/page-commands.d.ts +134 -0
- package/lib/harness/page-commands.js +1141 -0
- package/lib/harness/page-output.d.ts +67 -0
- package/lib/harness/page-output.js +139 -0
- package/lib/harness/page-watch.d.ts +171 -0
- package/lib/harness/page-watch.js +607 -0
- package/lib/harness/parse-check-node.d.ts +3 -0
- package/lib/harness/parse-check-node.js +132 -0
- package/lib/harness/path-args.d.ts +22 -0
- package/lib/harness/path-args.js +148 -0
- package/lib/harness/playwright-chromium.d.ts +16 -0
- package/lib/harness/playwright-chromium.js +86 -0
- package/lib/harness/prepare.d.ts +168 -0
- package/lib/harness/prepare.js +364 -0
- package/lib/harness/prompt-editor.d.ts +17 -0
- package/lib/harness/prompt-editor.js +354 -0
- package/lib/harness/prompt-history.d.ts +13 -0
- package/lib/harness/prompt-history.js +89 -0
- package/lib/harness/rebuild-advice.d.ts +6 -0
- package/lib/harness/rebuild-advice.js +39 -0
- package/lib/harness/run-log.d.ts +47 -0
- package/lib/harness/run-log.js +140 -0
- package/lib/harness/run-logs.d.ts +132 -0
- package/lib/harness/run-logs.js +241 -0
- package/lib/harness/run.d.ts +194 -0
- package/lib/harness/run.js +1973 -0
- package/lib/harness/runs.d.ts +229 -0
- package/lib/harness/runs.js +726 -0
- package/lib/harness/save-html.d.ts +39 -0
- package/lib/harness/save-html.js +89 -0
- package/lib/harness/saved-pages.d.ts +120 -0
- package/lib/harness/saved-pages.js +275 -0
- package/lib/harness/script-mark.d.ts +17 -0
- package/lib/harness/script-mark.js +56 -0
- package/lib/harness/snapshot.d.ts +143 -0
- package/lib/harness/snapshot.js +474 -0
- package/lib/harness/stuck-tabs.d.ts +19 -0
- package/lib/harness/stuck-tabs.js +131 -0
- package/lib/harness/tab-refs.d.ts +20 -0
- package/lib/harness/tab-refs.js +80 -0
- package/lib/harness/tampermonkey.d.ts +71 -0
- package/lib/harness/tampermonkey.js +356 -0
- package/lib/harness/tm-ids.d.ts +18 -0
- package/lib/harness/tm-ids.js +88 -0
- package/lib/harness/violentmonkey.d.ts +34 -0
- package/lib/harness/violentmonkey.js +162 -0
- package/lib/harness/wait.d.ts +77 -0
- package/lib/harness/wait.js +458 -0
- package/lib/http-read.d.ts +30 -0
- package/lib/http-read.js +142 -0
- package/lib/local-file-overrides.d.ts +35 -0
- package/lib/local-file-overrides.js +558 -0
- package/lib/manifest.json +38 -0
- package/lib/markup-response.d.ts +11 -0
- package/lib/markup-response.js +126 -0
- package/lib/match-targets.d.ts +18 -0
- package/lib/match-targets.js +305 -0
- package/lib/menu-captions.d.ts +1 -0
- package/lib/menu-captions.js +22 -0
- package/lib/parse-check-protocol.d.ts +27 -0
- package/lib/parse-check-protocol.js +51 -0
- package/lib/parse-location.d.ts +12 -0
- package/lib/parse-location.js +171 -0
- package/lib/phase-timing.d.ts +12 -0
- package/lib/phase-timing.js +155 -0
- package/lib/public-suffixes.d.ts +1 -0
- package/lib/public-suffixes.js +6957 -0
- package/lib/run-context.d.ts +2 -0
- package/lib/run-context.js +31 -0
- package/lib/runtime-messages.d.ts +10 -0
- package/lib/runtime-messages.js +34 -0
- package/lib/sandboxed-page.d.ts +5 -0
- package/lib/sandboxed-page.js +35 -0
- package/lib/script-build.d.ts +111 -0
- package/lib/script-build.js +787 -0
- package/lib/script-display.d.ts +51 -0
- package/lib/script-display.js +383 -0
- package/lib/script-icon.d.ts +16 -0
- package/lib/script-icon.js +43 -0
- package/lib/script-links.d.ts +24 -0
- package/lib/script-links.js +204 -0
- package/lib/script-source-url.d.ts +8 -0
- package/lib/script-source-url.js +214 -0
- package/lib/script-world.d.ts +6 -0
- package/lib/script-world.js +65 -0
- package/lib/sm-dev-protocol.d.ts +251 -0
- package/lib/sm-dev-protocol.js +84 -0
- package/lib/source-map.d.ts +32 -0
- package/lib/source-map.js +177 -0
- package/lib/stack-link.d.ts +15 -0
- package/lib/stack-link.js +138 -0
- package/lib/unsafe-window-use.d.ts +1 -0
- package/lib/unsafe-window-use.js +229 -0
- package/lib/url-match.d.ts +40 -0
- package/lib/url-match.js +734 -0
- package/lib/userscript-header.d.ts +33 -0
- package/lib/userscript-header.js +248 -0
- package/lib/version-compare.d.ts +6 -0
- package/lib/version-compare.js +141 -0
- package/lib/version-probe.d.ts +17 -0
- package/lib/version-probe.js +120 -0
- package/package.json +55 -3
- package/skills/SourceMonkey-dev/SKILL.md +868 -0
- package/skills/SourceMonkey-dev/references/cdp.md +293 -0
- package/skills/SourceMonkey-dev/references/commands.md +297 -0
- package/skills/SourceMonkey-dev/references/other-managers.md +63 -0
- package/skills/SourceMonkey-dev/references/specs.md +46 -0
- package/skills/SourceMonkey-friction/SKILL.md +103 -0
- package/skills/SourceMonkey-friction/references/template.md +59 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Writing specs with the harness fixture
|
|
2
|
+
|
|
3
|
+
What you did by hand with sm-dev, captured as a Playwright spec.
|
|
4
|
+
|
|
5
|
+
```js
|
|
6
|
+
import { test, expect } from 'sourcemonkey/harness';
|
|
7
|
+
|
|
8
|
+
test('adds the button', async ({ page, loadUserscript, gm, reports }) => {
|
|
9
|
+
await loadUserscript('sites/x/y.user.js', { values: { units: 'metric' } });
|
|
10
|
+
await page.goto('https://x.com/items/42');
|
|
11
|
+
await reports.waitForStart(); // on a timeout (10s), says why it was skipped
|
|
12
|
+
await page.click('#add-button');
|
|
13
|
+
await expect(page.locator('.added')).toBeVisible();
|
|
14
|
+
expect(await gm.get('lastItem')).toBe('42');
|
|
15
|
+
expect(reports.errors()).toEqual([]);
|
|
16
|
+
});
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- Run it with `pnpm exec playwright test sites/x/y.spec.mjs`, using the
|
|
20
|
+
repo's own `playwright.config`. The script runs in the real
|
|
21
|
+
SourceMonkey: by default a hidden browser per worker with the
|
|
22
|
+
package's build loaded. A repo's fixture file may connect to its own
|
|
23
|
+
browser instead, which needs SourceMonkey loaded.
|
|
24
|
+
- Call `loadUserscript` before the `page.goto` that should see it.
|
|
25
|
+
- What you did by hand maps over: `menu` → `gm.fireMenu(label)`
|
|
26
|
+
(`menu 'Run this script'` → `gm.runScript()`),
|
|
27
|
+
`values` / `get` / `set` → `gm.list()` / `gm.get()` / `gm.set()`,
|
|
28
|
+
`--from-saved` → `serveHtml`, `match` →
|
|
29
|
+
`loadUserscript(path, { url })` (throws on a miss).
|
|
30
|
+
- Specs are ES modules (`.mjs`, or `"type": "module"`).
|
|
31
|
+
- A `GM_xmlhttpRequest` really goes out unless the spec answers it:
|
|
32
|
+
`await gm.interceptRequests(fn)`, or `await gm.failHosts('api.x.com')`
|
|
33
|
+
for a 503 to exercise a fallback. Say at the top of a spec that depends on
|
|
34
|
+
a live service.
|
|
35
|
+
- Check the script's side effects (`gm.openedTabs()`, `downloads()`,
|
|
36
|
+
`requests()`, `notifications()`) with `expect.poll`: they arrive a
|
|
37
|
+
moment after the call.
|
|
38
|
+
- A request to a host the script's `@connect` lines don't cover waits on
|
|
39
|
+
SourceMonkey's prompt: answer it with
|
|
40
|
+
`gm.answerConnectPrompt(gm.connectPrompts()[0].promptId, 'allow')`.
|
|
41
|
+
- `page.route` can serve made-up URLs (`https://x.test/big.png`) for
|
|
42
|
+
tests with no site behind them. `loadUserscript(path, { url })` alone
|
|
43
|
+
tests matching with no page load at all.
|
|
44
|
+
- Fixture reference:
|
|
45
|
+
[harness-guide.md](https://github.com/jshute96/SourceMonkey/blob/main/docs/harness-guide.md#writing-specs-the-playwright-fixture)
|
|
46
|
+
has the rest: `serveHtml` options, `copy`, `saveHtml`.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: SourceMonkey-friction
|
|
3
|
+
description: Record friction from userscript development with SourceMonkey tools (sm-dev, the Playwright harness, the SourceMonkey-dev skill, the script manager) in a shared friction log. Use when finishing a task that ran into problems with those tools (at commit time, or when abandoning the work), without being asked, or when the person asks to log friction.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SourceMonkey friction log
|
|
7
|
+
|
|
8
|
+
The friction log collects problems hit while developing userscripts
|
|
9
|
+
with SourceMonkey (SM) tools: `sm-dev`, the Playwright harness, the
|
|
10
|
+
`SourceMonkey-dev` skill, and the script manager (the SourceMonkey
|
|
11
|
+
extension itself). It's input for improving those tools.
|
|
12
|
+
|
|
13
|
+
## Where the log lives
|
|
14
|
+
|
|
15
|
+
`SourceMonkey-friction.md`, in the directory *above* the repo you're
|
|
16
|
+
working in (`../SourceMonkey-friction.md`). That keeps it out of any
|
|
17
|
+
one repo, so sessions in several repos share one log.
|
|
18
|
+
|
|
19
|
+
- If the person or the repo's instructions name another path, use that.
|
|
20
|
+
- If the file doesn't exist, create it from
|
|
21
|
+
[references/template.md](references/template.md), which has the
|
|
22
|
+
title, the tags, and the entry format.
|
|
23
|
+
|
|
24
|
+
## When to add an entry
|
|
25
|
+
|
|
26
|
+
Write one entry per task, when the task is finished and it ran into
|
|
27
|
+
friction with the tools, without being asked. Finished means:
|
|
28
|
+
|
|
29
|
+
- You're committing the work, or
|
|
30
|
+
- The work is being abandoned (it failed, or the person dropped it).
|
|
31
|
+
|
|
32
|
+
Don't log each problem as it comes up; collect them and write the entry
|
|
33
|
+
at the end, so one task doesn't produce many separate notes.
|
|
34
|
+
|
|
35
|
+
- Put a `---` line before each new entry.
|
|
36
|
+
- If more work on the same task follows on the same day, add to that
|
|
37
|
+
task's entry instead of starting a new one. It's the same task when
|
|
38
|
+
the entry has today's date and the same topic in its heading, and
|
|
39
|
+
this repo on its `Repo:` line.
|
|
40
|
+
- Otherwise, don't rewrite earlier entries. If you learn more about an
|
|
41
|
+
issue logged earlier (like what the real problem was, or that it's
|
|
42
|
+
now fixed), add a dated note to it instead, as in
|
|
43
|
+
[Notes on earlier items](#notes-on-earlier-items).
|
|
44
|
+
- Other sessions may write to the same file. Re-read it just before
|
|
45
|
+
adding to it, and add rather than rewriting the whole file.
|
|
46
|
+
|
|
47
|
+
## What an entry has
|
|
48
|
+
|
|
49
|
+
Follow the template in the log file (or
|
|
50
|
+
[references/template.md](references/template.md)):
|
|
51
|
+
|
|
52
|
+
- A `##` heading with the date and a short topic, then the repo and the
|
|
53
|
+
scripts worked on.
|
|
54
|
+
- What we were trying to do.
|
|
55
|
+
- The friction: things that failed or misled, confusing output, and
|
|
56
|
+
anything better tools could make easier or faster. Add a concrete
|
|
57
|
+
idea for fixing each one when there is one.
|
|
58
|
+
- Start each item with one or more tags:
|
|
59
|
+
- `[tools]`: the dev tools: sm-dev, the Playwright harness, and the
|
|
60
|
+
skills.
|
|
61
|
+
- `[SM]`: the SourceMonkey script manager itself (the extension):
|
|
62
|
+
injection, `GM_*` APIs, header handling.
|
|
63
|
+
- `[general]`: general issues making scripts work, which could
|
|
64
|
+
come up on many sites.
|
|
65
|
+
- `[site-specific]`: this site or this script.
|
|
66
|
+
- `[unknown]`: not sure which.
|
|
67
|
+
- `[bug]`: added to one of the above when it looks clearly broken,
|
|
68
|
+
rather than missing or awkward.
|
|
69
|
+
- Missing tools that would have made this faster: features that don't
|
|
70
|
+
exist, rather than ones that misbehaved. Tag these too.
|
|
71
|
+
- What worked well, including whether the skill or `--help` already had
|
|
72
|
+
the information needed, or it took research.
|
|
73
|
+
- If you found later that the tools can do what you needed, but it
|
|
74
|
+
wasn't obvious or easy to find, note that.
|
|
75
|
+
- The sm-dev log file paths (from `start` or `status`) if they show
|
|
76
|
+
what happened.
|
|
77
|
+
|
|
78
|
+
Be specific: exact commands, error text, and what you tried. An entry
|
|
79
|
+
should make sense to someone fixing the tools months later, without
|
|
80
|
+
the session transcript.
|
|
81
|
+
|
|
82
|
+
## Notes on earlier items
|
|
83
|
+
|
|
84
|
+
When an item logged earlier is looked into or fixed, add a sub-bullet
|
|
85
|
+
under that item, starting with a dated label:
|
|
86
|
+
|
|
87
|
+
- `Investigated (YYYY-MM-DD): <what was found>`: looked into, not fixed.
|
|
88
|
+
- `Fixed (YYYY-MM-DD, <short commit id>): <what changed>`: a change
|
|
89
|
+
should fix it.
|
|
90
|
+
- Leave out the commit id when there isn't one clear commit.
|
|
91
|
+
- Leave out the description when there's nothing to say beyond that
|
|
92
|
+
it was fixed: `Fixed (YYYY-MM-DD, abc1234).`
|
|
93
|
+
|
|
94
|
+
When an item is fixed, strike through its text and its other
|
|
95
|
+
sub-bullets with `~~...~~`, leaving the `Fixed` bullet plain, so open
|
|
96
|
+
items stand out.
|
|
97
|
+
|
|
98
|
+
- Strikethrough doesn't cross paragraph or list-item breaks, so wrap
|
|
99
|
+
each paragraph and bullet separately.
|
|
100
|
+
|
|
101
|
+
A finding about the entry as a whole, rather than one item, goes at
|
|
102
|
+
the entry's end: a `### Update YYYY-MM-DD` heading, then what was
|
|
103
|
+
learned.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# SourceMonkey development friction log
|
|
2
|
+
|
|
3
|
+
This records problems hit while developing userscripts with SourceMonkey (SM)
|
|
4
|
+
tools (`sm-dev`, the Playwright harness, the `SourceMonkey-dev` skill, the
|
|
5
|
+
script manager (the SourceMonkey extension itself), used as input for
|
|
6
|
+
improving them. Add new entries at the end, with a `---` line before each.
|
|
7
|
+
|
|
8
|
+
Use the `SourceMonkey-friction` skill (shipped with SourceMonkey, in
|
|
9
|
+
`skills/SourceMonkey-friction/`) to update this log. It says when to
|
|
10
|
+
log, and what each entry should cover.
|
|
11
|
+
|
|
12
|
+
Tag each friction item with one or more of:
|
|
13
|
+
|
|
14
|
+
- `[tools]`: the dev tools: sm-dev, the Playwright harness, and the skills.
|
|
15
|
+
- `[SM]`: the SourceMonkey script manager itself (the extension): injection, `GM_*` APIs, header handling.
|
|
16
|
+
- `[general]`: general issues making scripts work, which could come up on many sites.
|
|
17
|
+
- `[site-specific]`: this site or this script.
|
|
18
|
+
- `[unknown]`: not sure which.
|
|
19
|
+
- `[bug]`: added to one of the above when it looks clearly broken, rather than missing or awkward.
|
|
20
|
+
|
|
21
|
+
Template:
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
## YYYY-MM-DD: <short topic>
|
|
25
|
+
|
|
26
|
+
**Repo:** `<repo>`
|
|
27
|
+
**Scripts:** `<paths of scripts and libraries worked on>`
|
|
28
|
+
|
|
29
|
+
**Task:** <what we were trying to do>
|
|
30
|
+
|
|
31
|
+
### Friction
|
|
32
|
+
1. [tag] **<short summary>.** <what happened, and what it cost>.
|
|
33
|
+
Ideas: <a concrete fix, if there is one>
|
|
34
|
+
|
|
35
|
+
### Missing tools that would have made this faster
|
|
36
|
+
- [tag] <tool or feature>
|
|
37
|
+
|
|
38
|
+
### What worked well
|
|
39
|
+
- <what helped, and whether the skill or --help already had the answer>
|
|
40
|
+
|
|
41
|
+
**Logs:**
|
|
42
|
+
- <what the run was>: `<sm-dev log path>`
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Later notes on one item go under it as dated sub-bullets. A fixed item's
|
|
46
|
+
text, and its sub-bullets other than the `Fixed` one, get struck through:
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
1. ~~[tag] **<short summary>.** <what happened>.~~
|
|
50
|
+
- ~~Investigated (YYYY-MM-DD): <what was found>~~
|
|
51
|
+
- Fixed (YYYY-MM-DD, <short commit id>): <what changed>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
A later finding about the entry as a whole goes at its end, under its own heading:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
### Update YYYY-MM-DD
|
|
58
|
+
- <what was learned>
|
|
59
|
+
```
|