Skip to content

docs(issues): audit the 2024 done batch for mis-ticked issues - #131

Open
elycruz wants to merge 1 commit into
mainfrom
125-audit-2024-batch
Open

docs(issues): audit the 2024 done batch for mis-ticked issues#131
elycruz wants to merge 1 commit into
mainfrom
125-audit-2024-batch

Conversation

@elycruz

@elycruz elycruz commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

Work unit: 125-audit-2024-batch.

Re-verifies all 24 issues closed in functional-jslib/fjl between
2024-02-09 and 2024-06-01 against the tree at 61a9632d, plus the
unnumbered tsconfig.prod.esm.json item in #57's "Done" list. Adds one file:
md/issues/AUDIT_2024_BATCH.md.

Every claim was checked against code, never against issue text. Issue bodies
were used only to establish what was claimed.

Nothing was actioned. No source file changed, and no GitHub issue was
reopened, closed, commented on, or relabeled. Every recommended mutation is
listed with its exact gh command in the report's "Recommended actions"
section, for the maintainer to review first.

Result: 14 HOLDS, 6 PARTIAL, 3 NOT DONE, 1 unverifiable.

The pattern #125 suspected is real but narrower than feared. Every build and
tooling closure in the batch holds; the failures cluster entirely in
library-surface work, and share one trait — the issue asked for a removal or
replacement
, and what landed was an addition alongside the thing that was
supposed to go away. Closure date is a weaker predictor than that shape.

Baselines in-tree: pnpm test → 133 suites / 1066 tests passing;
pnpm build → exit 0, no warnings; pnpm lint → 0 errors, 62 warnings.

Closes #125

Verdict table

Issue Title (abbreviated) Closed Verdict Already tracked?
#40 Remove curry_ from tests and test helpers 2024-02-10 HOLDS
#43 Replace Slice type with Iterable type 2024-05-27 NOT DONE Yes — #114 (under #32)
#74 Drop es5 support 2024-05-28 HOLDS
#75 iterate/repeat/replicate/cycle → generators 2024-02-15 PARTIAL Partly — #121
#77 Move tests near the member call sites 2024-02-26 NOT DONE No
#79 Consolidate set-theory methods into one set 2024-02-10 PARTIAL No
#80 Boolean-returning methods should not be flipped 2024-02-09 HOLDS
#81 concat/append should just be native concat 2024-05-27 PARTIAL No
#82 Pre-commit / commit-msg / pre-push hooks 2024-05-28 HOLDS
#83 find*/reduce* utils should be the real impls 2024-03-01 NOT DONE No
#86 Remove curry_ module use in tests 2024-02-10 HOLDS
#87 take/takeWhile etc. should work with generators 2024-02-26 HOLDS
#89 Add numRange and charRange 2024-05-27 PARTIAL No
#90 Remove nullish checks in library methods 2024-02-27 PARTIAL Partly — #122
#91 Rename platform/_platform/ 2024-02-25 HOLDS
#94 Re-add apply 2024-02-27 HOLDS
#96 Deprecate isset and replace its uses 2024-02-27 HOLDS
#97 fjl-labs — correct imports in members 2024-05-29 PARTIAL No
#104 Drop amd/umd/iife output formats 2024-05-28 HOLDS
#105 Add dist/ clean step before builds 2024-05-28 HOLDS
#107 All scripts use *.ts or *.mjs 2024-05-29 HOLDS
#108 Update .npmignore/.eslintignore dot/ci entries 2024-05-29 unverifiable
#109 Conditional sourcemaps 2024-05-29 HOLDS
#115 Remove unknown as generic values 2024-06-01 HOLDS
tsconfig.prod.esm.json consolidation (#57 only) HOLDS

Headline findings

A third mis-tick, previously undetected — #43. Slice was never replaced:
still defined at packages/fjl/src/types/data.ts:25 and referenced by 72 sites
across 24 files, including two sibling packages. #43 is a closed duplicate of
the still-open #114, and it is not referenced from #57, which is why it was
missed.

#75 confirmed, with a detail not previously recorded. iterate, repeat
and cycle are genuine generators; replicate is still eager at
packages/fjl/src/list/replicate.ts:6. The "Tests" tick is false for the same
method — packages/fjl/tests/list/test-replicate.ts:8-10 actively pins the
eager behaviour via toEqual, so the conversion is not a one-line change.

#77 confirmed, with exact counts. 124 test files under
packages/fjl/tests/, 1 co-located (src/number/numRange.test.ts). The
"125 of 126" figure quoted in #125 and #57 should read 124 of 125
packages/fjl/tests/helpers.ts is a fixture module, not a test. Three
conventions live at once: test-*.ts ×118, index_test.ts ×6, *.test.ts ×1,
and jest.config.mjs:3-6 matches all three, which is why nothing ever failed.
Note the asymmetry: the test-* glob matches only under tests/, so the
dominant convention cannot be co-located without also being renamed — likely why
the first attempt stalled after one file. A fourth convention exists in
packages/fjl-labs/data/*_test.ts, matched by nothing: three test files in
the repo have never been executed.

#83 — the aliasing went the wrong way. find = findWhere
(src/list/find.ts:10), foldr = reduceRight (src/list/foldr.ts:10), etc.,
while list/utils/ remains the real implementation and is publicly re-exported
via src/list/index.ts:104. fjl ships both names for every pair — the exact
duplication the issue was filed to remove.

#79 — no consolidation occurred. The eight obj* symbols were never made
private; they are exported from the package root and tested as public API at
tests/object/index_test.ts:578-648. The issue's escape hatch was explicitly a
private internal fork.

#89charRange was never written. Zero hits across packages/**/*.ts.
The "Impl" box was ticked for a method that does not exist.

#90 is unfalsifiable as written. Its acceptance criteria are instanceOf
plus a literal .... instanceOf genuinely holds; the unenumerated sweep did
not happen (10 sites listed in the report). Recommend folding into #122.

Incidental defect: a test file ships in the published build.
packages/fjl/tsconfig.json:8 excludes src/**/*_test.ts but not
src/**/*.test.ts, so pnpm build emits
packages/fjl/dist/esm/number/numRange.test.d.ts. Only the declaration leaks
today; it becomes a real emission as soon as a second .test.ts under src/ is
imported.

Recommended actions

Full commands are in the report. None executed.

  1. Reopen fjl v3.0: Move tests near the member call sites #77 — test co-location; no open issue covers it.
  2. Reopen next: find*, and reduce* set of util methods should just be their actual implementation counterparts #83find*/reduce* consolidation; not tracked.
  3. Reopen fjl v2.x - Add numRange, and charRange implementations #89charRange missing.
  4. Reopen next: Consolidate set theory methods into one set #79 — or close as won't-do with the two-set design recorded.
  5. Reopen next: concat and append should just be native concat #81list/concat still takes an array-of-arrays.
  6. Comment on next: Replace Slice type with Iterable type  #43 (do not reopen) — superseded by Remove the use of generics defined in 'data/list'. #114; record the closure was premature.
  7. Comment on v2.0 - feature: Update iterator family of methods to just be generators, where it makes sense #121 — note that test-replicate.ts pins the eager behaviour.
  8. Comment on v2.0 - Implementations review #122 — absorb next: Remove 'nullish' checks in utility/library methods (unless required) #90's remainder, plus the isSuffixOf argument-order inconsistency.
  9. File the shipped-test-file build defect.
  10. File the fjl-labs packaging gap (no package.json, not in jest projects, 3 tests never run).
  11. Comment on next: fjl-labs - Correct imports in members #97 — record the remainder against the new fjl-labs ticket.
  12. Apply the fjl v2.0 #57 correction — exact paste-ready block in the report.
  13. Close Audit the 2024 "done" batch for mis-ticked issues #125.

Proposed #57 correction

Of #57's nine numbered "Done" references, seven hold and two do not: #79 and
#90 are both PARTIAL and should come out. The fjl-labs entry on the
sub-packages line also overstates.

The report gives the exact paste-ready replacement block, and distinguishes the
minimal correction (drop #79, #90, fjl-labs; add a "Ticked here
prematurely" subsection) from the optional completeness pass that also folds in
the batch's other verified-clean closures.

Verification

  • pnpm test → 133 suites, 1066 tests, all passing
  • pnpm build → exit 0, no warnings
  • Pre-push hook ran both; no hooks were bypassed
  • Docs-only change; lint-staged matched no staged files

🤖 Generated with Claude Code

…-ticked issues

Re-verifies all 24 issues closed in functional-jslib/fjl between 2024-02-09
and 2024-06-01 against the tree at 61a9632, plus the unnumbered
tsconfig.prod.esm.json item in #57's "Done" list.

Result: 14 HOLDS, 6 PARTIAL, 3 NOT DONE, 1 unverifiable.

Confirms the two known-bad closures with current evidence (#75 replicate is
still eager at src/list/replicate.ts:6, and its test pins that behaviour;
#77 test co-location never happened - 124 of 125 fjl test files remain under
packages/fjl/tests/ with three naming conventions live at once). Adds a third
undetected mis-tick, #43, whose Slice removal never happened and which is a
closed duplicate of the open #114.

The failures cluster in library-surface work where a removal was asked for and
an addition-alongside was delivered; every build and tooling closure in the
batch holds.

Also records an incidental defect: packages/fjl/src/number/numRange.test.ts is
compiled into the published ESM build because the package tsconfig excludes
*_test.ts but not *.test.ts.

Report only - no source changed and no GitHub issue mutated. Recommended
actions are listed with exact gh commands for the maintainer to review.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

Audit the 2024 "done" batch for mis-ticked issues

1 participant