Releases: 73ai/openbotkit
Releases · 73ai/openbotkit
v0.12.0
Changelog
- eb9c48b chore(release): v0.12.0
- 621380b Merge pull request #147 from 73ai/email-usecase-testing
- eed5766 Merge remote-tracking branch 'origin/master' into email-usecase-testing
- 205a5ba fix(daemon): add panic recovery to HookListener goroutine
- 0c040c7 test(hooks): remove unused hookID variable in listener test
- 5236b5b fix(cli): handle json.Marshal error in gmail dry-run paths
- c1218f1 fix(jobs): wire UpdateLastRun into EventHookWorker
- dfd44a9 fix(daemon): remove leaky C() method from SyncNotifier
- b083aa1 fix(jobs): truncate by runes instead of bytes for UTF-8 safety
- 7f1f124 fix(jobs): early return in loadEmails for empty IDs
- d28df3d fix(test): run event hook test through full River pipeline
- b81020c test(hooks): add unit tests for hook listener, event hook worker, and store
- 1e7fef8 test(email): add email read, send, and urgent alert use case tests
- a789b1a feat(test): add CapturePusher, RecordingInteractor, AgentWithInteractor
- 1ea5c12 feat(tools): add prompt prefixes to gate email write commands
- eb93d9f feat(cli): add OBK_GMAIL_DRY_RUN env var for email send and draft
- 7500bcc feat(daemon): wire channel registry, hooks DB, and hook listener
- 2989b4f feat(daemon): add HookListener for event-driven hook dispatch
- f566070 feat(daemon): add EventHookWorker for post-sync LLM classification
- 1025796 feat(gmail): add GetEmailsByIDs for loading emails by row ID
- 1a130ce feat(hooks): add event_hooks schema, types, and store
- da3ea0d feat(daemon): pass new email IDs through gmail sync to notifier
- 9269848 feat(daemon): add fan-out and data payload to SyncNotifier
- d1d5439 feat(gmail): return new email IDs from Sync for event hooks
- 6d631cf feat(channel): add Registry for centralized pusher management
v0.11.0
Changelog
- df4ff2b chore(release): v0.11.0
- 9fc3400 Merge pull request #145 from 73ai/usecase-registry
- 44c5cd5 fix(registry): escape LIKE wildcards in search queries
- 8fcb7f6 feat(registry): add pagination controls to browse page
- a2e4247 fix(registry): replace alert/confirm with inline error and confirm UI
- 0749239 fix(registry): highlight active nav link in header
- 6b7baf4 fix(registry): use destructive color for error messages on home page
- 376e7b3 fix(registry): improve mobile layout for header and detail footer
- 59e729c fix(registry): fix demo login redirect and add port 5174 to CORS
- a70e0b3 fix(registry): add client-side form validation and inline errors
- 3ba9f73 fix(registry): deduplicate auth requests with cached singleton
- 77dc488 fix(registry): add search debounce and abort controller
- fcf2e84 fix(registry): decrement fork count when forked use case is deleted
- 6c65a68 fix(registry): add max length validation for description (5000 chars)
- 3047f26 fix(registry): set Secure flag on auth cookie in production
- 34f9316 fix(registry): check rows.Err() after DB iteration loops
- 6627edc fix(registry): default empty fields on update like create does
- 629eafa fix(registry): validate use case ID as hex before API calls
- b0bc23c fix(registry): hide private/draft use cases from non-authors
- 6bab5f2 feat(registry): replace seed data with 18 researched use cases
- d1994da test(registry): add validation, auth, and default status tests
- 504a266 fix(registry): restrict CORS to exact frontend URLs
- 8f460e9 fix(registry): add error states, loading states, permission checks
- 5163ebf fix(registry): enforce JWT secret in production, fix fork race condition
- c166d3e fix(registry): add input validation for use case fields
- cd84ebf refactor(registry): single-column layout grouped by domain
- cb38ea9 chore(registry): add gitignore for build artifacts and DB files
- 608f79d feat(registry): add Express production server with API proxy
- 6e7f10e feat(registry): add Layout and all pages (Home, Detail, Form, Dashboard)
- 46d2748 feat(registry): add shadcn/ui components
- ff90077 feat(registry): add frontend lib (types, API client, auth hook, utils)
- 7d9c807 feat(registry): add HTML entry points, TSX entries, and global CSS
- b67ae82 feat(registry): init frontend with React, Vite, Tailwind, shadcn deps
- bfccf6f test(registry): add store and handler tests
- 92d11f3 feat(registry): add 8 curated seed use cases across domains
- b989be2 feat(registry): add fork and dashboard handlers
- e175210 feat(registry): add create, update, delete use case handlers
- 609fe8c feat(registry): add public browse and detail handlers
- 5cdbf83 feat(registry): add store queries for users and use cases
- ee6a0a2 feat(registry): add Google OAuth, demo login, and user handlers
- c7df848 feat(registry): add CORS, body limit, and JWT auth middleware
- 9e6dbcd feat(registry): add server bootstrap, config, and health endpoint
- c4c0305 feat(registry): add User/UseCase models and DB schema
- e5880b9 feat(registry): init Go module and DB store wrapper
v0.10.0
Changelog
- 58261a7 chore(release): v0.10.0
- afefe47 Merge pull request #144 from 73ai/self-improvement
- 3b36f7c fix(cli): isolate cobra flag state in skills CLI tests
- 9a27fda fix(server): sweep expired credential tokens on create
- c5e4ebe fix(config): fix dead empty-path guard in SetByPath
- 0f1ecc6 fix(skills): validate skill names to prevent path traversal
- bbd1e9b fix(usecase): rewrite integration tests with natural prompts
- 3b58841 feat(skills): add config-manage skill for configuration discovery
- 3be7170 fix(spectest): add skill-creator to installed skills in test fixture
- 909bae6 fix(server): use keyring mock in credential tests, add auth test
- 74887e1 test(usecase): add external skill install integration test
- 1035095 test(usecase): add config modification integration tests
- 94e1cf1 test(usecase): add tool building integration test
- f98ac14 test(usecase): add skill creation integration tests
- 3aecedb test(config): add config set round-trip tests
- 1845eb8 test(config): add workspace path resolution tests
- 11c6b06 test(server): add credential handler tests
- 81e79c7 feat(server): add credential request/form/store endpoints
- 95b25dc feat(skills): register skill-creator in builtinSkills
- 3ce1d31 feat(skills): add skill-creator meta-skill
- ee924f9 test(cli): add skills CLI command tests
- 34ec637 feat(cli): add obk skills create/update/remove/list/show commands
- 03c8678 test(skills): add custom skill management tests
- 02f80ca fix(skills): preserve custom/external skills during declarative Install()
- 8391809 feat(skills): add custom skill install/remove/list/get/update functions
- 84d2ef7 test(config): add SetByPath unit tests
- b0d9a5a refactor(cli): replace hardcoded config set switch with SetByPath
- b967bcb feat(config): add generic SetByPath for arbitrary config keys
v0.9.1
Changelog
v0.9.0
Changelog
- 49efcdc chore(release): v0.9.0
- 974fa68 Merge pull request #141 from 73ai/usecase-tests-part-2
- 29c1e85 refactor(websearch): merge stateHealthy and stateHalfOpen switch cases
- 44fc738 fix(tools): ensure workspace directory exists in BuildSubagentTool
- e943d0f refactor(tools): extract BuildSubagentTool to deduplicate session setup
- e46a86c test(delegate_task): add async timeout_minutes test
- 487a6f8 test(websearch): add classifyError unit tests
- a7d8469 fix(websearch): scope 202 rate-limit classification to DuckDuckGo
- e2c4765 fix(delegate_task): pass timeout_minutes through async path
- 6bee361 fix(settings): update tree tests for Workspace category
- 84f6f24 docs(prompt): add timeout_minutes guidance to delegation section
- 41ba3da feat(delegate_task): add LLM-decided timeout_minutes parameter
- 6e0adf1 test(deep_research): narrow test prompts for reliability
- 0c25fbf refactor(websearch): remaining engines return StatusError
- cd823c0 fix(websearch): Brave Sec-Fetch headers and StatusError
- 9253d43 fix(websearch): Mojeek omit s param on page 1, add Sec-Fetch headers
- d0beb5e fix(websearch): DuckDuckGo Sec-Fetch headers and StatusError
- 6b1d7f8 refactor(websearch): pass failure kind to health tracker
- 7fc90e6 feat(websearch): error-type-aware health tracker with half-open state
- 2342240 feat(websearch): add StatusError type and error classification
- 872cb54 fix: resolve merge conflicts with origin/master
- 0a054d5 fix(usecase): use highest-priority agent for delegate test, add timing
- 47421ed feat(spectest): add timing instrumentation to AssertChecklist
- 6565c70 feat(usecase): wire fast judge model for checklist evaluation
- d677c9e fix(spectest): use fast judge for AssertChecklist, handle empty response
- 82386e6 feat(spectest): add JudgeFastProvider/JudgeFastModel to LocalFixture
- c52393d feat(spectest): add AssertChecklist for binary yes/no judge evaluation
- 93a7baf test(delegate): update sync tests for raw output behavior
- ef832f4 refactor(delegate): return raw output from sync path, simplify prompt
- 9e19025 refactor(subagent): return raw output, let registry handle truncation
- 5dc8630 fix(prompt): add deliver-results instruction to delegate_task section
- 60b864b fix(usecase): fix delegate test prompt and add deliver-results instruction
- c2242ad fix(test): update subagent tests for SystemBlocks and maxIter 25
- e999e18 test(usecase): add deep research use case tests
- 88117a4 feat(usecase): add delegation agent builder and test interactor
- efa4148 test(usecase): add deep research README
- 8407fe2 feat(usecase): register subagent and workspace in test fixture
- 2a7aa05 feat(cli): enrich subagent tools and add workspace to prompt
- fc42754 feat(whatsapp): enrich subagent tools and add workspace to prompt
- d259bd9 feat(telegram): enrich subagent tools and add workspace to prompt
- 83fa3cf feat(tools): add NewSubagentRegistry for enriched subagent
- 008e542 docs(prompt): update sub-agents section for enriched tools
- bd1af6d feat(subagent): use system blocks and increase maxIter to 25
- 5b79fa5 feat(config): add workspace directory config and setting
- e6be51b fix(usecase): fix web search test prompts and judge criteria
- be90290 test(usecase): add web search use case tests
- 58e02d9 test(usecase): add web search scenario docs
v0.8.0
Changelog
- cdbc4c3 chore(release): v0.8.0
- 5244624 Merge pull request #137 from 73ai/twitter-integration
- 12c5dfd test(x): add tests for ValidateSession success and failure paths
- 949c455 docs(chrome): explain "peanuts" keychain fallback on Linux
- 39cd44e fix(chrome): validate all PKCS7 padding bytes before stripping
- d9f1df4 docs(x): add comment explaining public bearer token is not a secret
- 37bc601 refactor(audit): add LogQuick helper, simplify logXAudit in CLI and TUI
- 38e214a refactor(x): deduplicate isPermissionError into cookies.IsPermissionError
- 113f1b1 test(x): add usecase tests for X timeline read and local search
- 9a5e4c7 chore(x): update GraphQL query IDs for Twitter API endpoints
- 93ebe26 fix(x): validate session with real API call on login and status check
- da072e0 fix(chrome): handle SHA256 hash prefix in Chrome v130+ cookie decryption
- 23a9718 feat(x): register x-read and x-post in builtin skills
- 031fe2c feat(x): add x-post skill for posting, replying, liking, reposting
- 8b2e58c feat(x): add x-read skill for timeline, search, and notifications
- 966f663 feat(x): add replies command to show replies to a post
- e0ab5cd fix(settings): remove X-specific storage driver/DSN from settings TUI
- 174c683 feat(x): add X to setup wizard with browser selection
- 97ee614 feat(x): add browser selection to TUI settings wizard
- ac8508d feat(x): add browser selection to CLI auth login
- 43d4db6 feat(x): add ExtractSessionFromBrowserByName
- 8b76864 feat(browser): add single-browser extraction and AvailableBrowsers
- 02e598f Revert "fix(browser): remove Safari from cookie extraction priority"
- ae208c3 fix(browser): remove Safari from cookie extraction priority
- b25d493 refactor(x): remove login flow code
- 1429462 feat(x): replace TUI login wizard with cookie extraction
- ebb19d3 feat(x): replace CLI login with cookie extraction
- 90c6aaf feat(x): add browser session extraction
- 20c2d1b feat(browser): add cookie extraction orchestrator
- c1561d3 feat(browser): add Firefox cookie reader
- 8e3ff5f feat(browser): add Safari binary cookie parser
- 0e1922c feat(browser): add Chrome cookie decryption package
- 99e2815 test(x): add full login flow integration test and improve coverage
- 1748388 fix(x): improve JS solver with proper DOM mock and function extraction
- e9d65e8 fix(x): replace stub instrumentation with real JS execution
- c40e79c chore(deps): add goja JS engine for X login instrumentation
- a2b383b feat(x): add JS instrumentation solver using goja VM
- facf8d0 feat(x): add mock DOM for JS instrumentation execution
- 2dd43a6 fix(x): add audit logging to login flow and fix error display
- 3c52ab7 fix(x): update settings TUI to show account status with sign-in prompt
- c72e249 feat(x): update CLI auth to use username/password login
- 6f7dd04 feat(x): add login wizard to settings TUI
- 0a9ee52 feat(x): add programmatic login flow via username/password
- eb937d9 feat(x): add X to settings TUI data sources
- 60eb0c4 Merge remote-tracking branch 'origin/master' into twitter-integration
- 47dfe7f feat(x): add query ID extractor tool
- dc7ddf8 feat(x): add CLI commands and wire into root
- 12c75f2 feat(x): add X config with storage settings and DSN helper
- 7c32543 feat(x): add source interface implementation and sync engine
- 31e187f feat(x): add URT response parsers for timeline, search, notifications
- 65b6d30 feat(x): add store CRUD operations with upsert and search
- 432bf87 feat(x): add domain types and dual SQLite/Postgres schema
- 1354aae feat(x): add GraphQL endpoint methods for all 10 operations
- c8de6cd feat(x): add core GraphQL client with Chrome TLS fingerprinting
- 773b4ee feat(x): add transaction ID generator stub
- a404615 feat(x): add credential storage with keyring and token validation
- ea6cc19 feat(x): add query ID config loader with YAML support
v0.7.0
Changelog
- 8c837e0 chore(release): v0.7.0
- a38c2b8 Merge pull request #136 from 73ai/usecase-tests
- 0b3d8f2 perf(spectest): cache obk binary build across test fixtures
- bca6b15 test(usecase): add negative test for recall without prior save
- db513a4 fix(usecase): find schedule by type instead of assuming index order
- 9237041 fix(usecase): guard against missing profile in config.Profiles
- 4b3603b fix(usecase): handle MkdirAll error and update README
- c42c07a fix(usecase): use same agent for execution simulation in reminders test
- 93ca3e9 refactor(usecase): use full production-like agent with all tools
- c3c705b test(usecase): add reminders use case tests
- edea4ea feat(usecase): add web tools and scheduling context to agents
- f7049e0 feat(spectest): install schedule-task and web skills in test fixture
- 677b327 fix(spectest): increase judge MaxTokens for thinking models
- 6b0cab3 revert: undo DisableThinking in judge (gemini-2.5-pro requires thinking)
- e319cd5 fix(spectest): disable thinking for judge LLM calls
- b4c31f0 feat(usecase): add ScheduleAgent and SchedDBPath helpers
- 5359100 test(usecase): add remember-info use case test
- 1a1902b feat(usecase): add profile-based use case test framework
- 6c30daa feat(spectest): export NewEnv and Dir for fixture reuse
- 8d55fd4 talks to gitignore
v0.6.0
Changelog
- fbfd060 chore(release): v0.6.0
- 23ab5dc Merge pull request #133 from 73ai/backup-failures
- efca4eb fix(settings): call LinkSource("backup") in backup wizard
- b4bd36a test(daemon): add backup notification and dedup tests
- cdeb6df fix(backup): handle nil Channels config in notifyFailure
- d43cf36 test(daemon): update scheduler tests for unified tick loop
- 240e978 feat(backup): notify via Telegram on final failure
- 94f6283 refactor(daemon): unified tick loop with sleep/wake catch-up
- bcbd388 refactor(daemon): remove backup periodic job from River
v0.5.1
Changelog
- ab76b06 chore(release): v0.5.1
- d53cf84 Merge pull request #132 from 73ai/fix-changelog-ci
- 431b9d9 fix(ci): skip changelog release when version tag already exists
- 2f6b775 fix(ci): skip tag creation when version tag already exists
- 344b46f Merge pull request #131 from 73ai/chore-bump-deps-march-2026
- 6f76fb4 chore(deps): bump h3 from 1.15.6 to 1.15.10 in website
- 307021c chore(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 and google.golang.org/grpc from 1.79.2 to 1.79.3
v0.5.0
Changelog
- cbe3f98 chore(release): v0.5.0
- fb355d4 Merge pull request #130 from 73ai/fix-intermediate-text-and-ack
- 974adfa fix(tools): increase delegate_task timeout to 15 minutes
- 5e35347 feat(whatsapp): send intermediate LLM text to user
- c770806 feat(telegram): send intermediate LLM text to user
- 01875d9 feat(agent): add WithOnIntermediateText callback for tool-use loops
- c95fd58 fix(telegram): prevent ack model from generating questions
- 1d152ab Add Dependabot configuration for package updates