Skip to content

feat(stdlib): ESC-03 — Dict/Map keyed container (stdlib/dict.affine)#274

Merged
hyperpolymath merged 1 commit into
mainfrom
esc03-stdlib-dict
May 19, 2026
Merged

feat(stdlib): ESC-03 — Dict/Map keyed container (stdlib/dict.affine)#274
hyperpolymath merged 1 commit into
mainfrom
esc03-stdlib-dict

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Closes the #229 Dict.t target / STDLIB-03 #162 / ESC-03 #247.

stdlib/dict.affine — keyed associative container over [(String, V)]
(the same representation json::JObject uses, so a decoded JSON object
feeds dict::get directly): empty/from_pairs/get/contains/
size/insert/set/remove/keys/values. module dict;, prelude
only, no host dep — target-agnostic. Dict.tdict ops.

Recovered from the stranded feat/stdlib-dict-echidna64 draft (whose
branch diff is destructive — only the file is sound). Validated on
current main: check dict.affine → Type checking passed; #136 AOT gate
auto-discovered it (AOT dict.affine [OK]); gate 278→279, zero
regression
.

Unblocks the additive, source-compatible Http.affine headers→Dict
upgrade (stdlib/Http.affine:16-18). Refs #162 #247 #229.

🤖 Generated with Claude Code

stdlib/dict.affine: keyed associative container over the assoc-list
shape [(String, V)] — the same representation json::JObject uses, so a
decoded JSON object feeds dict::get directly. Surface: empty, from_pairs,
get, contains, size, insert, set, remove, keys, values. `module dict;`,
prelude only, no host dependency — target-agnostic. The #229 Dict.t
target ports to dict ops over [(String, V)].

Recovered from the stranded feat/stdlib-dict-echidna64 draft (that
branch's full diff is destructive — only the dict.affine FILE is sound).
Extracted, validated on current main: main check dict.affine -> Type
checking passed; the #136 stdlib AOT gate auto-discovered it (AOT
dict.affine OK); full gate 278 -> 279, zero regression.

Unblocks the additive, source-compatible Http.affine headers->Dict
upgrade noted in stdlib/Http.affine:16-18. Refs #162 #247 #229.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 47 issues detected

Severity Count
🔴 Critical 12
🟠 High 21
🟡 Medium 14

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
    "type": "banned",
    "file": "AI.a2ml",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Superseded by 0-AI-MANIFEST.a2ml",
    "type": "banned",
    "file": "AI.djot",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "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": "Action actions/checkout@v4 needs attention",
    "type": "unpinned_action",
    "file": "publish-jsr.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action denoland/setup-deno@v2 needs attention",
    "type": "unpinned_action",
    "file": "publish-jsr.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath merged commit a93efe8 into main May 19, 2026
15 of 16 checks passed
@hyperpolymath hyperpolymath deleted the esc03-stdlib-dict branch May 19, 2026 19:04
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