Skip to content

feat(solo/stdlib): fs_list_dir(path) -> Array<String>#56

Merged
hyperpolymath merged 1 commit into
mainfrom
feat/solo-stdlib-fs-list-dir
May 18, 2026
Merged

feat(solo/stdlib): fs_list_dir(path) -> Array<String>#56
hyperpolymath merged 1 commit into
mainfrom
feat/solo-stdlib-fs-list-dir

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Closes the last untracked Solo stdlib gap (the one flagged on #45 throughout the Phase-2 work).

What

fs_list_dir(path) -> Array<String> — entry names (not full paths) in path, sorted for deterministic tooling output; errors cleanly if path isn't a readable directory. Registered with the other fs_* builtins; same shape as fs_exists.

Unblocks audit/scan tooling (the original idaptik-port scaffold-audit use case): combined with fs_exists/fs_read_file it's enough to walk a tree.

Validation

Refs #55

🤖 Generated with Claude Code

Last remaining Solo stdlib gap from the #45 set. Audit/scan tooling
needs to enumerate a directory; only fs_exists/read/write/create_dir_all
existed. fs_list_dir returns entry names (not full paths), sorted for
deterministic tooling output, erroring if path is not a readable dir.
Registered alongside the other fs_* builtins.

Adds examples/fs_list_dir.my and a self-contained integration test
(builds a dir via fs_* then lists it).

Refs #55

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit c40ce82 into main May 18, 2026
14 of 15 checks passed
@hyperpolymath hyperpolymath deleted the feat/solo-stdlib-fs-list-dir branch May 18, 2026 10:05
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 35 issues detected

Severity Count
🔴 Critical 6
🟠 High 11
🟡 Medium 18

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/my-lang/my-lang/_exploratory/me-scaffolding/crates/parser/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "expect() in hot path (80 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/my-lang/my-lang/_exploratory/me-scaffolding/crates/parser/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/my-lang/my-lang/my-ssg/src/generator.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "expect() in hot path (5 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/my-lang/my-lang/crates/my-mir/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (26 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/my-lang/my-lang/crates/my-fmt/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/my-lang/my-lang/crates/my-hir/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (3 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/my-lang/my-lang/crates/my-llvm/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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