Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.beta
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
SCIDK_CHANNEL=beta
# Optional explicit overrides (channel already applies these if unset):
# SCIDK_PROVIDERS=local_fs,mounted_fs,rclone
# SCIDK_RCLONE_MOUNTS=1
# SCIDK_FILES_VIEWER=rocrate
# SCIDK_FEATURE_FILE_INDEX=1
# Note: rclone mounts are now core functionality and always enabled
2 changes: 1 addition & 1 deletion .env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
SCIDK_CHANNEL=dev
# Optional explicit overrides (channel already applies these if unset):
# SCIDK_PROVIDERS=local_fs,mounted_fs,rclone
# SCIDK_RCLONE_MOUNTS=1
# SCIDK_FILES_VIEWER=rocrate
# SCIDK_FEATURE_FILE_INDEX=1
# Note: rclone mounts are now core functionality and always enabled
2 changes: 1 addition & 1 deletion .env.stable
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
SCIDK_CHANNEL=stable
# In stable, advanced features are off unless explicitly set by operator.
# SCIDK_PROVIDERS=local_fs,mounted_fs
# SCIDK_RCLONE_MOUNTS=0
# SCIDK_FILES_VIEWER=classic
# SCIDK_FEATURE_FILE_INDEX=0
# Note: rclone mounts are now core functionality and always enabled
20 changes: 19 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,28 @@
# Convenience Makefile for docs/tools

.PHONY: flags-index docs-check unit integration check e2e-install-browsers e2e e2e-headed e2e-parallel e2e-debug
.PHONY: flags-index docs-check unit integration check e2e-install-browsers e2e e2e-headed e2e-parallel e2e-debug clean-test-artifacts

flags-index:
python -m dev.tools.feature_flags_index --write

# Clean up test artifacts (pytest sessions, cache, temp files)
# Keeps the 3 most recent pytest sessions
clean-test-artifacts:
@echo "Cleaning test artifacts..."
@# Remove pytest cache
@rm -rf .pytest_cache
@# Remove Python bytecode
@find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
@find . -type f -name "*.pyc" -delete 2>/dev/null || true
@# Keep last 3 pytest sessions, remove older ones
@if [ -d "dev/test-runs/tmp/pytest-of-patch" ]; then \
cd dev/test-runs/tmp/pytest-of-patch && \
ls -t | grep '^pytest-[0-9]*$$' | tail -n +4 | xargs -r rm -rf ; \
fi
@# Remove playwright reports
@rm -rf playwright-report test-results
@echo "✓ Test artifacts cleaned (kept last 3 pytest sessions)"

# docs-check: run generator and diff; non-zero exit if mismatched
# Note: this target assumes Unix tools (diff)
docs-check:
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,11 @@ Rclone provider (optional):
- If rclone is not installed or a remote is misconfigured, API returns a clear error message with HTTP 500 and {"error": "..."}.
- Optional FUSE mount flow with safe defaults: see docs/rclone/mount-examples.md and dev/ops/rclone/systemd/rclone-mount@.service.

### Rclone Mount Manager (MVP, feature-flagged)
- Enable the feature: set `SCIDK_RCLONE_MOUNTS=1` (or `SCIDK_FEATURE_RCLONE_MOUNTS=1`). When enabled, the rclone provider is auto-enabled for remote validation even if not listed in `SCIDK_PROVIDERS`.
- UI: Settings → Rclone Mounts section appears. Create a mount by entering `remote`, optional `subpath`, a `name`, and submit (read-only by default).
### Rclone Mount Manager (MVP)
- The rclone provider is always enabled for remote validation.
- UI: Settings → Rclone Mounts section. Create a mount by entering `remote`, optional `subpath`, a `name`, and submit (read-only by default).
- Safety: Mountpoints are restricted under `./data/mounts/<name>`; remotes are validated against `rclone listremotes` output.
- Endpoints (enabled only when the feature flag is set):
- Endpoints:
- GET `/api/rclone/mounts` — list managed mounts
- POST `/api/rclone/mounts` with JSON `{ remote, subpath, name, read_only }` — starts `rclone mount` targeting `./data/mounts/<name>`
- DELETE `/api/rclone/mounts/<id>` — unmounts and stops the process
Expand Down
2 changes: 1 addition & 1 deletion dev
Submodule dev updated from ae891d to 2dac9d
Loading