Skip to content

fix(settings): preserve atomic path semantics - #30

Merged
Kibnet merged 1 commit into
masterfrom
fix/atomic-path-navigation
Sep 21, 2026
Merged

Kibnet merged 1 commit into
masterfrom
fix/atomic-path-navigation

Conversation

@Kibnet

@Kibnet Kibnet commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Correct two atomic-path edge cases identified immediately after the 8.1.0 merge review.
  • Publish patch version 8.1.1 to supersede 8.1.0.

Changes

  • Treat numeric path segments as property names when the current JSON container is an object.
  • Interpret numeric path segments as indexes only when the current container is an array.
  • Reject sparse array indexes instead of silently appending at a different index.
  • Reject traversal through existing scalar values without changing disk, backup or memory.
  • Add regression tests and update README, changelog and package release notes.

Validation

  • New regression tests before fix: 0 passed, 4 failed.
  • New regression tests after fix: 5 passed, 0 failed.
  • Full Windows suite: 42 passed, 1 expected non-Windows contract skip.
  • Release build: 0 errors (2 pre-existing nullable warnings in ConfigTests).
  • Packed WritableJsonConfiguration.8.1.1.nupkg and restored it into a clean consumer.
  • Package consumer exercised numeric object keys, sparse-index rejection, atomic replacement, backup and read-back successfully.
  • Local candidate SHA-256: 41E7570AB3E4F2DFCE36ADC43A242DF8CE63A50B31650C1E809060386768B4C6; CI will rebuild the delivery artifact from the merge commit.
  • UI evidence: not applicable; this repository is a configuration library with no UI.

Risks / Rollback

  • The behavior change is limited to opt-in atomic mode; legacy/default mode is unchanged.
  • Sparse array writes now fail explicitly instead of writing the wrong element.
  • NuGet packages are immutable. After publication, corrections require another patch version.

Links

Treat numeric segments as object keys in object containers, reject sparse array writes and scalar traversal, and publish patch version 8.1.1.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-21T12:06:54.863623Z 1fcc4a8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Kibnet
Kibnet merged commit 3d20cf8 into master Sep 21, 2026
1 check passed
@Kibnet
Kibnet deleted the fix/atomic-path-navigation branch September 21, 2026 12:07
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