Skip to content

Release v3.0.0#25

Merged
ar27111994 merged 89 commits intomainfrom
release/v3.0.0
Apr 15, 2026
Merged

Release v3.0.0#25
ar27111994 merged 89 commits intomainfrom
release/v3.0.0

Conversation

@ar27111994
Copy link
Copy Markdown
Owner

@ar27111994 ar27111994 commented Apr 2, 2026

Description

This PR brings the release/v3.0.0 branch into main and packages the current branch milestone for release.

Summary of included work:

  • adds a comprehensive v3.0.0 changelog entry
  • adds branch-level RELEASE_NOTES.md based on the actual diff against main
  • refreshes QUALITY_AUDIT_REPORT.md to match the current architecture and runtime behavior
  • updates PUBLICATION_GUIDE.md for the current Actor listing and capabilities
  • aligns release metadata to 3.0.0 in package.json, package-lock.json, and .actor/web_server_schema.json
  • removes obsolete CHANGELOG_UPDATE.md

No related issue is being closed by this PR.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

If you selected "Breaking change", please describe the impact and migration path below:

This lands the v3.0.0 milestone and updates the published release contract and metadata.
Consumers should review the release notes and published API/docs before promotion to production.

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have reviewed my changes for security implications

- Add src/utils/signature.js with Stripe, Shopify, GitHub, Slack, and custom provider support
- Add src/utils/alerting.js with Slack and Discord notification support
- Update input_schema.json with signatureVerification and alerts configuration
- Add comprehensive tests: signature.test.js (18 tests), alerting.test.js (15 tests)
- All 207 tests pass
- Add signature verification after event creation in middleware
- Add alerting trigger in background tasks
- Update WebhookEvent typedef with signatureValid, signatureProvider, signatureError fields
- All 207 tests pass
- Add fs.watch for instant INPUT.json hot-reload in local development
- Implement debouncing (100ms) to handle rapid file changes
- Create shared handleHotReload() function for both fs.watch and polling
- Add fileWatcherAbortController cleanup in shutdown
- Simplify polling interval to use shared handler
- All 207 tests pass
- Add request ID middleware (generates unique IDs, respects X-Request-ID)
- Add X-Request-ID to all responses for tracing
- Add Content-Security-Policy headers to dashboard
- Add X-Content-Type-Options, X-Frame-Options, Referrer-Policy headers
- Include requestId in WebhookEvent for log correlation
- All 207 tests pass
- Add tests for request ID header generation and passthrough
- Add tests for CSP headers on dashboard
- Add tests for X-Frame-Options, X-Content-Type-Options, Referrer-Policy
- All 215 tests pass (28 test suites)
- Add startTime, endTime query params for timestamp range filtering
- Add signatureValid query param to filter by signature verification status
- Add requestId query param for log correlation/tracing
- All 215 tests pass
- Create src/routes/ directory with 6 modules:
  - utils.js (escapeHtml, asyncHandler)
  - logs.js (createLogsHandler)
  - info.js (createInfoHandler)
  - stream.js (createLogStreamHandler)
  - replay.js (createReplayHandler)
  - index.js (exports)
- Replace inline route handlers with modular handlers
- main.js reduced from 1023 to 693 lines (-330 lines, 32%)
- All 215 tests pass
- Create src/middleware/ directory with 4 modules:
  - auth.js (createAuthMiddleware)
  - security.js (createRequestIdMiddleware, createCspMiddleware)
  - error.js (createErrorHandler)
  - index.js (exports)
- Add createBroadcaster to routes/utils.js
- Add createDashboardHandler, preloadTemplate to routes/dashboard.js
- Replace inline implementations with modular factory calls
- main.js reduced from 1023 to 544 lines (-47%)
- All 215 tests pass
…anagement

- Refactor  to  class
- Extract  logic from  to
- Create  class () to centralize runtime configuration and updates
- Extract  to
- Update  to orchestrate new classes via dependency injection
- Add  typedef for stricter type safety
- **Architecture**: Modularized monolithic main.js into dedicated routes (logs, dashboard, replay) and middleware (auth, security, parsing).
- **Security**: Implemented SSRF protection, Data Masking, Rate Limiting, and strict Security Headers.
- **Testing**: Achieved 100% test coverage with 350+ tests covering unit, integration, stress, and edge cases.
- **Features**: Added Hot-Reloading for configuration, Smart Replay with backoff, and Retention policy automation.
- **Type Safety**: Enforced strict JSDoc typing across the entire codebase.
- Refactored webhook_manager, integration_lifecycle, and ssrf tests to use setupCommonMocks
- Removed residual console logs in tests
- Enforced strict mock usage standards
- Added database indices for requestId, remoteIp, size, requestUrl
- Added requestUrl filtering and multi-sort support
- Refactored LogRepository and SyncService to classes
- Optimized Hot Reload with debounce and disable flag
- Standardized pagination limits
- Fixed API test cleanup and RateLimiter restoration
…iter` middleware JSDoc typing with a `RequestHandler` typedef.
BREAKING CHANGE: All console.log/warn/error calls replaced with structured Pino logger

## New Features
- Structured JSON logging with Pino for production observability
- Component-specific child loggers with context ({ component: "Name" })
- Consistent error serialization via serializeError() utility
- Sensitive data redaction (passwords, tokens, API keys)
- Configurable log levels via LOG_LEVEL environment variable
- Human-readable pretty-printing via PRETTY_LOGS=true for development

## New Files
- src/utils/logger.js: Logger factory and error serialization
- src/utils/webhook_rate_limiter.js: High-throughput rate limiting (10K/min)
- src/utils/storage_helper.js: KVS offload markers for large payloads
- src/routes/health.js, src/routes/system.js: Separated health endpoints
- docs/api-reference.md: Comprehensive API documentation
- docs/roadmap/: Future feature planning documents

## Refactored Files (23 total)
- main.js, webhook_manager.js, logger_middleware.js
- services/ForwardingService.js, services/SyncService.js
- middleware/error.js
- routes/dashboard.js, routes/replay.js, routes/stream.js, routes/utils.js
- utils/rate_limiter.js, utils/hot_reload_manager.js, utils/app_state.js
- utils/bootstrap.js, utils/alerting.js, utils/auth.js, utils/ssrf.js
- utils/config.js, utils/webhook_rate_limiter.js
- db/duckdb.js

## Test Updates
- Enhanced mock-setup.js with logger mock support
- New webhook_rate_limiter.test.js
- New cleanup.test.js, large_payload.test.js, log_payload.test.js
…nd Webhook Analytics roadmaps, and introduce a new roadmap for programmable responses and mock service virtualization.
- resolve mock setup circular dependencies
- replace unstable fake timers in forwarding tests
- relax log optimization test constraints
- update CHANGELOG.md
- Fix: Serialized DuckDB teardown in  to prevent tuple conflicts
- Fix: Resolved mock pollution in  and  tests
- Fix: Optimized  dataset size to prevent timeouts
- Feat: Added unit tests for , ,
- Chore: Updated  with 3.0.2 release notes
- Fix SyncService recursion logic in tests
- Resolve ReplayRoute mock configuration errors
- Fix MiddlewareSuite read-only property assignment
- Centralize LogRepository and Event mocks
- Achieve 100% test pass rate (61 suites)
- Improved: Eliminated setTimeout usage in favor of robust utilities
- Improved: Consolidated JSDoc types in shared-mocks.js
- Improved: Simplified assertions for better readability (DRY)
- Fixed: Resolved flakiness in SSE integration tests
- Fixed: Removed redundancy and code cruft (zero TODOs)
- Verified: 100% pass rate across 61 test suites
Copilot AI review requested due to automatic review settings April 12, 2026 19:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 123 out of 286 changed files in this pull request and generated 5 comments.

Comments suppressed due to low confidence (1)

demo_cli.js:1

  • The setTimeout(async () => { ... }) callbacks return promises that are not awaited/handled; if either axios.post rejects, it can trigger unhandled promise rejections and crash the demo process. Wrap the body in try/catch (or append .catch(...)) inside each timeout callback to handle failures deterministically.
import "./src/utils/load_env.js";

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .actor/actor.json
Comment thread src/middleware/security.js Outdated
Comment thread docs/roadmap/programmable-responses.md Outdated
Comment thread public/unauthorized.css
Comment thread package.json
…Forwarded-Proto header

fix(css): enhance focus-visible styles for unauthorized links
refactor(docs): streamline mock rules evaluation steps in roadmap
chore: update .lycheeignore patterns for improved matching
Copilot AI review requested due to automatic review settings April 12, 2026 20:22
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 12, 2026

Important

Review skipped

Too many files!

This PR contains 278 files, which is 128 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0fb48f06-6f03-4df6-95b2-7433d4a49165

📥 Commits

Reviewing files that changed from the base of the PR and between 4d22d95 and 3ff6dd6.

⛔ Files ignored due to path filters (9)
  • assets/dashboard-live.png is excluded by !**/*.png
  • assets/dataset_view.png is excluded by !**/*.png
  • assets/demo_cli.PNG is excluded by !**/*.png
  • assets/demo_cli_output.PNG is excluded by !**/*.png
  • assets/demo_cli_sse_output.PNG is excluded by !**/*.png
  • assets/icon-160.png is excluded by !**/*.png
  • assets/sse_stream.png is excluded by !**/*.png
  • docs/marketing/A Comprehensive Marketing Campaign Blueprint for the Webhook Debugger & Logger Apify Actor.pdf is excluded by !**/*.pdf
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (278)
  • .actor/actor.json
  • .actor/dataset_schema.json
  • .actor/input_schema.json
  • .actor/output_schema.json
  • .actor/web_server_schema.json
  • .agent/rules/GETTING-STARTED.md
  • .claude/rules/AGENTS.md
  • .claude/rules/GETTING-STARTED.md
  • .claude/rules/ai-assistant-guidelines.md
  • .claude/rules/database.md
  • .claude/rules/dockerfile-best-practices.md
  • .claude/rules/express-api-development.md
  • .claude/rules/general-best-practices.md
  • .claude/rules/gitflow.md
  • .claude/rules/js.AGENTS.md
  • .claude/rules/js.INPUT_OUTPUT_SCHEMAS.md
  • .claude/rules/js.STORAGE_SCHEMAS.md
  • .claude/rules/keep-a-changelog.md
  • .claude/rules/node-express.md
  • .claude/rules/observability-practices.md
  • .claude/rules/optimization-guidelines.md
  • .claude/rules/project-readme.md
  • .claude/rules/python.AGENTS.md
  • .claude/rules/python.INPUT_OUTPUT_SCHEMAS.md
  • .claude/rules/python.STORAGE_SCHEMAS.md
  • .claude/rules/robust-error-handling.md
  • .claude/rules/secure-coding-practices.md
  • .claude/rules/testing.md
  • .claude/rules/ts.AGENTS.md
  • .claude/rules/ts.INPUT_OUTPUT_SCHEMAS.md
  • .claude/rules/ts.STORAGE_SCHEMAS.md
  • .claude/rules/typescript and type-safe javascript.md
  • .claude/rules/typescript-node-development.md
  • .claude/rules/typescript-type-safety.md
  • .dockerignore
  • .env.example
  • .github/copilot-instructions.md
  • .github/coverage/new-scopes.thresholds.json
  • .github/coverage/source-matrix.thresholds.json
  • .github/dependabot.yml
  • .github/workflows/ci.yml
  • .github/workflows/link-check.yml
  • .github/workflows/opencode.yml
  • .github/workflows/release-docker.yml
  • .github/workflows/release-npm.yml
  • .github/workflows/sec-context.yml
  • .gitignore
  • .husky/pre-commit
  • .lintstagedrc.json
  • .lycheeignore
  • .npmignore
  • .prettierignore
  • .prettierrc
  • .vscode/settings.json
  • AGENTS.md
  • CHANGELOG.md
  • CONTRIBUTING.md
  • Dockerfile
  • MANUAL_DEMO_GUIDE.md
  • PUBLICATION_GUIDE.md
  • QUALITY_AUDIT_REPORT.md
  • README.md
  • RELEASE_NOTES.md
  • SECURITY.md
  • demo_cli.js
  • docs/Apify Audit.html
  • docs/Apify Dataset Filtering & Sorting Optimization.md
  • docs/api-reference.md
  • docs/architecture.md
  • docs/local_docker_testing.md
  • docs/marketing/apify-cheat-sheet.md
  • docs/marketing/apify-complete-masterclass.md
  • docs/marketing/apify-implementation-templates.md
  • docs/marketing/apify-marketing-guide.md
  • docs/marketing/competitive_analysis.md
  • docs/marketing/email_announcement.md
  • docs/marketing/growth-guide.md
  • docs/marketing/product_hunt_arcade_guide.md
  • docs/marketing/twitter_thread.md
  • docs/playbooks/callback-sandbox.md
  • docs/playbooks/canary-shadow-rollout.md
  • docs/playbooks/custom-hmac-partner.md
  • docs/playbooks/github-ci.md
  • docs/playbooks/incident-response.md
  • docs/playbooks/large-payload-forensics.md
  • docs/playbooks/legacy-migration.md
  • docs/playbooks/low-code-bridge.md
  • docs/playbooks/pii-safe-production-capture.md
  • docs/playbooks/revenue-recovery.md
  • docs/playbooks/shopify.md
  • docs/playbooks/slack.md
  • docs/playbooks/stripe.md
  • docs/roadmap/conditional-multi-provider-verification.md
  • docs/roadmap/opentelemetry-integration.md
  • docs/roadmap/programmable-responses.md
  • docs/roadmap/webhook-analytics-api.md
  • eslint.config.js
  • jest.config.mjs
  • jest.coverage.matrix.config.mjs
  • jest.coverage.new-scopes.config.mjs
  • package.json
  • public/index.css
  • public/index.html
  • public/unauthorized.css
  • scripts/check-coverage.mjs
  • scripts/sync-version.js
  • scripts/validate-web-server-schema.mjs
  • src/consts.js
  • src/consts/alerting.js
  • src/consts/app.js
  • src/consts/auth.js
  • src/consts/database.js
  • src/consts/env.js
  • src/consts/errors.js
  • src/consts/http.js
  • src/consts/index.js
  • src/consts/logging.js
  • src/consts/messages.js
  • src/consts/network.js
  • src/consts/security.js
  • src/consts/storage.js
  • src/consts/ui.js
  • src/db/duckdb.js
  • src/logger_middleware.js
  • src/main.js
  • src/middleware/auth.js
  • src/middleware/error.js
  • src/middleware/index.js
  • src/middleware/json_parser.js
  • src/middleware/security.js
  • src/repositories/LogRepository.js
  • src/routes/dashboard.js
  • src/routes/health.js
  • src/routes/index.js
  • src/routes/info.js
  • src/routes/logs.js
  • src/routes/replay.js
  • src/routes/stream.js
  • src/routes/system.js
  • src/routes/utils.js
  • src/services/CircuitBreaker.js
  • src/services/ForwardingService.js
  • src/services/SyncService.js
  • src/services/index.js
  • src/typedefs.js
  • src/utils/alerting.js
  • src/utils/app_state.js
  • src/utils/auth.js
  • src/utils/bootstrap.js
  • src/utils/common.js
  • src/utils/config.js
  • src/utils/crypto.js
  • src/utils/custom_script_executor.js
  • src/utils/custom_script_worker.js
  • src/utils/demo_base_url.js
  • src/utils/env.js
  • src/utils/events.js
  • src/utils/filter_utils.js
  • src/utils/hot_reload_manager.js
  • src/utils/load_env.js
  • src/utils/logger.js
  • src/utils/rate_limiter.js
  • src/utils/signature.js
  • src/utils/ssrf.js
  • src/utils/storage_helper.js
  • src/utils/system.js
  • src/utils/webhook_rate_limiter.js
  • src/webhook_manager.js
  • tests/README.md
  • tests/api.test.js
  • tests/api_contract.test.js
  • tests/auth_ui.test.js
  • tests/bootstrap.test.js
  • tests/concurrency.test.js
  • tests/config.test.js
  • tests/coverage_gaps.test.js
  • tests/e2e/README.md
  • tests/e2e/app.smoke.e2e.test.js
  • tests/e2e/env-loader.e2e.test.js
  • tests/e2e/production.scenarios.e2e.test.js
  • tests/e2e/resilience.test.js
  • tests/e2e/webhook_lifecycle.test.js
  • tests/edge_cases.test.js
  • tests/forwarding.test.js
  • tests/helpers/shared-mocks.js
  • tests/helpers/test-utils.js
  • tests/hot_reload.test.js
  • tests/integration/README.md
  • tests/integration/app.lifecycle.integration.test.js
  • tests/integration/concurrency.stress.integration.test.js
  • tests/integration/logging.query.integration.test.js
  • tests/integration/main_routes.test.js
  • tests/integration/middleware_suite.test.js
  • tests/integration/security.sanitation.integration.test.js
  • tests/large_payload.test.js
  • tests/main.routes.test.js
  • tests/middleware.test.js
  • tests/middleware_delay.test.js
  • tests/production_ready.test.js
  • tests/rate_limiter.test.js
  • tests/resilience.test.js
  • tests/script_execution_extended.test.js
  • tests/script_timeout.test.js
  • tests/setup/env.js
  • tests/setup/helpers/apify-mock.js
  • tests/setup/helpers/app-utils.js
  • tests/setup/helpers/constant-discovery.js
  • tests/setup/helpers/db-hooks.js
  • tests/setup/helpers/e2e-process-harness.js
  • tests/setup/helpers/fixtures/payload-fixtures.js
  • tests/setup/helpers/integration-harness.js
  • tests/setup/helpers/middleware-test-utils.js
  • tests/setup/helpers/mock-setup.js
  • tests/setup/helpers/shared-mocks.js
  • tests/setup/helpers/signature-utils.js
  • tests/setup/helpers/test-lifecycle.js
  • tests/setup/helpers/test-utils.js
  • tests/ssrf_protection.test.js
  • tests/stress.test.js
  • tests/ui.test.js
  • tests/unit/actor/memory_expression.test.js
  • tests/unit/consts/consts.test.js
  • tests/unit/consts/index.test.js
  • tests/unit/db/duckdb.test.js
  • tests/unit/logger_middleware.test.js
  • tests/unit/main.test.js
  • tests/unit/middleware/middleware_auth.test.js
  • tests/unit/middleware/middleware_error.test.js
  • tests/unit/middleware/middleware_json_parser.test.js
  • tests/unit/middleware/middleware_security.test.js
  • tests/unit/repositories/LogRepository.test.js
  • tests/unit/routes/dashboard.test.js
  • tests/unit/routes/health.test.js
  • tests/unit/routes/info.test.js
  • tests/unit/routes/logs.test.js
  • tests/unit/routes/replay.test.js
  • tests/unit/routes/route_utils.test.js
  • tests/unit/routes/stream.test.js
  • tests/unit/routes/system_routes.test.js
  • tests/unit/scripts/check_coverage.test.js
  • tests/unit/scripts/sync_version.test.js
  • tests/unit/security/logger_middleware_hardening.test.js
  • tests/unit/security/webhook_manager_hardening.test.js
  • tests/unit/services/circuit_breaker.test.js
  • tests/unit/services/forwarding_service.test.js
  • tests/unit/services/sync_service.test.js
  • tests/unit/utils/alerting.test.js
  • tests/unit/utils/app_state.test.js
  • tests/unit/utils/auth.test.js
  • tests/unit/utils/bootstrap.test.js
  • tests/unit/utils/common.test.js
  • tests/unit/utils/config.test.js
  • tests/unit/utils/crypto.test.js
  • tests/unit/utils/custom_script_executor.test.js
  • tests/unit/utils/custom_script_executor_mocked.test.js
  • tests/unit/utils/custom_script_worker.test.js
  • tests/unit/utils/custom_verification.test.js
  • tests/unit/utils/demo_base_url.test.js
  • tests/unit/utils/env.test.js
  • tests/unit/utils/events.test.js
  • tests/unit/utils/filter_utils.test.js
  • tests/unit/utils/github_verification.test.js
  • tests/unit/utils/hot_reload_manager.test.js
  • tests/unit/utils/load_env.test.js
  • tests/unit/utils/load_env_mocked.test.js
  • tests/unit/utils/logger.test.js
  • tests/unit/utils/rate_limiter.test.js
  • tests/unit/utils/shopify_verification.test.js
  • tests/unit/utils/signature.test.js
  • tests/unit/utils/slack_verification.test.js
  • tests/unit/utils/ssrf.test.js
  • tests/unit/utils/storage_helper.test.js
  • tests/unit/utils/system.test.js
  • tests/unit/utils/webhook_rate_limiter.test.js
  • tests/unit/webhook_manager.test.js
  • tests/unit_auth.test.js
  • tests/webhook_lifecycle.test.js
  • tests/webhook_manager.test.js

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v3.0.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 123 out of 286 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/middleware/security.js Outdated
Comment thread src/middleware/json_parser.js
Comment thread Dockerfile Outdated
Comment thread scripts/check-coverage.mjs Outdated
Comment thread SECURITY.md Outdated
Comment thread src/middleware/security.js
Copilot AI review requested due to automatic review settings April 13, 2026 12:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 122 out of 285 changed files in this pull request and generated 10 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Dockerfile
Comment thread Dockerfile
Comment thread Dockerfile
Comment thread src/middleware/json_parser.js
Comment thread .npmignore Outdated
Comment thread demo_cli.js Outdated
Comment thread docs/local_docker_testing.md
Comment thread docs/local_docker_testing.md Outdated
Comment thread eslint.config.js
Comment thread eslint.config.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 13, 2026 14:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 122 out of 285 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release-docker.yml Outdated
Comment thread src/consts/ui.js
Comment thread src/consts/ui.js
Comment thread public/index.html Outdated
Comment thread demo_cli.js Fixed
Comment thread demo_cli.js Fixed
Comment thread demo_cli.js Fixed
Copilot AI review requested due to automatic review settings April 14, 2026 10:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 121 out of 285 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/consts/storage.js Outdated
Comment thread demo_cli.js Outdated
Comment thread CHANGELOG.md Outdated
Comment thread eslint.config.js
Comment thread eslint.config.js
Copilot AI review requested due to automatic review settings April 14, 2026 15:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 121 out of 287 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/middleware/error.js
Comment thread .github/workflows/link-check.yml
Comment thread demo_cli.js
Copilot AI review requested due to automatic review settings April 14, 2026 21:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 121 out of 287 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/consts/security.js
Comment thread scripts/check-coverage.mjs Outdated
Comment thread src/consts/database.js Outdated
Comment thread demo_cli.js Outdated
@ar27111994 ar27111994 merged commit 197bef1 into main Apr 15, 2026
14 checks passed
@ar27111994 ar27111994 deleted the release/v3.0.0 branch April 15, 2026 08:56
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.

3 participants