Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
6188b98
break circular dependencies
pirate Oct 15, 2025
e05bf24
cleaner variable names
pirate Oct 15, 2025
9bc7b4b
consistent naming of event_children
pirate Oct 15, 2025
aa73613
add tests for independent usage
pirate Oct 15, 2025
582aefc
add support for middlewares to hook into event bus handler lifecycle
pirate Oct 16, 2025
b65ff22
Merge pull request #2 from pirate/middlewares
pirate Oct 16, 2025
27e8c51
Merge branch 'main' into circular-cleanup
pirate Oct 16, 2025
518ee27
better variable naming
pirate Oct 16, 2025
3963aa7
implement event history backend
pirate Oct 16, 2025
ad36a77
Merge pull request #3 from pirate/event-history-backend
pirate Oct 16, 2025
8cd3335
add monitor dash mini app
pirate Oct 17, 2025
5747fcb
improve monitor ui dash
pirate Oct 17, 2025
615c34e
better middleware API and documentation
pirate Oct 18, 2025
719e934
add query method and debounce helpers
pirate Oct 18, 2025
89b6df8
rename folder to ui
pirate Oct 18, 2025
5a094dc
improve perf tests
pirate Oct 18, 2025
165169e
add event_history mirroring test
pirate Oct 18, 2025
be314d6
ignore sqlite temp files
pirate Oct 18, 2025
c925e17
add stricter type checking for tests
pirate Oct 18, 2025
d195dd6
proper type inference tests
pirate Oct 18, 2025
b4e4a34
bump version
pirate Oct 18, 2025
5e7bd12
Add EventEmitter2 link to inspiration section
pirate Nov 26, 2025
73a60f6
Revise README description for bubus library
pirate Nov 28, 2025
854773d
Merge pull request #4 from pirate/patch-1
pirate Nov 28, 2025
79e4063
Update README.md
pirate Dec 8, 2025
b5fac1c
Update README.md
pirate Dec 8, 2025
67f5b1e
remove old js lockfile
pirate Dec 8, 2025
807c3a6
fix queue-jumping behavior to be more intuitive to actually jump inst…
pirate Dec 8, 2025
7c21c3b
bump version
pirate Dec 8, 2025
2db5914
propagate dispatch-time user-provided ContextVars to handler execution
pirate Dec 8, 2025
0c5c1df
clear ContextVars after handler execution to lower memory use
pirate Dec 8, 2025
5899a3d
bump version
pirate Dec 8, 2025
1ca9709
document the new ContextVar propagation feature
pirate Dec 8, 2025
1c6e6cf
add claude perms
pirate Dec 9, 2025
bf82b95
implement new .find method to replace expect and get_or_dispatch
pirate Dec 9, 2025
fb3f4bb
fix bus name conflict checking and determinism around gc
pirate Dec 9, 2025
aa61357
add EventStatus enum and cleanup middlewares APIs for clarity
pirate Dec 9, 2025
9d6b782
massivly simplify middleware interface
pirate Dec 9, 2025
f6abe6d
fix middlewares type
pirate Dec 9, 2025
4e291cf
bump version
pirate Dec 9, 2025
140fb7a
Revise event handling examples in README
pirate Dec 9, 2025
fb68fcb
add bubus-ts implementation
pirate Feb 5, 2026
5230ba0
use monotonic timestamps and fix bus proxy
pirate Feb 5, 2026
b5cda39
add ts readme
pirate Feb 5, 2026
b04db57
remove unused configs
pirate Feb 5, 2026
500ed8e
fix eslint
pirate Feb 5, 2026
6b0cf8c
Fix log tree behavior and child completion
pirate Feb 5, 2026
d891ff2
add asynclocalstorage
pirate Feb 5, 2026
40a248e
fix tests and improve naming consistency
pirate Feb 6, 2026
b678e79
more queue jumping fixes
pirate Feb 6, 2026
2e0a9d2
add debug logging
pirate Feb 6, 2026
413d0cf
wip
pirate Feb 6, 2026
2acac40
all tests passing
pirate Feb 6, 2026
82a346e
completed lock system refactor
pirate Feb 6, 2026
1be5da2
readme updates
pirate Feb 6, 2026
4d038a6
LockManager consolidation
pirate Feb 6, 2026
a1f51f1
tests passing
pirate Feb 7, 2026
328af87
code cleanup and better naming
pirate Feb 7, 2026
a21dd46
all working except slower performance
pirate Feb 7, 2026
2d51a39
add type inference for return values
pirate Feb 7, 2026
e79782b
update readme
pirate Feb 7, 2026
03a2449
fix perf regression
pirate Feb 7, 2026
f20916c
more cleanup and naming improvements
pirate Feb 8, 2026
daa7dab
make awaiting event wait for processing on all busses, raise Exceptio…
pirate Feb 8, 2026
4d9d88c
bump version
pirate Feb 8, 2026
9b6d4bf
Update README.md
pirate Feb 9, 2026
fd7e6b5
Revise README to emphasize multi-language support
pirate Feb 9, 2026
dc29a76
Update README for brevity and clarity
pirate Feb 9, 2026
4228337
Update README description for bubus
pirate Feb 9, 2026
fd52a82
Update README with implementation badges
pirate Feb 9, 2026
da51cfd
Clean up README.md by removing duplicates
pirate Feb 9, 2026
b190994
add bubus-ts publish flow
pirate Feb 9, 2026
46b59ab
add perf tests
pirate Feb 9, 2026
875e331
unverified python perf fixes
pirate Feb 9, 2026
45b5c6a
Add retry() decorator with semaphore support and re-entrancy protection
claude Feb 9, 2026
8be7423
Use shared async_context.ts polyfill for retry re-entrancy tracking
claude Feb 9, 2026
57884c1
Support string error names and RegExp patterns in retry_on_errors
claude Feb 9, 2026
f9b2ce6
Update README retry_on_errors docs for string/RegExp matchers
claude Feb 9, 2026
792b725
Add semaphore_scope option: 'global', 'class', 'instance'
claude Feb 9, 2026
b577a5f
Add TC39 @retry() decorator syntax tests and scope fallback tests
claude Feb 9, 2026
182e98d
Add full usage pattern tests and README docs for @retry decorator
claude Feb 9, 2026
7a82629
Add test for retry wrapping emit→done cycle in parallel with other ev…
claude Feb 9, 2026
df34d9d
Document @retry as handler-level concept; discourage emit-level retry…
claude Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
"Bash(echo:*)",
"Bash(grep:*)",
"Bash(rg:*)",
"Bash(.venv/bin/pytest tests/test_typed_event_results.py::test_builtin_type_casting -v -s --timeout=10)"
"WebFetch(domain:github.com)",
"Bash(timeout 60 .venv/bin/pytest:*)",
"Bash(timeout 180 .venv/bin/pytest tests/ -v)",
"Bash(timeout 180 .venv/bin/pytest:*)",
"Bash(git tag:*)"
],
"deny": []
}
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: publish-npm

on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: npm dist-tag to publish under
required: false
default: latest

permissions:
contents: read
id-token: write

jobs:
publish_to_npm:
runs-on: ubuntu-latest
defaults:
run:
working-directory: bubus-ts
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 10

- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
cache-dependency-path: bubus-ts/pnpm-lock.yaml
registry-url: https://registry.npmjs.org

- run: pnpm install --frozen-lockfile
- run: pnpm run typecheck
- run: pnpm test
- run: pnpm run build

- name: Publish release tag
if: github.event_name == 'release'
run: pnpm publish --access public --no-git-checks
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish manual tag
if: github.event_name == 'workflow_dispatch'
run: pnpm publish --access public --tag "${{ inputs.tag }}" --no-git-checks
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Feb 9, 2026

Choose a reason for hiding this comment

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

P2: Directly interpolating inputs.tag into a run command can lead to command injection if a crafted tag value is provided. Use an env variable to avoid expression substitution inside the script.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/publish-npm.yml, line 50:

<comment>Directly interpolating `inputs.tag` into a `run` command can lead to command injection if a crafted tag value is provided. Use an env variable to avoid expression substitution inside the script.</comment>

<file context>
@@ -0,0 +1,52 @@
+
+      - name: Publish manual tag
+        if: github.event_name == 'workflow_dispatch'
+        run: pnpm publish --access public --tag "${{ inputs.tag }}" --no-git-checks
+        env:
+          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
</file context>
Fix with Cubic

env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ CLAUDE.local.md

# Build files
dist/
node_modules/

# Coverage files
.coverage
.coverage.*
htmlcov/
coverage.xml
*.cover

*.sqlite*

# Secrets and sensitive files
secrets.env
Expand Down
380 changes: 326 additions & 54 deletions README.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions bubus-ts/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist/
Loading
Loading