Commit graph

303 commits

Author SHA1 Message Date
Michael Naumov
edaac087d8 chore: release 1.9.20 2026-07-20 12:46:03 -06:00
Michael Naumov
f88fd74c5a docs: standardize demo-vault README 2026-07-20 11:09:01 -06:00
Michael Naumov
32eb3b0cb9 docs: drop per-plugin demo-vault setup notes (bootstrap covered by ODU harness) 2026-07-20 10:59:36 -06:00
Michael Naumov
431a8516c8 docs: unnumber demo-vault setup notes 2026-07-20 10:19:06 -06:00
Michael Naumov
4e691e5680 Merge branch 'T94': create the Advanced Debug Mode demo vault (S2)
Bump obsidian-dev-utils to 87.1.0, register the open demo vault command, and add
a numbered, developer-focused demo vault with a no-app coverage suite. All gates
are green and the demo vault archives cleanly.
2026-07-20 09:20:25 -06:00
Michael Naumov
715fe7ed5b feat: add demo vault
Add a developer-focused demo vault that shows how Advanced Debug Mode enriches
the DevTools console. Notes are numbered basic to advanced and cover debug mode,
long stack traces (with a Run button that throws through async boundaries), async
long stack traces, long-running-task timeouts, mobile DevTools, debug namespaces,
and every setting. A no-app integration suite keeps the notes in sync with the
PluginSettings surface. The root README documents the three ways to open it.
2026-07-20 09:19:21 -06:00
Michael Naumov
ffa20a9201 feat: register the open demo vault command
Add the shared OpenDemoVaultCommandHandler to the command batch so users can open
the plugin's demo vault. The plugin test seeds the plugin notice component and
asserts the handler is constructed.
2026-07-20 08:36:44 -06:00
Michael Naumov
746fbb9fa2 chore: update obsidian-dev-utils to 87.1.0
Bump the shared library from 86 to 87.1.0. No source or test changes were
required: the build is clean and the coverage suite stays at 100%.
2026-07-20 08:22:42 -06:00
Michael Naumov
b1906e948f docs: update 2026-07-14 23:51:37 -06:00
Michael Naumov
2891ad136b docs: migrate to AGENTS.md 2026-07-14 15:14:11 -06:00
Michael Naumov
28061374a9 chore: release 1.9.19 2026-07-14 11:59:39 -06:00
Michael Naumov
2f4f39595c docs: fix url 2026-07-14 11:53:04 -06:00
Michael Naumov
863a63f029 chore: release 1.9.18 2026-07-14 03:48:57 -06:00
Michael Naumov
a9e2d952c3 refactor: adopt pre-wired commandHandlerComponent 2026-07-14 03:43:09 -06:00
Michael Naumov
16ac6a4045 docs: fix dead debugging-guide link 2026-07-14 03:41:54 -06:00
Michael Naumov
8f1513466a chore: drop obsolete dynamic-import eslint-disable 2026-07-14 03:28:50 -06:00
Michael Naumov
bd59a38787 refactor: adopt pre-wired commandHandlerComponent 2026-07-14 03:27:58 -06:00
Michael Naumov
b9fc122b25 test: stub editAndSave in stack-trace-limit tests 2026-07-14 03:27:19 -06:00
Michael Naumov
0a81083cf1 chore: update libs 2026-07-14 02:42:31 -06:00
Michael Naumov
00bda354f8 chore: release 1.9.17 2026-07-11 05:10:30 -06:00
Michael Naumov
32702b996a chore: overexposed 2026-07-11 04:31:42 -06:00
Michael Naumov
17efa56217 chore: update libs 2026-07-11 03:30:27 -06:00
Michael Naumov
5f1fa15d08 chore: update obsidian-dev-utils to 85.0.0
Bump obsidian-dev-utils from ^83.0.0 to ^85.0.0 and fix all migration
fallout:

- Remove eslint-disable directives now banned by the stricter
  eslint-comments/no-restricted-disable rule (obsidianmd 0.3.0 -> 0.4.1)
  for @typescript-eslint/no-deprecated, obsidianmd/ui/sentence-case and
  obsidianmd/no-global-this, fixing the underlying code instead.
- Drop the obsolete window.app / app.obsidianDevUtilsState seeding
  (setup.ts and the settings-tab test): under 85 the shared state lives
  on globalThis.__obsidianDevUtils and is reset per test by the wired
  obsidian-dev-utils/vitest-setup.
- Render the debug-namespaces documentation link text via appendText so
  it stays lowercase without suppressing obsidianmd/ui/sentence-case.
- Add a src/**/*-desktop-component.ts override turning off the new
  obsidianmd/no-nodejs-modules warning for the deliberate desktop-only
  node built-in imports (the rule cannot be disabled inline).
2026-07-10 23:03:27 -06:00
Michael Naumov
1065f7c853 refactor: pass params objects to long-stack-traces component methods
Convert the public LongStackTracesDesktopComponent.addStackFrame and
.adjustStackLines (each three positional args) to a single params
object, and AsyncLongStackTracesComponent.asyncHookInit likewise, with a
thin adapter arrow at the createHook boundary that unpacks the async_hooks
positional args into the object call. Update all call sites across both
components and their tests. Add a test that fires the real init hook so the
adapter arrow stays covered.
2026-07-10 18:16:12 -06:00
Michael Naumov
3db4f0f92c build: lock typescript to 6.0.3 2026-07-09 16:32:12 -06:00
Michael Naumov
56733e5fb6 test: wire integration-testing vitest-setup into integration projects 2026-06-30 16:34:06 -06:00
Michael Naumov
0b28d6007f chore: update libs 2026-06-30 16:31:04 -06:00
Michael Naumov
3ffb180267 chore: clean up tsconfig 2026-06-27 21:16:02 -06:00
Michael Naumov
55d88bffb2 chore: release 1.9.16 2026-06-27 00:08:20 -06:00
Michael Naumov
a7b0cdcea7 chore: add microtasks to spellcheck dictionary 2026-06-27 00:02:31 -06:00
Michael Naumov
ec95bde6e2 refactor: sleep 2026-06-26 22:42:54 -06:00
Michael Naumov
edb919b456 chore: update libs 2026-06-26 14:28:22 -06:00
Michael Naumov
49b298b255 refactor: new template 2026-06-25 22:29:49 -06:00
Michael Naumov
d9c177d97f chore: update libs 2026-06-24 19:22:21 -06:00
Michael Naumov
3f9c757446 chore: update overexposed scripts 2026-06-24 19:03:40 -06:00
Michael Naumov
0983bbe718 chore: honor NANO_STAGED opt-out in nano-staged config 2026-06-24 19:03:36 -06:00
Michael Naumov
d29e0110a2 chore: release 1.9.15 2026-06-24 18:14:40 -06:00
Michael Naumov
f882c6c421 chore: update libs 2026-06-24 17:53:22 -06:00
Michael Naumov
5cf57118db chore: update libs 2026-06-24 15:15:51 -06:00
Michael Naumov
7f7110a29d chore: overexposed 2026-06-24 00:26:34 -06:00
Michael Naumov
a4c090324c refactor: test 2026-06-24 00:12:24 -06:00
Michael Naumov
00c3365aba chore: find-overexposed 2026-06-24 00:05:27 -06:00
Michael Naumov
5951fe41f0 chore: update libs 2026-06-24 00:00:20 -06:00
Michael Naumov
e23f4d846e chore: update libs 2026-06-23 12:17:24 -06:00
Michael Naumov
25ca91cce6 refactor: use sleep helper instead of inline setTimeout
Replace inline setTimeout-Promise delay patterns with the sleep helper.
The unit test now imports sleep from obsidian-dev-utils/async; the
integration-test closure uses the Obsidian runtime global sleep.
2026-06-21 22:31:43 -06:00
Michael Naumov
a440713471 refactor: use sleep helper instead of inline setTimeout 2026-06-21 22:23:44 -06:00
Michael Naumov
0919ab18e0 chore: update libs
Bump obsidian-dev-utils 75.0.0 -> 76.1.0 and obsidian-integration-testing 4.3.0 -> 4.4.0.

The new obsidian-dev-utils/params-options-name-match ESLint rule now checks param-bag names on
all members. Rename the AddLongStackTracesPatchComponent private param-bag interfaces to be
class-qualified, and add a scoped eslint-disable for afterPatchAddEventListener whose param must
remain the shared AfterPatchParams (it implements the AfterPatchFn callback signature).
2026-06-21 21:45:45 -06:00
Michael Naumov
6ff4e7033f chore: update libs
Bump obsidian-dev-utils ^74.2.0 -> ^75.0.0 (major: renamed the test-setup
endpoints) and obsidian-test-mocks ^3.2.0 -> ^3.3.0.

Replace the removed unit-test setup file
obsidian-dev-utils/setup/async-operation-tracking-vitest-setup with the new
consolidated obsidian-dev-utils/vitest-setup endpoint, which resets shared
state on globalThis.__obsidianDevUtils and enables async tracking.
2026-06-21 14:37:53 -06:00
Michael Naumov
75489fbb01 test: adopt async-operation tracking for fire-and-forget assertions
Wire obsidian-dev-utils/setup/async-operation-tracking-vitest-setup into the unit-tests
vitest project and replace the flaky setTimeout(0) settle-waits after the convertAsyncToSync
toggle onChange handlers with await waitForAllAsyncOperations().
2026-06-21 13:08:18 -06:00
Michael Naumov
5251fcf19e fix: type the long-stack-traces patch obj as a plain-method record
dev-utils 74.2.0 distinguishes methods from function-like values: registerMethodPatch
now constrains methodName to MethodKeys<Obj>, which excludes callables carrying extra
members. Because GenericFunction adds an optional originalFn, Record<string, GenericFunction>
has no method keys, so AddLongStackTracesPatchComponent failed to compile (methodName: never).

Add GenericMethod (a bare callable) and GenericMethodObject (a record of them) and type the
patched obj as GenericMethodObject so methodName resolves to string. Extract the originalFn
carrier into a named interface to satisfy the no-anonymous-inline-object-types rule.
2026-06-21 13:07:46 -06:00