Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
eec7c27
Refactor dependencies in pyproject.toml: categorize optional dependen…
anthonypdawson Apr 17, 2026
747af78
Enhance installation process and provider management
anthonypdawson Apr 17, 2026
6347ba5
Make run.sh executable
anthonypdawson Apr 17, 2026
1bbcb3f
feat: add provider installation dialog and enhance settings dialog
anthonypdawson Apr 19, 2026
8f09463
Add tests for ProviderInstallDialog and enhance SettingsDialog featur…
anthonypdawson Apr 19, 2026
409975b
chore: update version to 0.8.0 and add requests dependency
anthonypdawson Apr 19, 2026
ca3eea9
feat: update release notes for version 0.8.0 with enhanced installati…
anthonypdawson Apr 19, 2026
90739e4
chore: remove outdated files modified section from release notes
anthonypdawson Apr 19, 2026
40cc0c5
Refreshed pdm.lock with dep groups
anthonypdawson Apr 21, 2026
d3ec949
feat: enhance provider detection and installation logic, improve erro…
anthonypdawson Apr 22, 2026
ad6cb05
refactor: simplify monkeypatching for missing modules in tests
anthonypdawson Apr 22, 2026
a03af77
Refactor provider installation and uninstallation services
anthonypdawson Apr 24, 2026
4860983
feat: install all development dependencies for CI tests
anthonypdawson Apr 25, 2026
d630fae
fix: ensure provider value is updated correctly in ProfileEditorDialog
anthonypdawson Apr 25, 2026
ba14dcb
refactor: update PDM install command to use --extras flag and clean u…
anthonypdawson Apr 25, 2026
df8bd13
refactor: update PDM install commands to use dependency groups instea…
anthonypdawson Apr 25, 2026
841a569
fix: update PDM install command to correctly include development depe…
anthonypdawson Apr 25, 2026
aa6b538
feat: enhance ProfileEditorDialog with provider configuration and con…
anthonypdawson Apr 26, 2026
f3e0325
feat: enhance tests for ProfileEditorDialog with provider configurati…
anthonypdawson Apr 26, 2026
c1dda61
feat: add guidelines for code cleanup and refactoring practices
anthonypdawson Apr 26, 2026
8021532
feat: add pytest import and skip logic for missing dependencies in te…
anthonypdawson Apr 26, 2026
7eda641
feat: enhance tests with dynamic provider availability checks and ski…
anthonypdawson Apr 26, 2026
28374a1
feat: add dynamic checks for pyarrow and package availability in tests
anthonypdawson Apr 26, 2026
f3dd5b9
feat: add slow marker for tests and import pytest in visualization se…
anthonypdawson Apr 26, 2026
3faf218
feat: add configuration-driven profile manager with declarative field…
anthonypdawson Apr 26, 2026
375578f
feat: block signals during provider repopulation to prevent unwanted …
anthonypdawson Apr 26, 2026
6bf3369
feat: improve error handling for absent sentence_transformers and tra…
anthonypdawson Apr 26, 2026
73f7d7d
feat: refactor tests to use get_connection_class for provider connect…
anthonypdawson Apr 26, 2026
8b6804e
Review: progressive installation PR — no code changes needed
Copilot Apr 30, 2026
a3a8443
feat: rename Chroma to ChromaDB in various components and add public …
anthonypdawson Apr 30, 2026
5364a75
feat: reorder import statements in _handle_install for better organiz…
anthonypdawson Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/instructions/coding.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,53 @@ known-first-party = ["vector_inspector"]

If you update these settings in `pyproject.toml`, please mirror the change here.

## Code Cleanup & Refactoring Practice

**After solving a problem or completing a refactor, always do a cleanup pass to remove or update redundant code.**

When debugging or implementing features, it's common to:
- Try multiple approaches before finding the solution
- Add temporary workarounds or debugging code
- Create helper methods that become obsolete when a better solution is found
- Leave behind commented-out code or unused imports

**Before considering the work complete:**

1. **Search for related code** that may now be redundant:
- Old helper methods that the new solution replaces
- Temporary workarounds that are no longer needed
- Duplicate logic that could be consolidated
- Commented-out debugging code or failed attempts

2. **Remove or update:**
- Unused methods and functions
- Dead code paths (if statements that can never be true)
- Redundant error handling after centralizing it
- Overly complex logic that can now be simplified
- Debugging print statements or temporary logging

3. **Update documentation:**
- Remove comments explaining workarounds that no longer exist
- Update docstrings if method signatures or behavior changed
- Remove TODOs that were addressed during the refactor

4. **Check for consistency:**
- Ensure naming conventions are consistent
- Verify similar patterns are handled the same way
- Look for opportunities to use the new pattern elsewhere

**Example:** When fixing the provider connection type field visibility issue:
- Original attempt: complex `_set_field_and_label_visible()` method with 80+ lines
- Solution: configuration-driven approach with simpler `_set_form_row_visible()` method
- Cleanup pass: removed the old 80-line method and redundant field-hiding code

**Why this matters:**
- Keeps the codebase maintainable and easy to understand
- Reduces confusion for future developers (including yourself)
- Prevents bugs from old code paths being accidentally invoked
- Makes code reviews faster and clearer
- Improves performance by removing unnecessary operations

## Error Handling Convention

Follow these layer-specific rules so errors surface cleanly without leaking implementation details into the UI or swallowing failures silently.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
# LanceDB compatibility: tested against lancedb>=0.27.0 + pyarrow>=14.0.0 (pinned in pyproject.toml).
# If tests fail after a lancedb/pyarrow bump, check delete_items native API detection in lancedb_connection.py.
- name: Install dependencies (dev)
run: pdm install -d
run: pdm install -G dev -G all

- name: Run tests
continue-on-error: true
Expand Down
67 changes: 64 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,64 @@ This is the easiest and most reliable way to get started.

## From PyPI

### Fast Install (Minimal)
Start with just the core app, then add database providers as needed:

```bash
# Install core app only (fast, ~30 seconds)
pip install vector-inspector

# Launch the app
vector-inspector
```

When you connect to a database, the app will prompt you to install the needed provider.

### Recommended Install
Install with commonly used databases and features:

```bash
pip install vector-inspector[recommended]
# Includes: ChromaDB, Qdrant, embeddings, and visualization tools
```

### Full Install
Install everything (all database providers and features):

```bash
pip install vector-inspector[all]
# Same as previous versions - includes all providers
```

### Individual Providers
Install specific database providers:

```bash
pip install vector-inspector[chromadb] # ChromaDB only
pip install vector-inspector[qdrant] # Qdrant only
pip install vector-inspector[pinecone] # Pinecone only
pip install vector-inspector[pgvector] # PostgreSQL/pgvector
pip install vector-inspector[weaviate] # Weaviate
pip install vector-inspector[lancedb] # LanceDB
pip install vector-inspector[milvus] # Milvus
```

### Optional Features
Add embedding models, visualization, or document processing:

```bash
pip install vector-inspector[embeddings] # Text embedding models
pip install vector-inspector[clip] # Image/text embeddings
pip install vector-inspector[viz] # UMAP, t-SNE, clustering
pip install vector-inspector[documents] # PDF, DOCX support
```

You can combine multiple extras:

```bash
pip install vector-inspector[chromadb,qdrant,embeddings,viz]
```

## From a Downloaded Wheel or Tarball (e.g., GitHub Release)

Download the `.whl` or `.tar.gz` file from the [GitHub Releases](https://github.com/anthonypdawson/vector-inspector/releases) page, then install with:
Expand All @@ -84,20 +137,28 @@ vector-inspector
Note: pip install does **not** create a desktop shortcut.
Use the bootstrap installer for the full experience.

### From Source
### From Source (PDM)

```bash
# Clone the repository
git clone https://github.com/anthonypdawson/vector-inspector.git
cd vector-inspector

# Install dependencies using PDM
# Install core dependencies only (fast)
pdm install

# OR install with recommended providers
pdm install -G recommended

# OR install everything (all providers and features)
pdm install -G all

# Launch application
scripts/run.sh # Linux/macOS
scripts/run.bat # Windows
```

**Note for developers**: The dependency groups in `pyproject.toml` can be installed with PDM using `-G <group>`. Available groups: `chromadb`, `qdrant`, `pinecone`, `lancedb`, `pgvector`, `weaviate`, `milvus`, `embeddings`, `clip`, `viz`, `documents`, `llm`, `recommended`, `all`.
---

# 🟩 Running Vector Inspector
Expand All @@ -111,7 +172,7 @@ vector-inspector
### Optional LLM runtime (llama-cpp-python)
llama-cpp-python is optional and only needed for the in-process LLM provider (`llama-cpp`).

- Install via PDM optional-dependency group (developer / recommended):
- Install via PDM dependency group (developer / recommended):

```bash
pdm install -G llm
Expand Down
Loading
Loading