Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@artmoskvin artmoskvin released this 12 Nov 12:09
· 17 commits to main since this release
cfe7bc5

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

Full Changelog: v0.4.1...v0.5.0