From fb92ca7c0eb4bf9f76a55355e0a4cc07dd0a8cb4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 11 May 2026 05:10:19 +0000 Subject: [PATCH 1/5] Initial plan From 18dcf20f1e1b12c003ab6d4ee7ddfae30879df63 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 11 May 2026 05:12:09 +0000 Subject: [PATCH 2/5] Add GitHub Copilot instructions with project overview and release process Agent-Logs-Url: https://github.com/nevware21/ts-async/sessions/e92729ba-4324-4b6a-9a7b-3ba7d1b3d89d Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- .github/copilot-instructions.md | 152 ++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..92e182c --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,152 @@ +# Copilot Instructions for `@nevware21/ts-async` + +## Project Overview + +`@nevware21/ts-async` is a TypeScript library that provides support for asynchronous development with: +- A Promise-based task scheduler (`createTaskScheduler`) +- Multiple Promise implementations: synchronous (`createSyncPromise`), idle (`createIdlePromise`), asynchronous (`createAsyncPromise`), and native runtime wrappers (`createNativePromise`) +- Await helpers (`doAwait`, `doFinally`, `doAwaitResponse`) +- Alias functions for switching between Promise implementations without changing code + +The primary goal is to support creation of code that can be better minified, resulting in smaller runtime payloads for improved page load performance. + +## Repository Structure + +``` +/ - Root directory +├── .github/ - GitHub configuration (workflows, issue templates, copilot instructions) +├── common/ - Rush common scripts +├── lib/ - Main source code and tests +│ ├── src/ - TypeScript source files +│ ├── test/ - Test files +│ └── package.json - Library package manifest (published to npm) +├── package.json - Root package manifest (devDependencies, scripts) +├── README.md - Project documentation (includes recommended version) +├── CHANGELIST.md - Release history and changelog +├── rush.json - Rush monorepo configuration +└── publish-groups.json - npm publish configuration +``` + +Only `lib/package.json` is published to npm. The root `package.json` is for the monorepo tooling. + +## Build, Lint, and Test + +```bash +npm run lint # Run ESLint via grunt +npm run build # Build via Rush +npm test # Run tests via Rush +``` + +Full rebuild (clean build + tests + size checks): +```bash +npm run rebuild +``` + +## Release Process + +All releases **must** follow this process precisely: + +### 1. Commit Message Format + +Release commits must use the format: +``` +[Release] Increase version to x.y.z +``` + +### 2. Files to Update + +When creating a release for version `x.y.z`: + +#### `package.json` (root) +Update the `"version"` field: +```json +"version": "x.y.z" +``` + +#### `lib/package.json` +Update the `"version"` field to match: +```json +"version": "x.y.z" +``` + +#### `README.md` +Update the recommended version range in the Quickstart section: +```json +"@nevware21/ts-async": ">= x.y.z < 2.x" +``` + +#### `CHANGELIST.md` +- Convert the `# Unreleased` section into a versioned release section +- Preserve all unreleased changes as-is — do not remove or reduce them +- Add a full changelog comparison link at the end of the new version section +- The format for a new release section is: + +```markdown +# Unreleased + +## Changelog + +# v{new-version} {Month} {Day}th, {Year} + +## Changelog + +- {unreleased changes preserved exactly as written} + +For full details see [v{prev-version}...v{new-version}](https://github.com/nevware21/ts-async/compare/v{prev-version}...v{new-version}) + +# v{prev-version} ... +``` + +**Important CHANGELIST.md rules:** +- Only include significant changes (features, bugs, important dependency updates) +- If there are listed unreleased items, include them exactly as-is — do not summarize or reduce them +- Always add a `For full details see [v{prev}...v{new}](...)` comparison link using the GitHub compare URL +- Leave the `# Unreleased` section empty (with `## Changelog`) above the new version section for future changes + +### Example CHANGELIST.md After a Release + +Before (unreleased changes present): +```markdown +# Unreleased + +## Changelog + +- [#123](https://github.com/nevware21/ts-async/issues/123) [Feature] Some new feature +- [#124](https://github.com/nevware21/ts-async/issues/124) [Bug] Fixed something + +# v0.5.5 Jan 5th, 2026 +... +``` + +After releasing as `v0.5.6`: +```markdown +# Unreleased + +## Changelog + +# v0.5.6 May 11th, 2026 + +## Changelog + +- [#123](https://github.com/nevware21/ts-async/issues/123) [Feature] Some new feature +- [#124](https://github.com/nevware21/ts-async/issues/124) [Bug] Fixed something + +For full details see [v0.5.5...v0.5.6](https://github.com/nevware21/ts-async/compare/v0.5.5...v0.5.6) + +# v0.5.5 Jan 5th, 2026 +... +``` + +## Coding Conventions + +- TypeScript with ES5 compatibility target for v0.x and v1.x +- Functions designed for minification (short, tree-shakeable exports) +- Tests run in Node.js (18, 20, 22, 24), browser (Chromium headless), and Web Worker (Chromium headless) +- Use `@nevware21/ts-utils` as the primary utility dependency + +## Dependencies + +- **Runtime dependency**: `@nevware21/ts-utils` (>= 0.12.6 < 2.x) +- **Package manager**: Rush (for monorepo management) + npm +- **Build**: TypeScript + Rollup + Grunt +- **Testing**: Mocha + Karma + nyc coverage From 2bf141ecc7b7185d6003099124ea0a2637f7d629 Mon Sep 17 00:00:00 2001 From: nev21 <82737406+nev21@users.noreply.github.com> Date: Sun, 10 May 2026 22:54:41 -0700 Subject: [PATCH 3/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 92e182c..21cc307 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -86,7 +86,7 @@ Update the recommended version range in the Quickstart section: ## Changelog -# v{new-version} {Month} {Day}th, {Year} +# v{new-version} {Month} {Day}, {Year} ## Changelog From 93f14c8136e8a2dbcb0874de4918dd16f5e7c588 Mon Sep 17 00:00:00 2001 From: nev21 <82737406+nev21@users.noreply.github.com> Date: Sun, 10 May 2026 22:54:58 -0700 Subject: [PATCH 4/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 21cc307..73a91c2 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -76,7 +76,8 @@ Update the recommended version range in the Quickstart section: ``` #### `CHANGELIST.md` -- Convert the `# Unreleased` section into a versioned release section +- Leave the `# Unreleased` section in place and keep it empty except for the `## Changelog` heading +- Move all current unreleased entries under a new versioned release section immediately below `# Unreleased` - Preserve all unreleased changes as-is — do not remove or reduce them - Add a full changelog comparison link at the end of the new version section - The format for a new release section is: From 25ef0cbf229db1f514fadd28fdc3e29c80df8928 Mon Sep 17 00:00:00 2001 From: nev21 <82737406+nev21@users.noreply.github.com> Date: Sun, 10 May 2026 22:55:12 -0700 Subject: [PATCH 5/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 73a91c2..6473f15 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -101,7 +101,7 @@ For full details see [v{prev-version}...v{new-version}](https://github.com/nevwa **Important CHANGELIST.md rules:** - Only include significant changes (features, bugs, important dependency updates) - If there are listed unreleased items, include them exactly as-is — do not summarize or reduce them -- Always add a `For full details see [v{prev}...v{new}](...)` comparison link using the GitHub compare URL +- Always add a `For full details see [v{prev-version}...v{new-version}](...)` comparison link using the GitHub compare URL - Leave the `# Unreleased` section empty (with `## Changelog`) above the new version section for future changes ### Example CHANGELIST.md After a Release