Skip to content

Normalize linker path inputs to prevent absolute-path overrides#18

Draft
Copilot wants to merge 2 commits into
mainfrom
copilot/make-experiments-directory-handling-robust
Draft

Normalize linker path inputs to prevent absolute-path overrides#18
Copilot wants to merge 2 commits into
mainfrom
copilot/make-experiments-directory-handling-robust

Conversation

Copy link
Copy Markdown

Copilot AI commented May 20, 2026

linker.py previously hard-coded experiments and directly joined user-supplied directory values, which allowed values like /experiments or / to behave ambiguously or override the intended base path semantics. This change normalizes user path inputs to relative segments before joining under the proposal directory.

  • Path normalization in linker flow

    • Added a small helper to coerce absolute-looking user input into a relative Path segment.
    • Replaced hard-coded "experiments" usage with normalized doc.get("experiments_directory", "experiments").
    • Applied the same normalization to experiment_alias_directory before join.
  • Behavioral intent

    • Inputs such as "experiments", "/experiments", and "/" are treated as relative-to-proposal path components.
    • Joining no longer risks switching to an unintended absolute path root.
  • Focused regression coverage

    • Added targeted unit tests for normalization and join behavior around relative, absolute, and root-like values.
def make_relative_path(path_value):
    path = Path(path_value)
    return Path(*path.parts[1:]) if path.is_absolute() else path

experiments_dir = make_relative_path(doc.get("experiments_directory", "experiments"))
path_expr = path_proposal / experiments_dir
path_expr_alias = path_expr / make_relative_path(path_expr_alias)

Copilot AI changed the title [WIP] Make experiments directory handling more robust in linker.py Normalize linker path inputs to prevent absolute-path overrides May 20, 2026
Copilot AI requested a review from swu4bnl May 20, 2026 18:09
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.

Make experiments directory handling more robust in linker.py

2 participants