Skip to content

fix: resolve 4 high-impact issues — closure capture, unwrap safety, L…#2

Merged
humancto merged 2 commits into
mainfrom
claude/identify-top-priorities-DaBTI
Mar 5, 2026
Merged

fix: resolve 4 high-impact issues — closure capture, unwrap safety, L…#2
humancto merged 2 commits into
mainfrom
claude/identify-top-priorities-DaBTI

Conversation

@humancto
Copy link
Copy Markdown
Owner

@humancto humancto commented Mar 5, 2026

…SP, formatter

  • Fix BUG-005: mutable closure capture now works correctly. Lambda closures use Arc<Mutex> so mutations persist across calls (e.g., counters, accumulators). Previously all calls saw the original snapshot.

  • Harden time.rs: replace 17 unwrap() calls on chrono's and_hms_opt/ from_ymd_opt with proper error propagation via ok_or_else(). Prevents panics on edge-case date/time inputs in production paths.

  • Fix LSP hover: the documentation map was built but never used — the function always returned a generic string. Now reads the document, extracts the word under cursor, and returns matching builtin/module docs. Added 80+ hover entries covering all builtins, modules, and GenZ kit.

  • Fix LSP completions: added missing modules (npc, jwt, mysql, exec) and 50+ missing functions across fs, time, math, io, term, db modules.

  • Upgrade formatter: fix brace-counting-in-strings bug that could corrupt indentation. Now uses string/comment-aware brace counting. Added --check flag for CI (exit code 1 if unformatted). Added 7 new tests.

All tests pass: 584 Rust tests, 600 Forge integration tests.

https://claude.ai/code/session_01QjYU96i7h5vUizDu6L5ZAj

Summary

What does this PR do?

Changes

Testing

  • cargo test passes
  • forge test passes
  • Affected examples still work
  • New tests added (if applicable)

Related Issues

Closes #

…SP, formatter

- Fix BUG-005: mutable closure capture now works correctly. Lambda closures
  use Arc<Mutex<Environment>> so mutations persist across calls (e.g.,
  counters, accumulators). Previously all calls saw the original snapshot.

- Harden time.rs: replace 17 unwrap() calls on chrono's and_hms_opt/
  from_ymd_opt with proper error propagation via ok_or_else(). Prevents
  panics on edge-case date/time inputs in production paths.

- Fix LSP hover: the documentation map was built but never used — the
  function always returned a generic string. Now reads the document,
  extracts the word under cursor, and returns matching builtin/module docs.
  Added 80+ hover entries covering all builtins, modules, and GenZ kit.

- Fix LSP completions: added missing modules (npc, jwt, mysql, exec) and
  50+ missing functions across fs, time, math, io, term, db modules.

- Upgrade formatter: fix brace-counting-in-strings bug that could corrupt
  indentation. Now uses string/comment-aware brace counting. Added --check
  flag for CI (exit code 1 if unformatted). Added 7 new tests.

All tests pass: 584 Rust tests, 600 Forge integration tests.

https://claude.ai/code/session_01QjYU96i7h5vUizDu6L5ZAj
Copy link
Copy Markdown

@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: 595d862993

ℹ️ 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".

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

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/lsp/mod.rs Outdated
Comment thread src/formatter.rs
…et indentation

P1: LSP hover now reads from the in-memory document store (populated by
didOpen/didChange) instead of always reading from disk. This ensures hover
works correctly on unsaved editor buffers. Falls back to disk for files
not yet opened in the editor.

P2: Formatter count_braces now includes [ and ] alongside { and }, fixing
a bug where lines starting with ] produced negative trailing_closes
(closes=0 minus leading_closes=1 = -1), causing indent to increase instead
of decrease.

https://claude.ai/code/session_01QjYU96i7h5vUizDu6L5ZAj
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.

2 participants