Conversation
Owner
Author
|
Phase 2b landed on Landed
Deferred
Verifypython3 -m unittest tests.test_filebrowser tests.test_public_base -v
# optional: CE_PUBLIC_BASE=/embed/ce + curl /embed/ce/api/tree ; viewer ?filebrowser=1
cd packages/knowledge-atlas && npx vitest run tests/replayTimeline.test.tsDo not merge (charter). |
Owner
Author
|
Phase 2b+ landed on
|
Add CE_PUBLIC_BASE (/embed/ce) stripping and HTML bootstrap (ceApi), X-CE-Host/?host=switchbay|okbay stub via /api/hosted, ADR-001, and Switchbay→CE filebrowser/animation/split intake map. Keep 127.0.0.1 loopback; bare viewer.sh port 8090 unchanged.
Land GET /api/tree (vault/ + wiki/), wiki-view Pages|Files browser with search/highlight/context menu, and knowledge-atlas playReplayTimeline. Keep CE_PUBLIC_BASE/hosted working; split deferred. Update migration intake.
Land CE-owned page move/copy partition: wiki_partition + POST/GET /api/split (CE_PUBLIC_BASE + CE_SPLIT_HOME), atlas partitionSelection helpers, and a minimal wiki-view split panel. Shells keep workspace registry; rubber-band UI and CM subgraph_export parity remain deferred.
Sandboxed create/rename/move/delete/duplicate under vault|wiki, Switchbay- shaped /api/fs/* + /api/file-routes discovery, minimal Files context menu, and escape-boundary tests. Animation SVG still deferred.
Add wiki-view replay overlay (play/pause/scrub/step) driven by HistoryDoc / playReplayTimeline contract. Serve GET /api/curation/history from data.json (optional workbench cache). Pure buildHistoryFromGraph helpers + tests. Pack action dispatch left for follow-up.
List/enable/local-install packs from pack.json; POST
/api/packs/<pack>/action/<action> queues a sandboxed run ({run_id}).
Wire filebrowser context-menu hooks. Agent/LLM skill execution,
git install, reveal-in-OS, and drop-ingest remain Switchbay-only.
Ship the Switchbay-parity slice for split follow-through without rubber-band UI: CE-owned workspace registry persistence (auto-register on POST /api/split) and an optional curiosity-merge subgraph_export subprocess hook with dry-run.
Classic wiki-view: Ctrl/⌘-drag rubber-band, Shift-click multi-select, click toggle, Alt/right-click move↔copy; SplitPanel syncs selection and POSTs /api/split via ceApi (embed v2 / CE_PUBLIC_BASE). Pure rubberBand helpers + vitest; Atlas splitEnter seeds engine select (no canvas marquee).
Opening autoplay on ?replay=1, enter fade/radius inflate/settle+overlay fade, easeAutoFit after ticks and major scrub jumps, synthetic history ordering by created/type-tier, and pure replayCamera helpers + tests. Atlas canvas binding and git-log rebuild remain deferred.
benjsmith
force-pushed
the
feat/skill-shell-rationalization
branch
from
September 19, 2026 22:05
17f9678 to
0d7b541
Compare
Ctrl/⌘-drag marquee on Atlas (hitTester.boxQuery) mirrors Classic split selection; CurationReplay.bindViewer + fitToContent land ?replay=1 polish on the live Atlas camera after SVG overlay fade. Pure helpers (computeAtlasCameraFit, clientToScenePoint) + vitest; vendor IIFE refreshed.
Toward Switchbay parity: POST /api/fs/reveal|open-external (vault/wiki sandbox), POST /api/ingest/from-upload|from-path (DEFAULT_EXTS allowlist → vault/raw/ + ingest-runs queue), and packs install via git clone --depth 1. Wire context-menu Reveal in OS / Open externally and drag-drop on the filebrowser pane. Honor CE_PUBLIC_BASE.
Easy import of an Obsidian vault into a CE workspace without a Work/symlink dance. Maps vault root → wiki/, preserves [[wikilinks]], sandboxes sources like filebrowser/workspace registry, zip-slip safe. API POST /api/import/obsidian (JSON path or multipart zip) honours CE_PUBLIC_BASE. CLI: python3 obsidian_import.py (ce import-obsidian). Unit tests cover sandbox, zip extract, and wikilink presence.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 2a–2b+++++ (prior)
Embed prefix, filebrowser, FS mutate, packs, curation replay, wiki partition, workspace registry + CM export (
712fd45).Phase 2b++++++ (this — 38e067d)
Graph.splitEnter/splitExit; listensce:split-selection,ce:split-proposal,sy:split-proposal; POSTs/api/splitviaceApi(embed v2 /CE_PUBLIC_BASE=/embed/ce).packages/knowledge-atlasrubberBand.ts+ vitest.splitEnter/splitExitseed engine multi-select (canvas marquee still deferred).Test plan
cd packages/knowledge-atlas && npm test -- rubberBand partitionSelectionnode --checkon graph.js / split.js / atlas.js / main.jsCE_PUBLIC_BASE=/embed/ceviewer;?split=1; Ctrl-drag nodes → SplitDo not merge until Ben reviews umbrella E2E evidence (charter).