doorstop-vscode-server
A small FastAPI server that wraps the Doorstop Python API directly (instead of shelling out to the doorstop CLI). It is designed to serve exactly one client — the Doorstop VS Code extension — and answers requests strictly one at a time; there is no concurrent request handling.
Install (editable, for development)
pip install -e .[dev]
Run
python -m doorstop_server --project <path-to-doorstop-project-root> --host 127.0.0.1 --port 7867
or, after installing:
doorstop-vscode-server --project <path-to-doorstop-project-root> --host 127.0.0.1 --port 7867
API
See src/doorstop_server/routers/ for the endpoint implementations. GET /health is the only route that is not serialized behind the request lock.
Tests
The test suite exercises the real FastAPI app against a temporary Doorstop project (no mocking of Doorstop itself), so it doubles as a pinned-down contract for the HTTP interface — every request/response shape, status code, and error format a test asserts on is something the extension can rely on.
pip install -e .[dev]
pytest
tests/conftest.py— shared fixtures (client,project_root,document) and aset_item_texthelper for mutating an item directly via the Doorstop API (bypassing the server) to simulate out-of-band edits.tests/test_serialization.py— proves the one-request-at-a-time guarantee black-box: fires concurrent/itemscalls and checks for zero UID collisions/gaps, rather than inspecting the lock directly.tests/test_errors.py— pins down the structured{"error": {"code", "message"}}shape for both expected (DoorstopError) and unexpected exceptions.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doorstop_vscode_server-0.1.0.tar.gz.
File metadata
- Download URL: doorstop_vscode_server-0.1.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d7658e6b4ca00da058fead240f30a47f8bb9fb79334480cec482cddc1acfa26
|
|
| MD5 |
963fd33f40eb85722dbc42ca522dfbfd
|
|
| BLAKE2b-256 |
c1bdd2b16554aaf6658cdb6dcb561d497bb7b00884f1d2ed201562791db3677f
|
File details
Details for the file doorstop_vscode_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: doorstop_vscode_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6838f015e58caee8e5f1bf72a8ceda26bac652079635848afd938a5e507f0ae2
|
|
| MD5 |
89c73ad8382e9e3a90447482fe5be2d8
|
|
| BLAKE2b-256 |
c1435380ca1f5c2e15e9045a6525d1e5f237dcbdbfa00fb027d7c492dcd834cb
|