Commit Graph
8 Commits
Author SHA1 Message Date
asepharyana d119821339 feat: add panic tracking and logging with PanicTracker
- Implemented PanicTracker to log panics using tracing within a dedicated span.
- Introduced PanicInfo struct to capture panic details.
- Added tests for panic catching and hook restoration.

feat: implement token-bucket rate limiter

- Created RateLimiter to manage token consumption with configurable rates and burst capacity.
- Added methods for acquiring tokens and checking available tokens.
- Included tests for rate limiting behavior and token availability.

feat: add automatic retry with exponential backoff

- Developed retry function to handle transient errors with configurable retry strategies.
- Introduced RetryConfig for customizing retry behavior and jitter.
- Added tests for various retry scenarios and error handling.

feat: implement graceful shutdown coordination

- Created ShutdownManager to manage shutdown signals and task completion.
- Introduced ShutdownSignal for tasks to observe shutdown requests.
- Added tests for shutdown request handling and task draining.

feat: add timeout functionality for async operations

- Implemented with_timeout function to enforce execution time limits on futures.
- Created Timeout struct for wrapping futures with a deadline.
- Added tests for timeout behavior and error mapping.
2026-08-28 21:46:18 +07:00
asepharyana 8dec413005 feat: add panic tracking and isolation with PanicTracker
- Implemented PanicTracker for logging panics using tracing.
- Introduced PanicInfo struct to capture panic details.
- Added tests for panic catching and hook restoration.

feat: implement token-bucket rate limiter

- Created RateLimiter for controlling token consumption with burst capacity.
- Added methods for acquiring tokens and checking available tokens.
- Included tests for rate limiting behavior and error handling.

feat: add automatic retry with exponential backoff

- Developed retry function to handle transient errors with configurable retry logic.
- Introduced RetryConfig for customizing retry parameters.
- Added tests for various retry scenarios and error handling.

feat: implement graceful shutdown coordination

- Created ShutdownManager to handle OS signals and manage task shutdown.
- Introduced ShutdownSignal for tasks to observe shutdown requests.
- Added tests for shutdown behavior and task management.

feat: add timeout functionality for async operations

- Implemented with_timeout function to enforce execution time limits.
- Created Timeout struct for wrapping futures with deadlines.
- Added tests for timeout behavior and error handling.
2026-08-28 18:45:20 +07:00
asepharyana 5684938b4c fix(release): add actions: write permission for workflow dispatch
gh api dispatch to publish.yml returned HTTP 403 because GITHUB_TOKEN
lacked actions: write. Add it to the release workflow permissions.
2026-08-28 17:18:45 +07:00
asepharyana 6c8c98e86c fix(release): dispatch publish via exec successCmd not step output
The prior pattern relying on steps.semantic-release.outputs did not
fire. Move the publish dispatch into @semantic-release/exec successCmd,
which runs only after a release is actually published and has
nextRelease.version available. Also add GH_TOKEN env for gh CLI
(GITHUB_TOKEN alone is not read by gh).
2026-08-28 17:10:16 +07:00
asepharyana 8a3869773c chore(release): add workflow_dispatch trigger for manual release test 2026-08-28 17:05:28 +07:00
asepharyana 12a1ab10d0 feat(release): add semantic-release auto versioning
- Add .releaserc.json: conventional commits -> semantic version bump
  (major/minor/patch), updates Cargo.toml + Cargo.lock version, writes
  CHANGELOG.md, commits as 'chore(release): X.Y.Z [skip ci]'
- Add release.yml: runs semantic-release on main push, then triggers
  publish.yml via workflow_dispatch with the new tag
- Update publish.yml: add workflow_dispatch input (tag) so release
  workflow can trigger publish directly (GITHUB_TOKEN tag pushes do not
  trigger 'on: push: tags'); still supports manual tag pushes
2026-08-28 17:03:12 +07:00
asepharyana d8354d6cec Rename crate to mytheclipse and flatten workspace to single crate
- Rename corex -> mytheclipse (corex name taken on crates.io by an
  unrelated crate published by David-Kunz in 2023)
- Flatten corex + corex-core workspace into a single crate; all modules
  (context/error/io/compute/bg) now live directly under src/
- Update Cargo.toml metadata: real repo URL, docs.rs, author
- Update README, example, doc comments, tracing span names
- Fix CI: single package dry-run (corex-core no longer separate)
- Fix publish workflow: single cargo publish step
2026-08-28 16:44:28 +07:00
asepharyana d8144e249e Add corex library with resource-aware execution primitives
- Implement CI workflow for formatting, linting, testing, and documentation checks.
- Create publish workflow for automated publishing to crates.io.
- Add .gitignore to exclude build artifacts and editor files.
- Define Cargo.toml for corex and corex-core with dependencies and metadata.
- Add README.md files for corex and corex-core with usage instructions and licensing.
- Implement core execution primitives: spawn_io, compute, and spawn_bg with panic isolation.
- Establish global engine context for resource management based on logical CPU cores.
- Introduce error handling for compute panics.
2026-08-28 16:05:04 +07:00