Testing
Required checks#
Shell
pnpm run check
This runs strict contract checking, source-reference checks, skill-manifest
validation, and the regression suite. Tests use Node's built-in node:test.
Add focused regressions for connector, parser, cache, permission, and
security-boundary changes.
Browser UI checks#
Install the WebKit test browser if needed, then run the workspace checks:
Shell
pnpm exec playwright install webkit
pnpm run check:ui
The checks use an isolated local service, fictional data, and fixtures for personal sources. They cover layouts, theme modes, window sizes, and interactions such as Notes drag-and-drop and contextual editing.
To focus a layout investigation on one workspace:
Shell
HABIBI_UI_WORKSPACE=notes pnpm run check:ui
Native checks#
After building the client, macOS can test the teleprompter with assets copied into a real app bundle:
Shell
native/smoke-test-teleprompter.sh
This catches packaged resource URL and rendering issues that a source-only
browser test can miss. Other native/smoke-test-* scripts cover their named
native boundaries; inspect their inputs before running a packaged-release or
account-dependent check.
Safe screenshots#
Repository screenshots use the sealed fictional-data demo mode:
Shell
pnpm exec playwright install webkit
pnpm generate:demo-screenshots
To refresh selected captures, pass their filenames without the extension:
Shell
pnpm generate:demo-screenshots --only=emoji-picker,clipboard-history,focus-timer
The capture script uses a temporary data root and browser profile. Browser-only
fixtures in scripts/demo-capture-fixtures.mjs provide fictional agent sessions,
cluster resources, and Mac utilities over the sealed demo. No native clipboard,
Reminders, timer, terminal, or cluster connection is used. Window captures have
transparent corners; the documentation theme supplies their shadows.
Never record real mail, clipboard contents, chat exports, keys, or private screens into committed fixtures. Keep personal data directories outside the test service's data root.
Documentation checks#
Run pnpm run docs:check for page metadata, links, assets, and MDX compilation.
Run pnpm run docs:build for a deployable static site. See
Maintain the docs.
AI file workflow tests#
The live fixture suite passed with gpt-6-luna on 6 November 2026. It checked:
- Forty-file content-based renaming, actual apply, and Undo.
- Forty-file folder organization, actual apply, and Undo.
- Image compression and a valid PDF merge preview.
- Invoice CSV extraction grounded in fictional PDF text.
- Evidence-based document selection, storage explanation, and duplicate reporting.
- A seventeen-minute timer and a dated Apple Reminder proposal.
- Opted-in duplicate cleanup with a real Trash/Undo round trip.
- AI-selected PDF page order and rotation with a valid output preview.
The native fixture suite separately checks PDF page order, rotation, extraction,
compressed copies, image dimensions, overwrite refusal, and a Trash/restore round
trip. Browser checks cover @ selection, content-sharing controls, cancellation,
real temporary-file rename/Undo, responsive layouts, and reviewed inline utility
actions. These checks establish the supported paths; they do not guarantee every
model response or every document format will produce a useful plan.
Run the live suite after building and configuring an OpenAI key in Habibi:
Shell
HABIBI_TEST_MODEL=gpt-6-luna node scripts/check-file-tools-live.mjs
It uses generated fixtures only. The key stays in Keychain, is never printed, and is never written to the fixture configuration.
Was this page helpful?
