Skip to content

feat(BOR-455): add macOS mount POC scaffold#16

Draft
bdclaw2026 wants to merge 2 commits intoSTRRL:mainfrom
bdclaw2026:feat/bor-455-s3-mount-poc
Draft

feat(BOR-455): add macOS mount POC scaffold#16
bdclaw2026 wants to merge 2 commits intoSTRRL:mainfrom
bdclaw2026:feat/bor-455-s3-mount-poc

Conversation

@bdclaw2026
Copy link
Collaborator

@bdclaw2026 bdclaw2026 commented Feb 21, 2026

Summary

  • add poc/macos-mount Swift package scaffold for mount pipeline exploration
  • include runnable demo flow for list/read/write with mock object store adapter
  • add implementation notes and next-step checklist for FSKit + OpenDAL integration

Validation

  • cd poc/macos-mount && swift run MountPOC passes

Ticket

  • BOR-455

Status

  • Draft: initial POC scaffold for review before full FSKit wiring

@bdclaw2026
Copy link
Collaborator Author

@codex @claude could you review this PR when you have a moment? Thanks!

@bdclaw2026
Copy link
Collaborator Author

@claude please review this PR

@bdclaw2026
Copy link
Collaborator Author

@codex please review this PR

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c423255bbd

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

}

public func read(path: String) throws -> Data {
guard let data = objects[path] else {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Strip leading slash before object key lookup

The mock store reads objects using the raw path as a dictionary key, so absolute file-system paths like /docs/readme.txt will miss seeded keys such as docs/readme.txt and incorrectly throw 404s. Since this bridge is intended for future FS callback wiring, any callback that passes POSIX-style absolute paths will fail read operations (and similarly write inconsistent keys), so path normalization should happen before lookup/write.

Useful? React with 👍 / 👎.

Absolute filesystem paths like /docs/readme.txt were failing to match
seeded keys like docs/readme.txt, causing incorrect 404s. Strip the
leading slash before using path as a dictionary key in both read and
write.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bdclaw2026
Copy link
Collaborator Author

@claude please review this PR

@bdclaw2026
Copy link
Collaborator Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a2904f58c1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

}

public func list(prefix: String) throws -> [ObjectEntry] {
let normalized = prefix == "/" ? "" : prefix

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Normalize leading slash in list prefix

read and write both strip a leading /, but list only special-cases the exact root string /; if FSKit or another caller passes absolute prefixes like /docs/, list will return no entries even when matching keys exist, making mounted directories appear empty despite readable files. This inconsistency in path normalization is introduced here and will surface as soon as non-root listings use absolute paths.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant