* feat(notification): add em'
Assisted-by: Claude Sonnet 4.5 via Crush
* refactor(permission): check allowlist first
* docs(notification): correct example, fix rendering
* fix(notification): bump godbus/dbus to v5.2.2
v5.1.0's FreeBSD SendNullByte() was in a CGO file, so it was excluded
when building with CGO_ENABLED=0, causing the freebsd/amd64 cross-build
to fail. v5.2.2 rewrites it in pure Go.
* feat: add configurable timeout for LSP initialization
Add a timeout field to LSPConfig to allow users to customize
the initialization timeout for LSP servers. This is particularly
useful for slow-starting servers like kotlin-language-server that
may require more than the default 30 seconds to initialize.
Fixes#1865
* refactor: simplify timeout logic with cmp.Or
Simplified the timeout handling by using Go's cmp.Or() function instead
of manual conditional checks, reducing code from 5 lines to 1 line while
maintaining the same functionality.
This fixes two schema validation issues:
1. tools.ls incorrectly marked as required
- Changed Tools.Ls and Config.Tools from omitzero to omitempty
- The invopop/jsonschema library doesn't recognize Go 1.25's omitzero tag
2. lsp.command incorrectly marked as required
- Removed jsonschema:"required" tag from LSPConfig.Command
- The project's own crush.json doesn't include command field for gopls
After this fix, users can use minimal configurations without being
forced to specify tools.ls or lsp.command fields.
The old co_authored_by boolean is now deprecated in favor of
trailer_style enum. When only the old setting is present, it silently
migrates (true → co-authored-by, false → none). When trailer_style
is set, co_authored_by is ignored. The deprecated field remains in the
schema marked with deprecated: true so editors can warn users.
Assisted-by: Claude Sonnet 4.5 via Crush
Replace co_authored_by boolean with trailer_style enum supporting:
none, co-authored-by, and assisted-by.
The assisted-by option follows Fedora's AI Contribution Policy which
requires transparency about AI assistance via 'Assisted-by: [Model
Name]' commit message trailers.
https://docs.fedoraproject.org/en-US/council/policy/
ai-contribution-policy/
Assisted-by: Claude Sonnet 4.5 via Crush
* feat: LSP implementation using x/powernap
Replace custom LSP client implementation with the `charmbracelet/x/powernap` library, significantly reducing codebase complexity by removing ~12,000 lines of custom LSP protocol handling code. This migration introduces:
- **Simplified client architecture**: Replace custom LSP transport, protocol, and method handling with powernap's battle-tested implementation
- **Enhanced workspace support**: Add workspace markers and inactive LSP server detection capabilities from powernap
- **Improved configuration**: Integrate powernap's default LSP server configurations and settings
- **Reduced maintenance burden**: Remove custom protocol definitions, JSON marshaling, and transport layer code
- **More features**: e.g. workspace root markers, starting LSP servers only where these files exist
The refactor maintains existing functionality while leveraging powernap's robust LSP client foundation, making the codebase more maintainable and feature-rich.
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
chore: updates
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: code review
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* revert: unwanted change
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: improve code
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: schema
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: improve merge
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: unneeded changes
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: several fixes
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: more cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: use csync
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: did close
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: remove unused code
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: clean
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* refactor: improve func
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: http client debug
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>