IMPORT-MANUAL-CHECKLIST.md
markdown
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠ breaking
2 days ago
Import — manual test checklist
Use self-hosted Hub (npm run hub) or CLI for local file paths. Hosted (gateway): import is bridge-backed when BRIDGE_URL is set on the gateway; see IMPORT-URL-AND-DOCUMENTS-PHASES.md §4V and hub/gateway/README.md. Canonical source_type values: lib/import-source-types.mjs.
Prerequisites
- Configured vault (
config/local.yamlorKNOWTATION_VAULT_PATH). - After large imports: Re-index (Hub) or
knowtation index.
Per source type (one happy path each)
| Source type | What to run | Expect |
|---|---|---|
markdown |
Single .md and a small folder; optional --project, --tags |
Notes under chosen output dir; source: markdown, date |
chatgpt-export |
ZIP or folder containing conversations.json |
source: chatgpt, source_id, title, transcript body |
claude-export |
Folder of .md or .json per IMPORT-SOURCES.md |
source: claude, source_id, date |
mem0-export |
Mem0 export JSON file | source: mem0, source_id, date |
mif |
.memory.md, .memory.json, or folder |
source: mif; mif:id mapped to source_id when present |
notion |
Comma-separated page IDs (CLI/API); Hub upload N/A for IDs | NOTION_API_KEY; source: notion |
notebooklm |
Folder of .md or JSON with sources / array |
source: notebooklm |
gdrive |
Folder of Markdown files only | source: gdrive |
jira-export |
.csv or folder with one .csv |
source: jira, source_id = issue key |
linear-export |
Linear export .csv |
source: linear, source_id |
audio |
Supported audio file | See Audio / video below |
video |
Supported video file | See Audio / video below |
Audio / video
- Hub UI: Audio (transcribe) is available on self-hosted Hub with
OPENAI_API_KEY. Video in the import dialog is coming soon; use CLIknowtation import videoor transcribe elsewhere and import Markdown. - Set
OPENAI_API_KEYin the environment of the process running Hub or CLI. - Use a Whisper-supported extension:
.mp3,.mp4,.mpeg,.mpga,.m4a,.wav,.webm(seelib/transcribe.mjs). - File size: OpenAI’s transcription API enforces a 25MB maximum per file (you may see 413 Payload Too Large when the limit is exceeded). Prefer compressed audio (M4A/MP3) for longer recordings; split or downsample before import.
- Import, then index and search for a phrase from the transcript.
Agents (MCP)
- MCP
importaccepts the samesource_typestrings as the CLI (seeimport-source-types.mjs). inputmust be a path visible to the MCP server process (working directory, mounts, container volumes).- After import:
get_note/search/list_notesto verify; use tiered retrieval per RETRIEVAL-AND-CLI-REFERENCE.md.
Hosted (production)
- If
BRIDGE_URLis not set on the gateway,POST /api/v1/importreturns 501 withcode: NOT_AVAILABLEand an error string (see hub/gateway/server.mjs). The Hub should surface that JSON clearly. - When
BRIDGE_URLis set, the gateway proxies to the bridge — samePOST /api/v1/importas self-hosted Hub, including 4A₂, 4B, and 4C (4C is client-only; no extra route). See PARITY-MATRIX-HOSTED.md and IMPORT-URL-AND-DOCUMENTS-PHASES.md §4V.
Hub — Phase 4A₂ (in-browser ZIP), 4B (sequential multi), and 4C (drop zone)
When: npm run hub (or hosted with bridge), signed in, Import modal.
- 4A₂ — Markdown, two local
.md(multi-select): source Markdown → expect onePOST /api/v1/importwith ahub-bulk.zip(DevTools → Network) and >0 notes. - 4A₂ — Choose folder: source Markdown → Choose folder (ZIP in browser) on a small tree of
.md→ one POST, Re-index if needed, notes present. - 4A₂ — ChatGPT: a folder that includes
conversations.json(or only that file) → source ChatGPT → one POST with client zip if not already a.zipupload; >0 notes. - 4B — Two PDFs: source PDF → multi-select two small PDFs → two sequential
POST/importand a Batch: 2 of 2 success line (or failure text per file). - 4B — Stop batch: start a 3+ PDF batch, Stop batch before the end; message indicates partial/bail.
- 4C — Drop folder (Chromium): source Markdown → drag a small folder of
.mdonto the dashed Drop files or a folder area → status shows file count, Import → same as Choose folder (onehub-bulk.zipPOST for tree mode). In Safari / Firefox, directory drag may be flatter; if paths look wrong, use Choose folder or a desktop ZIP instead. - Cap: if you have no large fixtures, trust unit tests:
node --test test/hub-client-import-zip.test.mjs.
Hosted 4C + bridge (Chromium)
Run after a deploy to production or a Netlify deploy preview (same checks as 4C locally, but against the hosted gateway URL). Prereq: BRIDGE_URL set on the gateway, signed in, small fixture folder of .md files.
| Step | Action | Expected |
|---|---|---|
| 1 | Open Hub → Import | Modal includes dashed #import-drop-zone (inspect or visually confirm). |
| 2 | Source Markdown → Choose folder on the fixture → Import | One POST /api/v1/import in DevTools (e.g. hub-bulk.zip for client_zip mode), >0 notes. |
| 3 | Same fixture: drag folder onto the drop zone → Import | Same Network pattern and success as step 2 (4C is equivalent to Choose folder for the server). |
| 4 | (Optional) GET {BRIDGE}/api/v1/bridge-version |
Record for PR evidence; see IMPORT-URL-AND-DOCUMENTS-PHASES.md §4V. |
Automated regression
node --test test/import-importers-golden.test.mjs test/import-source-types.test.mjs test/import-markdown.test.mjs test/embedding-usage.test.mjs test/hub-client-import-zip.test.mjs
File History
2 commits
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠
2 days ago
sha256:9103f98c89257ed2b01c237cea895dabb3e85ea337dccb1161c175e4422355b6
docs: accept Calendar Events v0 spec with Phase 0 security …
Human
2 days ago