Peter Steinberger
f9e3d30d2d
refactor: structure absolute directory failures
2026-05-07 10:32:16 +01:00
jesse-merhi
509076b3a2
docs: document absolute directory helper
2026-05-07 10:29:15 +01:00
sallyom
e335490a5b
add non-durable atomic write option
...
Signed-off-by: sallyom <somalley@redhat.com>
2026-05-07 10:26:06 +01:00
Peter Steinberger
71ec9f4c10
fix: detect stale move fallback sources
2026-05-07 10:17:11 +01:00
Peter Steinberger
354ba8e4c9
fix: preserve concurrent move fallback writes
2026-05-07 08:58:42 +01:00
Peter Steinberger
c382eafdb2
fix: fail closed on stale sidecar locks
2026-05-07 08:02:36 +01:00
Peter Steinberger
ce4137f028
test: harden external output coverage
2026-05-07 04:34:31 +01:00
jesse-merhi
f4a7bb1a65
feat: add safe external output writer
2026-05-07 03:05:05 +01:00
Peter Steinberger
f305c8be2b
fix(fs): preserve public path modes in guard refactor
2026-05-06 21:31:04 +01:00
Peter Steinberger
c2e5849039
docs(fs): document boundary guardrails
2026-05-06 21:21:42 +01:00
Peter Steinberger
039e3aa0c8
docs: document filesystem hardening
2026-05-06 20:57:25 +01:00
Peter Steinberger
91f7b74ad6
feat: add root JSON and durable queue helpers
2026-05-06 06:27:23 +01:00
Peter Steinberger
cbe59d156a
docs: package release docs
2026-05-06 04:54:18 +01:00
Peter Steinberger
1b78581bca
docs: add missing subpath pages
2026-05-06 04:19:53 +01:00
Peter Steinberger
409874b507
docs: refresh readme presentation
2026-05-06 03:39:50 +01:00
Peter Steinberger
cc0757aa82
refactor: split root internals and security test helpers
2026-05-06 03:29:31 +01:00
Peter Steinberger
90ffaf5168
fix: harden root path validation
2026-05-06 03:04:45 +01:00
Peter Steinberger
4a87bc4473
docs: clarify temp workspace and json store wording
2026-05-06 02:16:36 +01:00
Peter Steinberger
2e83f7d9b9
refactor: narrow low-level lock and pinned-open surface
2026-05-06 01:43:39 +01:00
Peter Steinberger
02b9a9d2ae
refactor: trim temp workspace surface
2026-05-06 01:26:06 +01:00
Peter Steinberger
542657b9d2
refactor: back temp workspaces with file stores
2026-05-06 01:17:03 +01:00
Peter Steinberger
b9434cd363
refactor: bind json state to file stores
2026-05-06 00:53:09 +01:00
Peter Steinberger
32acf97225
refactor: unify private file store
2026-05-06 00:37:14 +01:00
Peter Steinberger
be7de52292
docs: clarify store helper roles
2026-05-06 00:21:03 +01:00
Peter Steinberger
e210a26af2
feat: unify store helpers
2026-05-06 00:07:28 +01:00
Peter Steinberger
ff2e84aaea
feat: add persistent fs-safe python helper
2026-05-05 23:25:07 +01:00
Peter Steinberger
46c1b1d22c
docs: sharpen root positioning
2026-05-05 22:49:39 +01:00
Peter Steinberger
bd2749649a
refactor: align atomic and secret helpers
2026-05-05 22:37:01 +01:00
Peter Steinberger
49f1f54cc4
feat: serialize same-target writes
2026-05-05 22:32:11 +01:00
Peter Steinberger
43c6d2058e
docs: clarify fs-safe positioning
2026-05-05 22:23:26 +01:00
Peter Steinberger
722cb41390
feat: make archive dependencies optional
2026-05-05 22:19:59 +01:00
Peter Steinberger
60987f7055
refactor: narrow secret and temp surfaces
2026-05-05 21:51:31 +01:00
Peter Steinberger
146f0e77b6
refactor: keep json surface focused
2026-05-05 21:42:09 +01:00
Peter Steinberger
f4adfdf446
docs: clarify store and temp surfaces
2026-05-05 21:29:35 +01:00
Peter Steinberger
93e71d28af
refactor: narrow store and secret exports
2026-05-05 21:21:48 +01:00
Peter Steinberger
f76bbf892d
refactor: clarify private state store api
2026-05-05 21:07:07 +01:00
Peter Steinberger
e922b76069
refactor: tighten fs-safe public api
2026-05-05 20:57:44 +01:00
Peter Steinberger
2efb326c67
refactor: simplify fs-safe public surface
2026-05-05 20:39:16 +01:00
Peter Steinberger
86f05d6368
refactor: curate public fs-safe API
2026-05-05 20:24:42 +01:00
Peter Steinberger
7f2b962c92
docs: refresh for renamed APIs and new stores
...
Sync the docs site with recent source changes:
- json: writeJsonAtomic/writeTextAtomic → writeJson/writeText; readJsonFile/Strict
→ readJson + readJsonIfExists + tryReadJson; ensureDirMode → dirMode;
appendTrailingNewline → trailingNewline.
- temp: createPrivateTempWorkspace/createTempFileTarget → tempWorkspace/tempFile;
PrivateTempWorkspaceOptions → TempWorkspaceOptions; TempFileTarget → TempFile.
- atomic: replaceDirectoryStaged → replaceDirectoryAtomic; mode/dirMode names.
- root: read{Path → Absolute}; RootDefaults gains mode; per-method options pick
mode through RootWriteOptions / RootCopyOptions / RootOpenWritableOptions.
- secret-file: writePrivateSecretFileAtomic gains mode/dirMode and now requires
rootDir; documents the asserted-mode behavior on each component.
- sidecar-lock: SidecarLockHandle has [Symbol.asyncDispose]; document the new
top-level withSidecarLock helper.
New pages:
- file-store.md — fileStore() + copyIntoRoot.
- json-store.md — jsonStore<T>() with optional cross-process lock.
Add a "Stores" section to the sidebar; update install.md subpath table to list
json-store, file-store, and local-roots.
2026-05-05 19:30:54 +01:00
Peter Steinberger
c73a672d37
fix: harden filesystem write fallbacks
2026-05-05 19:18:55 +01:00
Peter Steinberger
f0d61765f5
docs: add social card for fs-safe.io
...
1200×630 PNG (rendered from SVG) wired into og:image / twitter:image meta
on every page. Dark theme matches the site, shield mark + wordmark + tagline
+ url. Twitter card upgraded to summary_large_image.
2026-05-05 19:05:10 +01:00
Peter Steinberger
b3c6f4c336
feat: clean up root and temp workspace APIs
2026-05-05 18:29:53 +01:00
Peter Steinberger
59b91125a3
fix: harden archive and copy limits
2026-05-05 18:23:05 +01:00
Peter Steinberger
a559283ac5
docs: add fs-safe.io documentation site
...
- 25 markdown guides covering every public primitive: root(), pathScope(),
reading/writing, atomic writes, JSON, temp workspaces, archive extraction,
secret files, sidecar locks, pinned open, local roots, path/filename helpers,
install paths, errors, types, testing, timing, contributing.
- Custom Node-based static site generator (scripts/build-docs-site.mjs) with
link validation, dark mode, mobile nav, search, copy buttons.
- GitHub Actions workflow deploys to Pages on docs/script changes.
- CNAME points to fs-safe.io (DNS already configured to GitHub Pages IPs).
To activate: switch repo Pages source from legacy/branch to workflow.
2026-05-05 17:57:31 +01:00