Skip to content

Releases: 73ai/openbotkit

v0.12.0

06 Apr 16:31

Choose a tag to compare

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

06 Apr 12:54

Choose a tag to compare

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

01 Apr 10:00

Choose a tag to compare

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

01 Apr 07:10

Choose a tag to compare

Changelog

  • e3a4115 chore(release): v0.9.1
  • 56a60df Merge pull request #142 from 73ai/fix-security-alert-bugs
  • f0663ab fix(daemon): make TestCheckOverdueRecurringSkipsRecentRun time-agnostic
  • e4615a9 fix(deps): bump testcontainers-go to v0.41.0
  • dc332ce fix(deps): bump picomatch and smol-toml for security patches

v0.9.0

01 Apr 06:19

Choose a tag to compare

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

31 Mar 06:41

Choose a tag to compare

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

29 Mar 11:04

Choose a tag to compare

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

25 Mar 11:22

Choose a tag to compare

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

25 Mar 09:32

Choose a tag to compare

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

25 Mar 07:47

Choose a tag to compare

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