Skip to content

[pull] main from BloopAI:main#27

Merged
pull[bot] merged 504 commits intoMu-L:mainfrom
BloopAI:main
Mar 23, 2024
Merged

[pull] main from BloopAI:main#27
pull[bot] merged 504 commits intoMu-L:mainfrom
BloopAI:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented May 31, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

ggordonhall and others added 28 commits August 25, 2023 10:47
* Skip further syncing if we detect a network error

* Make user identify calls tolerant towards connection loss

* remove github status endpoint usage

* Shouldn't be a breaking change

* Persist the whole credentials structure to cache github username & other details

* Better logging in Tauri

* Fix tests

* Add `credentials_upgrade` field to config to signal to FE

* Explicitly propagate 401 errors early

* Fix test

* fix a typo

* Use cached value instead of live

* Fix user removals

* Upgrade `gix` and `reqwest`

* Upgrade all remaining compatible dependencies

* add auth message for old users

* improve check for credentials upgrade

* improve message styling

* Update expect tests

* type fix

* Revert "Update expect tests"

This reverts commit ae27cae.

* Revert "Upgrade all remaining compatible dependencies"

This reverts commit 3dce10a.

* Revert "Upgrade `gix` and `reqwest`"

This reverts commit 999befe.

* Add doc comment

---------

Co-authored-by: anastasiia <anastasiya1155@gmail.com>
* set new env vars to config.json for github workflow

* remove github client id from workflow

* add closing speech marks

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
* add splash screen to tauri app until config returns response

* add splash screen to tauri app until config returns response

* remove circular progress

* theme adjustments, fading animation

* add localization

* refetch config after a second after server started
* Separate out Embedder abstraction

* Gather embed WIP

* Batch embeddings

* Support remote embedding generator

* Return with the results if the queue is already empty

* make embedding server url configurable via helm

* Add better logging

* Make cache management better contained

* Use `/encode` as path for the query

* fix qdrant deployment path

* adding gzip compression for batched embedding response

* Renamings

* Rearrange embedder vs cache roles for batching

* More renamings

* RemoteEmbedder is ee

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: rafael <22560219+rmuller-ml@users.noreply.github.com>
Co-authored-by: shoito <shoito@users.noreply.github.com>
* Specify on-disk qdrant collections

* Address review comment
* Simplify caching dependencies

* Moving closer to the parent obj

* Synchronize caches & all databases

* Comments & renamings

* Address review comments
* add code-navigation utilites to code-studio  (#881)

- utility to extract the "value" of definitions:
  `ScopeGraph::value_of_definition` uses a heuristic to find a possible
  value for the definition. it is defined as the smallest surrounding
  scope or the largest adjacent scope. variable definitions or local
  definitions typically will not have an scope node "nearby", and their
  "value" can be assumed to span the containing line.

- add /related-files endpoint: uses scope-graphs to calculate a closure
  of files related to a target file. request and response schema are
  subject to change.

- add /token-value endpoint: exposes `ScopeGraph::value_of_definition`
  to the webserver. request and response schema are subject to change.

* Add fuzzy path search endpoint (#883)

* scratch implementation

* tidy up

* wip: remove  type queries

* wip: cleanup

* fix failing test

* address some review comments

* Initial Code Studio API (#884)

* Add initial code studio routes

* Use path instead of query string in routes

* Return token count in GET

* Return 0 tokens for hidden files

* Return new ID in `POST /studio`

* Count full file tokens in studio when no ranges passed (#886)

Passing `ranges: []` will now be interpreted as a whole-file inclusion in the studio.

* classify related-files into files-importing and files-imported (#885)

* classify related-files into files-importing and files-imported

- files-imported: list of files imported in this file
- files-importing: list of files importing this file

these lists may have overlaps and may not be complete because they use
just scope-graphs and not search-based navigation.

* improve performance of /related-files

- run files_imported and files_importing simultaneously; this should
  halve the response times
- sprinkle `par_bridge`s around, this will no to much given we already
  have data-level parallelism at the top-level.

there is more to gain on the table: the search-space can be reduced
dynamically as we discover files; but this is probably not necessary for
the time being.

* Add `/studio/:id/generate` for response generation (#891)

This route returns an SSE stream of `Result<String, String>`, which
are JSON objects that look like:

```
{"Ok":"Some generated answer..."}
```

Or in the event of an error, with an error string:

```
{"Err":"some error string..."}
```

Streams are terminated with a `[DONE]` message.

* add endpoint to add relevant chunks of related file (#897)

* Add `/studio/import` (#895)

This route accepts a query parameter in the form `?thread_id=...`. It
must be called from a logged-in state. When successful, it will return a
string for the new studio ID.

A new studio is created with a name equal to the the conversation title
and with its context imported, collapsing exchange code chunks.

Additionally, `studio.context` JSON objects have been modified such that
`branch` is now optional.

* Count message and prompt tokens in studio (#900)

Returned token count objects now look like:

```
{ total: number, messages: number, per_file: [number] }
```

Note the addition of a new `messages` field. `messages` contains the token
count of the current conversation, and `total` now also includes
`messages` in the sum.

Additionally, we count the number of tokens that are part of the base
prompt, with the use of an empty context, and include this in the new
`messages` count, and thus `total` count.

* Add `DELETE /studio/:id` (#899)

* Filter files imported to studio using GPT (#907)

* Filter files imported to studio using GPT

* Update server/bleep/src/webserver/studio.rs

Co-authored-by: calyptobai <111788964+calyptobai@users.noreply.github.com>

---------

Co-authored-by: calyptobai <111788964+calyptobai@users.noreply.github.com>

* replace levenshtein fuzzy matching with skim fuzzy matcher (#906)

this should work more like how sublime text's search. generally, the
following changes in behavior are expected:

- better search results for camel and snake-case identifiers: a corpus
  containing `scope_resolution` is matched by `scores`
- ranks prefix matches higher: `res` matches both `resolution` and
  `progress`, but `resolution` will be ranked higher
- ranks file hits higher than directory hits
- ranks documents with hits near the file-stem higher than those with
  hits around the ancestor directories

atleast one of the trigrams present in the query string must occur in
the document. this gives us ~5x speedup on larger indexes.

* only limit ranges of related-files if they are defs (#919)

* Add CRUD template functionality (#915)

* CRUD template functionality

* Fix warnings

* Add unit test default template and update sqlx offline build

* Add some more default templates

Unit test and code review

* Fix newlines in default templates

* Change primary key for templates to i64

* Ensure correct ID is returned for template creation

* Update studio prompt

* Add optional `?studio_id=...` parameter to `POST /studio/import` (#910)

This makes it possible to import a conversation into an existing studio, merging contexts.

* Parallelize token counting in studio (#925)

* List studio repos and top file extension (#920)

* return a list of used repos in code studio + most used file extension based on number of tokens

* fix rustfmt

* address review comments

* fix sqlx data

---------

Co-authored-by: Akshay <nerdy@peppe.rs>

* Track studio generation and import events (#916)

**WARNING: This will wipe the `studios` table when run. Studios are
still an in-dev feature so this should not have consequences for any
real users.**

---

Now, we track successful studio import calls, and generation requests
alongside associated response strings.

A few things were changed here:

- A new `StudioEvent` type was introduced, following the existing
  pattern for `QueryEvent`
- Event filtering was only used with a boolean telemetry check, so this
  was cleaned up in order to support telemetry checks for non-query
  events
- The `sqlx/uuid` feature was enabled so that we can natively use UUIDs
  in queries. **This required a migration to move away from `TEXT`-based
  UUIDs to `BLOB`-based UUIDs. All entries in `studios` are dropped.**

Note that `QueryEvent` and `StudioEvent` are intentionally not merged,
as the `QueryEvent` type must remain stable because our analytics
database schema relies on the type in order to describe table columns.

Rather, a similar event was added but specialized to Studio-related
data. In the long term, we may want to consider a refactor to merge
these two types, but this may require an analytics migration.

* Implement snapshot-based studio history (#926)

This PR adds "snapshots" to studios. By default, using the routes as
before changes nothing, but new "snapshots" are created during `/import`
and `/generate` calls. When a snapshot is taken, the current state is
saved and duplicated. Most routes are by-default unaware of this, here are
the complete changes:

- `GET /studio` retrieves the full list of studios, each titled and dated
  by their latest snapshot
- `GET /studio/:id` returns the "latest" snapshot, but optionally takes
  `?snapshot_id=...`
- `PATCH /studio/:id` operates on the "latest" snapshot, but optionally
  takes `?snapshot_id=...`
- `DELETE /studio/:id` works as before, but also deletes **all**
  associated snapshots
- `POST /studio/:id/import` works as before, but now implicitly creates a
  new snapshot on successful import
- `GET /studio/:id/generate` works as before, but now implicitly creates a
  new snapshot on successful generation

To manage these snapshots, we add 2 new routes:

- `GET /studio/:studio_id/snapshots`
  - This will return a list of snapshots, which look like:
    ```ts
    {
      id: number,
      modified_at: date string,
      context: [...],
      messages: [...]
    }
    ```
- `DELETE /studio/:studio_id/snapshots/:snapshot_id`
  - This deletes the snapshot

* Take `user_id` into account for studio routes (#931)

This adds a new `user_id` column to the `studios` table and ***will thus
drop all existing studios to avoid a table with null IDs***.

* Studio: get file tokens (#935)

* add a separate endpoint to get file tokens

* refactor: extract function

* Add proxy billing routes (#933)

Here, we add 2 new routes:

- `GET /api/quota`: This will return an object like
  `{ upgraded: boolean, used: number, allowed: number }`
- `GET /api/quota/create-checkout-session`: This will create a checkout
  session if the user is new, or if they have already purchased a plan,
  return a link to adjust the plan. The returned object looks like
  `{ url: string }`, with a Stripe URL.

Additionally, each call to `/studio/:id/generate` will be quota-limited,
such that after `used` hits the `allowed` request count, future calls will
fail. The front-end can ensure we don't hit an error here by disabling the
`Generate` button when the `used` value is above `allowed`.

Note that the Answer API must be quota-enabled for this to work.
Instructions are listed in commit 4902af68 for the relevant repo.

* Change studio ID type from UUID to integer (#938)

All uses of UUIDs to manage the `studios` table have been switched to a
plain `INTEGER` as a primary key.

**Warning**: This will drop the current studio tables. Given that a core
ID was changed and the feature is not yet released, we just clear them
instead of a more complex migration.

* Proxy quota API `reset_at` field (#941)

* Fix lints

---------

Co-authored-by: akshay <nerdy@peppe.rs>
Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: Louis Knight-Webb <louis@bloop.ai>
Co-authored-by: Anastasiia Solop <35258279+anastasiya1155@users.noreply.github.com>
* create new type of tab

* add new code studio tab

* render code studios

* add file to context, part 1

* refactoring

* some fixes

* select line ranges

* mock related files

* minor fixes

* remember repo choice

* use new api to search files

* clear individual range

* add apis

* clear conversation

* add related files

* add related files

* fix bug with range selector

* add tokens usage colored circle

* improved related files

* templates tab

* history tab

* improve translations

* small fixes

* ensure range limits

* do not allow adding same file multiple times

* remove message from conversation

* dirty implementation of answer generation

* Louis/code studio frontend (#892)

* Update how delete, hide/show and add related files are shown on each file row

* Group files by repo / branch
Update the token usage visual

* scroll conversation to bottom

* improve context file display name

* code ranges select and scroll

* fix scroll in conversation

* improve markdown rendering

* improve markdown rendering

* ui fixes

* search on home screen

* add related files with ranges

* fix conversation messages disappearing

* import files and conversations to code studios

* tiny patch

* Louis/code studio tweaks (#909)

* Improve loading state of conversations and add

Hide input during generation
Add retry option which removes all subsequent conversation turns

* Lints and remove console logs

* implement new apis

* some fixes

* add autosave every 2 seconds

* make panels resizeable

* skip repo selection for code studios with one repo

* make sure file name is visible in related files dropdown

* edit message button

* auto-scroll to first range in file panel

* reduce font size in conversation

* fix margins between markdown elements

* show full file path in tooltip

* small fix

* fix copy button

* fix adding file to new code studio

* merge ranges for related files before adding to context

* fix syncing github repo

* templates

* allow importing chat into existing code studio

* add language icon to code studio cards

* Add cancel button to studio generation and move all buttons to bottom (#930)

* stop generation, take 2

* rename code studio

* move copy button

* disable click on code studio card if repos are indexing

* token limit exceded message

* request related files only after click on button

* design update to distinguish between user and assistant messages

* use breadcrumbs for file name

* implement history, first take (without using snapshot_id)

* bigger language icons on code studio and repo cards

* make panel resizer wider

* fix no results message when searching repos/studios on home page

* move history panel to third column

* add submit/cancel buttons to file panel

* disable selecting repos that are indexing

* add templates shortcut

* change input handling in conversation

* move token limit exceeded message

* Add invert and scroll with momentum

* minor fixes

* set last user message as input

* open file panel on the right

* fix switching between files

* improve long studio names in cards

* improve rendering large files

* use opacity to indicate transition when switching between tabs

* recalculate tokens in currently open file on each range change

* billing

* refetch quota on error

* update user dropdown icons

* fix search bar in file panel, show full breadcrumbs with fading

* Copy changes to upgrade and quota (#940)

* some fixes

* refetch user quota once in 10 minutes and on code studio open

* upgrade popup, rework restoring snapshot

* fix types

* fix selecting lines above/blow the screen

---------

Co-authored-by: Louis Knight-Webb <louis@bloop.ai>
Japanese people find it easier to understand when the color is in English, so I improved it. Also improved the color order to match en.json.

Co-authored-by: Anastasiia Solop <35258279+anastasiya1155@users.noreply.github.com>
* fix adding file to context when there are no code studios

* sort studios in context selection list by last modified by default
* Catch non-existent files in studio functions

* handle context unavailable on the FE

---------

Co-authored-by: anastasiia <anastasiya1155@gmail.com>
Co-authored-by: Anastasiia Solop <35258279+anastasiya1155@users.noreply.github.com>
Now, conversations will persist in the database even if they do not
properly complete. Failed conversations are still not persisted with
this change, intentionally.
ggordonhall and others added 29 commits December 15, 2023 15:00
* remove unused summary/conclusion logic

* Set timestamp when concluding answer

* Restore line number offset logic in transcoder, fix tests

---------

Co-authored-by: calyptobai <calyptobai@gmail.com>
* check for low soft limit

* remove hard limit check
* use keyword filter for path matches in proc

* extract search params into struct

* remove clippy allow

* set exact_match to false for code search
…c tools (#1180)

* saving work

symbol tool

add metadata to code tool chunks

showing metadata

add github to repo

filter empty symbols

fixing some bugs, dedup

fmt

adding aliases

add code to symbol tool

new prompt

add chunk to exchanges

adding symbol ids

save work

now working

adding filter

save work

saving work

remove function call

get ref def outside of exchange

impl agent

refdef to chunks

clean chunk generation

filter_chunks

filter_chunks in new file

fix repo_ref

add to proc

delete symbol tool

warnings

adding constants

relative_path field revert to text

user query simplified

repo_ref to accept github and local

remove filter action, make a function for llm call

better naming and adding comments

fmt

adding some error handling

* fix error handling

* clippy

* fmt

* wip: refactor changes

* using snippet from file_symbol

* adding repo_ref, reverting empty filter, adding filter comments

* tokeninfo response not pub anymore

* simplifying how we update path in a chunk

* symbol alias instead of chunk alias

* moving prompt to prompts.rs

* reverting filter

* fix unwrap in get_token_info

* adding some comments

* typo

* better doc

* make start_byte/end_byte usize and move function call def into prompts.rs

* log selected symbol

* unwrap_or_default

* revert Cargo.lock

* latency

* use all hoverable symbols, tokeninfo only for the selected one

* no function_calling

* filter out local symbols

* removing unused functions

* clippy filter_map

* prompt improved

* fix explanation and add a const

* reformat prompt and inline llm call

* remove dbg! calls

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: Akshay <nerdy@peppe.rs>
* translation fix, pull config on self-serve

* fix line numbers in symbol search
fix assign clause in select statements

create a new definition out of the ident used in
assign clauses

remove redundant tests
* wip: multi-repo

wip: multirepo

wip: multirepo

Use RepoPath in more places

Minor things

Clippy & some small things

Resurrect explain endpoint

Add Project to link references

Clean up call sites to semantic search

Always search on display name

We can propagate multiple repos, so this shouldn't be needed

Scope fuzzy queries to a project

Use RepoRef in RepoPath

Use RepoPath for relative_path refs

Add back sqlx data

Add back branch filters to fuzzy matching

This is just awful

Eh, need correct json here

---------

Co-authored-by: rsdy <p@symmetree.dev>

* update answer prompt for multi-repo

* WIP: projects

* WIP: projects

Back-end API changes include:

- Addition of `projects` table
  - Studios now live *inside* a project
  - Ownership was moved from studios to projects
- New routes:
  - `GET /api/projects`: returns a list of:

    `[ { id: number, name: string, modified_at: date string } ]`

  - `POST /api/projects/`: takes in a body like:

    `{ name: string | null }`

    Note: there is a default name generated here if not provided, "New Project"

    This route returns a string body which is the ID

  - `GET /api/projects/:id`: if the project exists, returns:

    `{ name: string }`

  - `POST /api/projects/:id`: updates a project, takes a body of:

    `{ name: string }`

    Returns nothing

- Additionally, all `/api/studio/...` routes have been moved to
  `/projects/:id/studios/..`
  - Note: `studio` was changed to `studios`
  - Note: all routes remain otherwise unchanged

* WIP: Projects

* WIP: Projects

* WIP: Projects

* WIP: Projects - refactoring conversation threads for multi-project context

* WIP: Projects

As part of this change, we add some new routes for project repo
associations.

- `GET /projects/:id/repos` returns a list of:

  `[ { ref: string } ]`

- `POST /projects/:id/repos`: takes in a body like:

  `{ ref: string }`

  This adds the repo by repo ref to the list of repos in a project

- `DELETE /projects/:id/repos/:repo_ref` deletes the repo from the
  project repo list

* WIP: Projects

As part of this change, we now return a complete `Repo` object when
retrieving `GET /projects/:id/repos`.

Tooling for the agent was also adjusted.

* WIP: Projects

Here, we add `most_common_langs` to `GET /projects` and`GET /projects/:id`

We also add routes for project to doc associations.

- `GET /projects/:id/docs` returns a list of:

  ```
  [
    {
      id: number,
      url: string,
      index_status: string,
      name: null | string,
      favicon: null | string,
      description: null | string,
      modified_at: date string,
    }
  ]
  ```

- `POST /projects/:id/docs`: takes in a body like:

  `{ doc_id: number }`

  This adds the doc by ID to the list of docs in a project

- `DELETE /projects/:id/docs/:doc_id` deletes the doc from the project doc
  list

* WIP: Projects

Add branches to `project_repo` associations

* WIP: Projects

Add constraints and foreign keys on new project models

* WIP: Projects

Amongst other patches, we introduce some API changes here.

- We move `/q` to `/projects/:id/q`:
  - This no longer takes a `repo_ref` argument. Now, this route will
    infer the related repositories based on repos associated with the
    requested project.
- We move `/search/path` to `/projects/:id/search/path`
- We add a new `GET /folder` route, which is like `/file` but retrieves
  directory data. Internally, this route makes an `open:`-style query.

* fix repo tantivy search (#1174)

* Fix conversation store/load

* Add `PUT /projects/:id/repos`, change `DELETE /projects/:id/repos/:id`

We add `PUT /projects/:id/repos`, which accepts an object:

```
{ "ref": repo ref, "branch": branch name or NULL }
```

Additionally, `DELETE /projects/:id/repos/:repo_ref` was changed to just
`DELETE /projects/:id/repos/:id`, where the `repo_ref` value was moved
to a JSON object in the request body:

```
{ "ref": repo ref }
```

* Avoid JSON body in `DELETE /projects/:id/repos`

Now, we use a query parameter to indicate the repo ref: `?ref=...`

* Filter repos in semantic search by query repos, if present

* Sync docs in background, whether stream still exists

* Return thread_id in conversation routes

- `GET /projects/:id/conversations/:id` now returns an object like:

  ```
  { thread_id: string, exchanges: [...] }
  ```

  Note that previously, this just returned the list of exchanges.

- `GET /projects/:id/conversations` now returns an additional field in
  each item:

  ```
  { thread_id: string, ...previous fields }
  ```

* Fix handling of `conversation_id` with `/answer`

* Fix routing for `DELETE /projects/:id/conversations/:id`

* Use `conversation_id` instead of `thread_id` in `GET /answer`

Rather than returning an initial JSON object, we introduce a new
`ChatEvent` type, and return the conversation ID on stream end upon
successful store.

* Return errors with debug formatting

* Fix more rebase errors

* Indexing status reporting improvements (#1192)

* repo index status reporting fixes

* report whether is resync in index progress

* rework sync logic for docs (#1186)

* rework sync logic for docs

- replace `/sync` with `/enqueue`; a non-streaming replacement to add
  items to the doc-sync queue
- introduce `/status` and `/cancel`; to stream updates for a syncing
  document or to cancel a sync job
- convert `/resync` to http from sse
- internal updates to `/list` to work with the new queue system

* track metadata update in progress stream

* handle possible error state

* Fix tests

* Run cargo fmt

* Path search edits (#1200)

* add repo name to path tool answer, use skim_fuzzy_path_match instead of fuzzy_path_match and use only repos from the project

* filter fuzzy path search by language and remove unused code paths

---------

Co-authored-by: rafael <22560219+rmuller-ml@users.noreply.github.com>

* Add repos to answer action prompt and step prompt (#1198)

* Add repos to answer action prompt and step prompt

* limit number of tokens for symbol classification

* tweak prompt text

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>

* Restrict queries on `/q` to only return results valid for a project (#1203)

We rewrite the parsed set of queries to restrict them such that they only return valid results.

* Restrict queries on `/q` to only return results valid for a project

* Add project ID to autocomplete

* Fix repo autocomplete

* fix default for repo deduplication in semantic search

* Fix autocomplete for path and lang queries

* Send back context data in studio list route

* Fix code search on local repos (#1204)

* Fix code search on local repos

We were making semantic queries with the full stringified repo ref.
Instead, we should have been constructing a semantic query using the
repository display name.

It seems that this was fixed coincidentally in #1190 via a condition
(which might now be possible to remove).

* Use indexed name in semantic query construction

* Add fields to list studios (projects) (#1205)

* return token counter, doc_context and full context in list studios route

* make studio prompt multi-repo (#1208)

* save onboarding status on user profile (#1210)

* Anastasiia/autocomplete page size (#1211)

don't override page_size from api_params

* return token counts for studio snapshots (#1212)

* fix clippy (#1213)

* return None if parent commit does not exist (#1214)

* fix SQL query that retrieves a list of docs for project (#1216)

* Fix autocomplete repo match (#1218)

* make repo_name ; make autocomplete and folder queries case insensitive; remove repo.display_name()

* use stringified repo_ref in prompt

* bump version to 0.6.0

* fix blocking status endpoint (#1217)

the status reporting endpoint can drop the lock over the tantivy index
once it has a handle to the progress stream.

* Migrate existing databases to new project schema

* Fix lints

* app redesign

* disable right click in prod mode

* add files to code studio

* project dependant autocomplete

* some fixes

* add selection hint

* studio conversation

* studio conversation design fixes

* studio navigation using left sidebar

* indexing docs, add docs to projects

* some fixes

* add docs to studios

* polishing studios

* usage popover

* add tutorial cards

* search docs

* fixes

* quick fix

* minor fixes

* fix apply diff

* feedback fixes

* feedback fixes 2

* feedback fixes 3

* dedupe studios, pass page_size to autocomplete

* studio response loading state

* studio history

* add repo to project when it finished indexing

* ensure there are no duplicates in file search, fix error handling in chat

* testing fixes

* add missing translations, clean up locales files

* doc fixes

* improve mouse handling in arrow navigation is command bar

* testing fixes

* rework arrow navigation

* rework arrow navigation, use context

* add arrow navigation to all dropdowns

* minor fixes

* improve header wrapping when adding to studio

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: rsdy <p@symmetree.dev>
Co-authored-by: calyptobai <calyptobai@gmail.com>
Co-authored-by: akshay <nerdy@peppe.rs>
Co-authored-by: rafael <22560219+rmuller-ml@users.noreply.github.com>
Co-authored-by: calyptobai <111788964+calyptobai@users.noreply.github.com>
* focus first item on search changed

* fix model param name

* set focus on the panel where user types, fix scroll to line when clicking from chat

* fix missing highlights in left sidebar for currently focused tab

* fix long names in command bar items

* don't add repos to project automatically, but add a button to 'indexing finished' toast
This fixes code search against repos where the name is longer than 5
characters.

The general strategy here is to bail out of case permutations if any
tokens in the generated token stream are too long. This means that for a
query like `repo:foobar quux`, the `quux` portion will match in a
case-insensitive fashion, while the repo `foobar` must match case
exactly.
* support alternative input type for chinese users

* add input type to settings to allow users to choose input type
* handle agent symbol resolution panics

* fix compile errors

* revert clippy allows
* detach input value from chat persistent state

* fix ts error
@pull pull bot merged commit 87da96f into Mu-L:main Mar 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.