Release v0.5.0
We're excited to announce the latest release of our project. This update brings several significant improvements and bug fixes.
โจ What's New
๐ Local Project Support
Hide now supports working with codebases directly from your filesystem. This is particularly useful for local development, private codebases, and huge repositories, allowing you to use Hide without requiring to pull a remote repository.
cURL
curl --location 'http://localhost:8080/projects' \
--header 'Content-Type: application/json' \
--data '{
"repository": {
"url": "file:///Code/django"
},
"languages": [
"Python"
]
}'
Python
import hide
from hide import model
hc = hide.Client()
# Create project with specific language support
project = hc.create_project(
repository=model.Repository(url="file:///Code/django"),
languages=[model.Language.PYTHON]
)
๐ Document Outline
The new document outline feature provides a structured view of your code, making it easier for agents to navigate through large files and understand code structure at a glance.
cURL
curl --location 'http://localhost:8080/projects/{project_id}/outline/path/to/file.py'
Python
import hide
from hide import model
hc = hide.Client()
project = hc.create_project(
repository=model.Repository(url="file:///Code/django")
)
outline = hc.document_outline(
project_id=project.id,
file="path/to/file.py"
)
โฑ๏ธ Task Management
We've implemented client-side timeouts for running tasks to prevent indefinitely hanging operations and provide better control over long-running processes.
Thank you @wistuba for proposing this feature ๐
cURL
curl --location 'http://localhost:8080/projects/{project_id}/tasks' \
--header 'X-Timeout-Seconds: 10' \
--data ' {
"command": "sleep 50"
}'
Python
import hide
from hide import model
hc = hide.Client()
project = hc.create_project(
repository=model.Repository(url="file:///Code/django")
)
result = hc.run_task(
project_id=project.id,
command="sleep 50",
timeout=10, #time out and release resources after 10 second.
)
๐ ๏ธ Developer Experience
This release includes several improvements to make Hide more developer-friendly.
- Added OpenAPI specification for better API documentation
- Introduced Bruno API collection for easier API testing
- Improved LSP server management with separate process groups and concurrent diagnostics handling
- Fixed issues with diagnostics on closed channels
๐ฎ What's Next?
We're actively working on expanding Hide's capabilities in several exciting directions:
- Adding support for Java and Scala development environments
- Exploring new options for hosting devcontainers
- Evaluating Hide's performance on swe-bench โ if you're interested in driving this benchmarking effort, please reach out to us by [email protected] or join our discord channel https://discord.gg/8aemdtxNF8
๐ Changelog
- pkg/lsp: fixes issue where diagnostics are recieved on a closed channel by @aleh-null in #136
- pkg/handlers: use equals for assertion by @aleh-null in #133
- cmd: remove timeouts by @artmoskvin in #137
- bruno: add hide collection by @artmoskvin in #142
- pkg/lsp: concurent diagnostics handling by @aleh-null in #140
- pkg/lsp: run in separate process group for graceful shutdown by @aleh-null in #143
- pkg/project: support local projects by @artmoskvin in #144
- pkg/handlers: use methods consts from http pkg by @aleh-null in #145
- implement document outline by @aleh-null in #146
- add openapi spec by @artmoskvin in #152
- pkg/handlers: implement client side timeouts for running tasks by @aleh-null in #155
Full Changelog: v0.4.1...v0.5.0