Repository navigation
Conversation
Adds an Indexes page listing every index with its document count and
size on disk, and a page per index with tabs for its fields and
configuration, its documents (paged one at a time or looked up by key),
and its raw JSON definition. Both go through the Azure SDK.
Along the way:
- Implement GET /indexes/{name}/stats (index statistics).
- Serialize the index listing like the single-index route, so
GetIndexesAsync no longer fails on scoring-profile text weights and
the listing includes semantic configurations.
- search=* matches every document even when the index has no
searchable fields.
- Render aria-selected and aria-busy as "true"/"false", so the selected
tab on the Search page is styled and announced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #91.
Adds an Indexes page to the dashboard (
/browse, linked from the header between Status and Search) and a page per index (/browse/{name}). Everything goes through the Azure SDK, like the Search page.The pages live under
/browsebecause/indexesand/indexes/{name}are the API's own routes.What the pages show
Emulator changes
GET /indexes/{name}/stats(SearchIndexClient.GetIndexStatisticsAsync). ReturnsdocumentCount,storageSizeandvectorIndexSize.storageSizeis the combined size of the index's files, so it isn't comparable to Azure's figure.vectorIndexSizeis always 0, because vectors are stored in the same files.GetIndexesAsyncfailed on any index with scoring-profile text weights. The listing used OData's serializer, which wrote the weights as[{}]and left out semantic configurations and other unmodelled properties. It now uses the same JSON asGET /indexes/{name}, with$selectapplied by hand.ListEndpoint_DoesNotYetIncludeUnmodelledProperties, which documented the old gap, is nowListEndpoint_IncludesTheFullDefinition.search=*returned 400 on an index with no searchable fields. A wildcard now matches every document, as in Azure.Dashboard fixes
truebool attribute asaria-selected="", which neither the CSS nor screen readers treat as selected.aria-busyhad the same problem. Both are now written as"true"/"false".Dashboard/ErrorEnvelope.csso both pages show the emulator's message rather than the SDK's full exception dump.Tests
GET /indexesstill answers with JSON),GetIndexesAsyncreturning full definitions, andGetIndexStatisticsAsyncbefore and after uploading documents.🤖 Generated with Claude Code