chore(pm): PM state v187 — RFC-0113 Phase 2 TypeScript shipped (PR #776) [SUPERSEDED by #778]#777
chore(pm): PM state v187 — RFC-0113 Phase 2 TypeScript shipped (PR #776) [SUPERSEDED by #778]#777aimasteracc wants to merge 2 commits into
Conversation
Add classify_typescript, classify_typescript_import_gated, and classify_typescript_qualified to mycelium-rcig-core::classify. Tables: global builtins (parseInt, Error, …), Node.js built-in modules (fs, path, os, crypto, …), Array/String/Promise stdlib methods, Node.js module-level functions (readFileSync, dirname, randomUUID, …), and test-framework matchers (jest/vitest/mocha/chai/jasmine). Private ts_imports_contains helper strips the node: prefix transparently. Import-gated: a bare readFileSync() only classifies as stdlib when fs (or node:fs) is in the caller's import set. Project-ownership shadow (existing tiers) must be applied before calling these functions. 21 TDD tests in mod ts_tests. All 49 classify tests pass. RFC-0113 Phase 2 acceptance criteria marked done. Signed-off-by: Claude Code <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com>
RFC-0113 Phase 2 TypeScript/JS stdlib classification shipped: PR #776 opened (feature/RFC-0113-phase2-typescript → develop). 21 TDD tests, 49/49 passing. Import-gated, node: prefix tolerant. RFC-0113 Phase 2 AC marked done. P0 escalation ×51 → ×52 for PR #568 (finalize awaiting founder). Signed-off-by: Claude Code <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cb1e0f1a9e
ℹ️ 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".
| **Phase 2:** TypeScript/JS — `classify_typescript`, `classify_typescript_import_gated`, | ||
| `classify_typescript_qualified` + 21 TDD tests. ✅ Shipped in `classify.rs` alongside the |
There was a problem hiding this comment.
Route TypeScript callees through the new classifier
This marks the TypeScript/JS phase as shipped, but the production callee payload still imports only classify_python_import_gated and applies it to every bare stub (crates/mycelium-core/src/queries.rs lines 30 and 60). As a result get-callees/MCP output for .ts/.js files will continue using the Python tables rather than these new TypeScript tables, so calls such as import { readFileSync } from 'fs'; readFileSync() remain unknown instead of stdlib. Please add language dispatch in the payload path, or avoid marking this phase shipped.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in PR #776 follow-up commit 9de6484 (PM dispatch v188). callees_payload now dispatches to classify_typescript_import_gated for .ts/.tsx/.js/.jsx/.mjs/.cjs callers — the Phase 2 classifier is wired end-to-end through CLI and MCP. RFC-0113 Phase 2 acceptance criteria are now fully satisfied. 4 new integration-level TDD tests in queries::tests confirm the dispatch. The PM state v188 (this PR's successor) will correct the AC marking to reflect the complete fix.
Generated by Claude Code
| "parseFloat", | ||
| "isNaN", | ||
| "isFinite", | ||
| "isInteger", |
There was a problem hiding this comment.
Remove non-global isInteger from builtin classification
isInteger is not a JavaScript/TypeScript global callable; the standard API is Number.isInteger. Since TS_GLOBAL_BUILTINS fires unconditionally before import-gated logic, any unresolved bare isInteger() call, such as one imported from lodash or another external module that the project resolver does not bind, will be reported as builtin instead of unknown/external. Keep this out of the global table and classify the qualified Number.isInteger case via the namespace path.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in PR #776 follow-up commit 9de6484. isInteger removed from TS_GLOBAL_BUILTINS in classify.rs. Bare isInteger() now classifies as unknown; Number.isInteger is covered by the qualified-receiver path (classify_typescript_qualified). Test callees_payload_is_integer_is_unknown_for_ts_caller confirms.
Generated by Claude Code
Codex P1 (PR #777) + P2 (PR #776) fixes: 1. Wire TypeScript classifier in callees_payload (queries.rs): callers from .ts/.tsx/.js/.jsx/.mjs/.cjs files now dispatch to classify_typescript_import_gated instead of the Python classifier. Without this, TS callees like parseInt/readFileSync/setTimeout appeared as "unknown" regardless of import context. 2. Remove isInteger from TS_GLOBAL_BUILTINS (classify.rs): Number.isInteger is the qualified form; bare isInteger() is not a JS/TS global. The entry caused false-positive builtin classification for any unresolved call named isInteger (e.g. a lodash helper the resolver couldn't bind). 4 new TDD tests in queries::tests confirm the language dispatch + isInteger fix: ts_builtin_classified_for_ts_caller, ts_stdlib_with_fs_import_is_stdlib, is_integer_is_unknown_for_ts_caller, js_file_also_uses_ts_classifier. Signed-off-by: Claude <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com>
* chore(pm): PM dispatch v188 — RFC-0113 Phase 2 TS Codex fixes (PR #776 commit 9de6484) Codex P1 fix: callees_payload now routes .ts/.tsx/.js/.jsx/.mjs/.cjs callers to classify_typescript_import_gated (was Python classifier for all languages). Codex P2 fix: isInteger removed from TS_GLOBAL_BUILTINS (bare isInteger() is not a JS global; Number.isInteger is correct). 4 TDD tests added RED-first. All 5 Codex threads on PRs #776/#777 addressed; PR #777 closed superseded. P0 escalation x52->x53 for PR #568 (release/v0.3.0 finalize). Signed-off-by: aimasteracc <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com> * chore(pm): PM state v188 addendum — PR #776 merged 6f6f4a9 Update live priorities and dispatch table to reflect PR #776 squash-merge (RFC-0113 Phase 2 TypeScript, 20/20 CI ✅, all Codex threads addressed). Signed-off-by: aimasteracc <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com> --------- Signed-off-by: aimasteracc <yuaishengtrader@gmail.com> Signed-off-by: Claude <noreply@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com>
Summary
finalize).Corrects v186 assessment error
v186 claimed "all P1 blocked on #568 finalize" — this was incorrect. RFC-0113 Phase 2 TypeScript classification was unblocked (additive code in
classify.rs, zero dependency on version numbers or PR #568). This run executed that work and corrected the PM state.Founder escalations (×52 consecutive runs)
finalizeworkflow_dispatch — 50/50 CI ✅, all registries published ✅. v0.3.0 git ceremony (Steps 1–4) is the only remaining step.https://claude.ai/code/session_0179m2GxU2AUEpebiddWnqHS
Generated by Claude Code