These 52 commits are when the Protocol Buffers files have changed:
| Commit: | 49cb3f6 | |
|---|---|---|
| Author: | laminar-coding-agent[bot] | |
| Committer: | GitHub | |
refactor(LAM-1653): port query-engine to in-process Rust in app-server (#1834) * refactor(LAM-1653): port query-engine to in-process Rust in app-server Replace the standalone Python gRPC query-engine service with an in-process Rust implementation built on the sqlparser crate. SQL validation and JSON<->SQL conversion now run inside app-server (src/query_engine/in_process/) behind an enum_dispatch QueryEngineTrait seam, eliminating the network hop and the separate service deployment. - Remove the query-engine/ dir, its .proto, build.rs codegen, the Grpc engine variant, and all QUERY_ENGINE_URL / docker-compose wiring. - Validator preserves the Python security semantics verbatim: SELECT-only, blocked functions, project_id rejection, table allowlist, and v0-view project scoping. - Frontend camelCase JSON contract (sql/types.ts) preserved. - 54 Rust tests ported 1:1 from the Python suites (35 validator, 14 json_to_sql, 5 sql_to_json). tsc --no-verify: all type errors are pre-existing (asset module declarations + recharts v3 types per CLAUDE.md known issue); the one touched frontend file (terminal.tsx) is clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor: pass &TimeRange into get_time_range_conditions Remove the unwrap() that relied on the caller's is_some() check; thread the &TimeRange through from build_where_clause's if-let so the invariant is enforced by the type system. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: escape single quotes in string filter values format!("'{s}'") produced invalid SQL for values containing apostrophes (e.g. O'Brien -> 'O'Brien'). Double embedded single quotes per ClickHouse's escaping convention; sqlparser de-doubles on parse so the round-trip through sql_to_json stays byte-identical. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(LAM-1653): respect table alias when extracting traces time bounds When a query aliases the traces table (FROM traces t WHERE t.start_time >= …), the alias-qualified time predicates were dropped, leaving the traces_v0 view function with epoch-wide defaults and scanning far more data than the filter implies. Accept a qualifier matching the table's alias in addition to the literal `traces`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Fail closed on tokenizer error in raw-expression comment check contains_sql_comment is part of the raw-expression security boundary; returning false on a tokenizer error was fail-open. Reject (return true) instead so an unparseable fragment can't slip past the comment check. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Fix saturating i64 cast in format_number f64->i64 cast saturated large whole-number filter values (e.g. 1e19 became i64::MAX). f64's Display already drops the trailing `.0` for whole numbers without scientific notation or saturation, so render through it directly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Strip alias from validated raw metric expression validate_raw_expression returned the full projection (including any user `AS` alias) instead of the alias-stripped inner expression used for the security checks. A raw column like `countIf(...) AS foo` produced invalid `(... AS foo) AS \`value\`` once metric_sql re-wrapped it. Return inner_expr. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Strip alias from safe_column_expr metric column safe_column_expr returned the full projection (including any user `AS` alias), so a metric column like `cost AS total` produced invalid `sum(cost AS total) AS \`alias\`` once metric_sql re-wrapped it. Match the alias-stripping the raw-expression path already does. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fixes after rebase, remove start_time params in traces * workaround downstream bug with parsing IN without parens * docs: reword query-engine notes to avoid negative existence claims Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * small further update to claude.md to keep info fresh --------- Co-authored-by: Robert Kim <skull8888888@gmail.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: Din <dinmukhamed.mailibay@gmail.com> Co-authored-by: cursor[bot] <cursor[bot]@users.noreply.github.com>
| Commit: | 412adbc | |
|---|---|---|
| Author: | laminar-coding-agent[bot] | |
| Committer: | GitHub | |
feat(pii-redactor): standalone CPU gRPC service for PII redaction (LAM-1612) (#1773) * feat(pii-redactor): standalone CPU gRPC service for PII redaction (LAM-1612) New top-level crate at pii-redactor/. Loads any HuggingFace token-classification model exported to ONNX (model.onnx + tokenizer.json + config.json with BIO id2label) and exposes a single PiiRedactorService.Redact RPC that takes a list of texts and returns the same list with PII spans replaced by [REDACTED_<LABEL>] placeholders. CPU-tuned: ORT GraphOptimizationLevel::Level3, intra/inter thread knobs, tokio spawn_blocking + per-session semaphore so concurrent requests don't contend on a single ORT session. App-server is intentionally not wired up — this PR delivers only the service. Dockerfile bakes ./models/ into the image and pins ONNX Runtime 1.20.0 shared lib, so the container boots without any external resources. See pii-redactor/README.md for weight-prep + test instructions. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(pii-redactor): handle BIOES tag scheme + document OpenAI privacy filter prep The OpenAI privacy filter (openai/privacy-filter) tags spans with BIOES (B-/I-/E-/S-) rather than BIO. Extend span decoding to handle E- (close current span) and S- (single-token span); BIO emitters are unaffected since they never emit E-/S-. Update the README with concrete download instructions for the privacy filter (including ONNX external-data shards) and the smaller quantised variants that make sense on CPU. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): recover from poisoned session mutex; verify ORT tarball Address greptile review feedback on PR #1773: - engine.rs: a panic during ORT inference would poison the session Mutex, so .unwrap() turned a single panic into a permanent outage of that slot (the entire service with --num-sessions=1). The session itself is reusable across panics; recover via into_inner(). - Dockerfile: the libonnxruntime.so 1.20.0 release asset is now SHA-256 verified before extraction, so a tampered or substituted upstream tarball can't sneak a malicious native library into the image. Hash exposed as ORT_SHA256 build-arg next to ORT_VERSION for easy bumping. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): propagate semaphore close error instead of panicking acquire_owned() can only fail if the semaphore is closed (which we never do today), but unwrap() is the wrong default — propagate via anyhow so any future change that does close the semaphore surfaces as a clean gRPC error rather than a panicked tokio task. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): record needs_token_type_ids once on first session Previously the flag was reassigned every loop iteration, so only the final session's value survived — fine in practice (all sessions load the same model.onnx) but sloppy. Latch on first session via Option + get_or_insert_with so future readers don't have to verify that the loop is idempotent. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(pii-redactor): cap texts per Redact request Reject Redact RPCs that carry more than PII_MAX_TEXTS_PER_REQUEST texts (default 1024) with RESOURCE_EXHAUSTED. Prevents a misbehaving client from forcing the engine to allocate a giant Vec<String> + spawn ceil(n / max_batch_size) blocking tasks each holding ONNX tensors. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): clamp max_batch_size and max_seq_len to >= 1 slice::chunks(0) panics, so PII_MAX_BATCH_SIZE=0 (whether via flag or env) would crash on the first non-empty Redact request rather than fail at startup. Clamp at the same place we already do for num_sessions; also clamp max_seq_len since 0 would silently turn every text into a no-op (.min(0) = 0). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): verify logits batch dim matches input count Before iterating texts and calling logits.index_axis(Axis(0), i), check that dims[0] == batch. A mismatched export or an ORT quirk that returns fewer rows would otherwise panic on the first out-of-range i and surface as a JoinError rather than a clean Status::internal. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): treat gap ids in id2label as "O", not empty label LabelMap stores ids in a Vec sized to max_id + 1, so any non-contiguous id2label leaves "" at the gap index. lookup()'s unwrap_or("O") only handled out-of-bounds ids, so a gap id returned "" — split_bioes classifies that as ("X", "") and bioes_spans treats it as a PII span, producing "[REDACTED_]" placeholders. Fall back to "O" on empty too. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix * accept list of stringified json * feat(app-server): redact span input/output via pii-redactor gRPC When `PII_REDACTOR_URL` is set, app-server connects to the pii-redactor service at startup and threads a clonable client into both the cloud SpanHandler and the data-plane DataPlaneSpanHandler. Inside `process_span_messages`, after provider conversion and before size accounting / dedup / CH insert / Quickwit indexing, spans whose attributes carry `lmnr.should_remove_pii = true` get their `input` and `output` JSON values stringified, batched into a single Redact RPC, and written back from the response — every storage tier sees the redacted content. RPC failures are logged and the batch continues with original content (best-effort: redaction never blocks ingest). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): reserve room for special tokens in chunk size The chunk size check tokenized without special tokens but inference re-encodes with them (CLS/SEP for BERT-family). Texts at exactly chunk_size content tokens would feed chunk_size + overhead tokens to the model, overflowing positional embeddings on models whose max_position_embeddings == chunk_size. Probe the tokenizer at load to derive special_overhead and store effective_chunk_size = chunk_size - special_overhead. Use it for both the single-window threshold and the sliding-window stride/end so content-token slices always leave room for the special tokens added at inference. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): pop session from pool to match permit count Round-robin selection over Vec<Mutex<Session>> let a freed permit pick a still-busy session while another sat idle, blocking on the mutex under variable-length workloads (chunked vs single-window inputs). This contradicted the design goal of queuing cleanly instead of contending on one ORT session. Replace with a Mutex<Vec<Session>> pool: hold the lock only long enough to pop a session at the start and push it back at the end. The permit count equals the pool size so a permitted task is guaranteed to find an available session. The session is returned even on inference error so a transient failure can't shrink the pool and let permits over-promise availability. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(pii-redactor): redact after dedup, target only new LLM messages For LLM spans flagged with `lmnr.should_remove_pii=true`, redact only the newly-deduped input messages (those about to be inserted into `llm_messages`) plus output. For non-LLM spans, redact full input + output as before. Move the redaction call after `build_dedup_batch` and before the `llm_messages` ClickHouse insert / size accounting / Quickwit indexing, so every storage tier sees the redacted bytes without paying redaction compute for input messages already seen earlier in the trace. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): return session to pool via RAII guard Replace the manual pop / push-after-result-closure with a SessionGuard whose Drop hands the session back. Covers normal exit, error returns, and panics inside `session.run()` uniformly — without the guard, an unwind would skip the push and permanently shrink the pool while the semaphore kept handing out permits for it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat: project-level PII redaction toggle (Pro-tier gated) Replace the per-span `lmnr.should_remove_pii` attribute with a project- level `projects.remove_pii` boolean. The flag rides on the same row as `ProjectWithWorkspaceBillingInfo`, so the redaction decision lookup is free after the first batch via the existing `project:{id}` Redis cache. Pro-tier gated server-side (UI greys the toggle) so a forged request can't enable redaction on a Free / Hobby workspace. The toggle action invalidates the app-server cache before returning. Redaction runs in `process_span_messages` after `build_dedup_batch` and before the `llm_messages` insert. For dedup'd LLM spans whose `span.input` is `None` post-LAM-1608, redaction targets `dedup.messages[k].content` directly — Quickwit indexing and `llm_messages` share that buffer, so a single update covers both storage tiers. Already-seen messages were redacted on first emit and ride the wire as hashes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): actually sub-batch detect_spans_batch by max_batch_size `PII_MAX_BATCH_SIZE` was advertised in CLI help / README / PR description but discarded with `let _ = args.max_batch_size`. The whole `rendered` vec was passed to `detect_spans_batch` as one unit, so an operator tuning the flag for memory bounding saw no effect. Wire `max_batch_size` into `GrpcServer` and chunk `rendered` before dispatch. Concurrency within a sub-batch is still gated by the session permit pool; the chunking only bounds the peak in-flight task / per-text memory burst on near-cap requests. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): redact full union of overlapping different-label spans When the sliding-window decoder labels the same byte range differently in adjacent windows, two spans can overlap after same-label merging (e.g. `[0..10] private_email` followed by `[5..25] private_personal_information`). The previous `s < cursor` skip dropped the entire second span, so its un-covered tail (bytes `[10..25]`) passed through the final drain unredacted. Skip only when the span is fully behind the cursor (`e <= cursor`); otherwise clip its start to `cursor` so the un-redacted tail is still covered. Add tests for the overlapping-different-label and fully-subsumed cases. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redactor): refresh dedup span_content_bytes after redaction `build_dedup_batch` populates `dedup.span_content_bytes[dedup_idx]` from pre-redaction `content.len()`. `redact_spans_in_place` then mutates `dedup.messages[idx].content` in place — without an adjustment, the post-dedup input-bytes loop bills the workspace using the stale pre-redaction sizes for every project that has `remove_pii=true`. Track msg_idx → dedup_idx while building the redact request, then on write-back replace the message's old length with the redacted length in `span_content_bytes` so the loop sees current bytes. Matches the comment on `estimate_size_bytes` ("size reflects redacted content"). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(pii-redaction route): require auth + project membership The PATCH endpoint touched `projects.remove_pii` with no session check and no ownership validation — any caller could toggle redaction for an arbitrary project id, including silently DISABLING it on someone else's project to bypass the Pro-tier gate (which only blocks enabling). Add explicit `getServerSession` + `isUserMemberOfProject` check at the top of the handler, returning 401 / 403 JSON. Don't call `requireProjectAccess` — it `redirect()`s to /sign-in and `notFound()`s, which is the right shape for page navigations but not for an API route the client expects to read as JSON. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor: project settings as JSONB column Replace per-column project setting flags with a single `projects.settings JSONB` column. Adding a setting now means adding a typed field on each side — Zod on the Next.js write path, serde on the Rust read path — no migration. Migration 0086 swaps the previous `remove_pii BOOLEAN` for `settings JSONB DEFAULT '{}'`, backfilling rows where `remove_pii` was true into `{"removePii": true}`. Existing migration 0085 is preserved since it's already shipped on this branch. Writes are Next.js-only: - `updateProjectSettings` in `lib/actions/project/settings.ts` accepts a strict-Zod `Partial<ProjectSettings>`, applies per-key tier gates server-side, merges via Postgres `||` (no read-modify-write race), and invalidates the app-server's `project:{id}` Redis cache. - `PATCH /api/projects/:id/settings` is the public surface, gated on session + project membership. Reads on the Rust side go through `ProjectSettings` with serde defaults on every field, tolerating older rows / unknown keys. Malformed JSON falls back to defaults with a warning rather than poisoning the cache. PII redactor reads `info.settings.remove_pii` instead of the flat field. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(project cache): bump key version after settings JSONB shape change Moving `remove_pii` into nested `settings` changes the JSON shape of cached `ProjectWithWorkspaceBillingInfo` entries. Existing entries from a prior build of this branch (staging / dev previews) still carry top-level `removePii`; serde drops that field and applies default `settings`, so `settings.remove_pii` reads false on cache hits even when Postgres has the toggle on — ingest would silently skip PII redaction until TTL. Bump `PROJECT_CACHE_KEY` to `project:v2` on both sides. The two cache key constants must stay in sync — the frontend invalidates entries the app-server fills, so a drift would orphan Postgres writes from cache reads. Old `project:{id}` entries TTL-expire harmlessly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor: collapse projects.settings migration history Both prior migrations on this branch (0085 added `remove_pii`, 0086 swapped to JSONB) only ever ran on staging — neither shipped to prod. Squash them into a single 0085 that adds `settings JSONB DEFAULT '{}'` directly. Drop the `project:v2` cache key bump in lockstep: with no prior in-prod shape of `ProjectWithWorkspaceBillingInfo`, the bump was solving a problem that didn't exist (old caches deserialize fine — `settings` defaults to empty, matching what Postgres returns post-migration). Re-applied staging schema to match the new migration so devs running this branch don't hit a checksum mismatch. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(pii-redaction): instrument redactor + Security tab + upgrade button - `redact_spans_in_place` now carries a tracing instrument span with `recordable_spans`, `batch_size` (texts dispatched to the Redact RPC), `dedup_messages`, `whole_inputs`, `whole_outputs` fields. The actual RPC await runs inside a nested `pii_redactor.rpc` span so its latency is chartable separately from the surrounding bookkeeping. `resolve_opted_in_projects` gets its own `unique_projects` / `opted_in` span. - Move the PII redaction toggle out of General into a new Security tab in project settings (icon: shield-check). Keeps General focused on rename / delete; Security becomes the natural home for any future data-handling controls. - Next to the "Pro plan required" badge (when the toggle is greyed out on Free / Hobby tiers), add a small "Upgrade plan" button linking to `/workspace/{id}?tab=billing` so the user can reach the upgrade flow in one click instead of hunting the sidebar. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Robert Kim <skull8888888@gmail.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
| Commit: | 25075d4 | |
|---|---|---|
| Author: | Robert Kim | |
feat: add Custom SQL metric support to dashboard chart builder Allow users to write raw SQL expressions as custom metrics when creating dashboard charts, reusing the SQL editor component from evaluation run tables. The custom SQL expression is passed through the query pipeline and injected directly into the generated ClickHouse query. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| Commit: | 1801e52 | |
|---|---|---|
| Author: | Robert Kim | |
feat: add Custom SQL metric support to dashboard charts (LAM-1035) Add a "Custom SQL" option to the dashboard chart metric function dropdown, allowing users to write raw SQL expressions for column definitions. This reuses the SQL editor component from the evaluation run table feature, with schema-aware autocomplete and AI assist capabilities. Changes: - Add `raw_sql` field to Metric in protobuf definitions (both app-server and query-engine) - Add `raw` metric function with `rawSql` field to frontend TypeScript types - Add "Custom SQL" option to MetricsField with embedded SQLEditor and alias input - Update Python query engine to handle raw SQL metrics in json_to_sql and sql_to_json - Add 5 new test cases for raw SQL metric conversion and roundtrip Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| Commit: | 3b6e571 | |
|---|---|---|
| Author: | Rakhman Asmatullayev | |
| Committer: | GitHub | |
logs ingestion (#1181) * logs ingestion * ui: logs tab * check project usage in grpc endpoint * remove unused file * chore * use existing recursive function for calculating attributes size * move auth functions in auth mod * remove dropped_attributes_count field * revert file delete * revert fe changes * chore * chore
| Commit: | 034698b | |
|---|---|---|
| Author: | Rakhman Asmatullayev | |
logs ingestion
| Commit: | 6bdbf7e | |
|---|---|---|
| Author: | Rakhman Asmatullayev | |
| Committer: | GitHub | |
quickwit search (squash all) (#1041)
| Commit: | b1168fe | |
|---|---|---|
| Author: | Olzhas Nurpeisov | |
| Committer: | GitHub | |
feat: add open source sql conversion for open source (#1028) * feat: add open source sql conversion for open source * feat: migrate default charts * feat: restore lock file
| Commit: | 30fde21 | |
|---|---|---|
| Author: | Olzhas Nurpeisov | |
| Committer: | GitHub | |
feat: ui chart builder LAM-856 (#1027) * feat: ui chart builder wip * feat: WIP * feat: update protos, WIP * feat: update proto, update schema, form * feat: update schemas, update types, fix comments * feat: separate endpoints * feat: default order by, chart responsiveness, total field
| Commit: | 6e332c8 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
query engine for self-hosted (#878) * query engine for self-hosted * fix ellipsis, add trace tags * fix docker compose
| Commit: | a254f94 | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
query engine for self-hosted
| Commit: | 64cc41a | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
query engine for self-hosted
| Commit: | cf20fe0 | |
|---|---|---|
| Author: | Din | |
query engine for self-hosted
| Commit: | 77ee0d4 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
remove python agent manager (#807) * remove python agent manager * remove mentions from contributing.md
The documentation is generated from this commit.
| Commit: | 3f24282 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
update API to return response with vec (#785) * update API to return response with vec * propagate SQL error to user * try format query * remove query string from error message * better find query start * wrap error message to json * remove debug console log * small formatting fixes; raise limit to 512MB * return status 400 on CH bad response * safety: santize both 400 and 500
| Commit: | a36125d | |
|---|---|---|
| Author: | Din | |
propagate SQL error to user
| Commit: | a586cdc | |
|---|---|---|
| Author: | Olzhas Nurpeisov | |
| Committer: | GitHub | |
feat: add query engine grpc (#771)
| Commit: | 99fc85a | |
|---|---|---|
| Author: | Olzhas Nurpeisov | |
feat: update sql query
| Commit: | a2da487 | |
|---|---|---|
| Author: | Olzhas Nurpeisov | |
feat: add query engine grpc
| Commit: | 7edea77 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
remove unused machine manager (#705)
| Commit: | 39d96af | |
|---|---|---|
| Author: | Din | |
remove machine manager proto as well
| Commit: | 5675e56 | |
|---|---|---|
| Author: | Din | |
pass disable give control and user agent params
| Commit: | 706718c | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
remove mentions of pipelines (#525)
| Commit: | 6258c12 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
remove any mentions of semantic search and python executor (#524) * remove any mentions of semantic search and python executor * lint fix
| Commit: | 015c659 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
add openai and gemini providers (#512)
| Commit: | ea2c7de | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
error chunk, agent configs, update frontend deps (#507) * error chunk, agent configs, update frontend deps * Update app-server/src/agent_manager/worker.rs Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * fix frontend build (downgrade novnc) * update pnpm lock * add start_url to agent request and rebase migrations --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
| Commit: | 244b495 | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
error chunk, agent configs, update frontend deps
| Commit: | 98a0c0f | |
|---|---|---|
| Author: | Din | |
wip: add storage state
| Commit: | 33bd76c | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Feat/agent manager - screenshots (#471) * squash agent-manager migrations (#462) * Merge pull request #470 from lmnr-ai/screenshots Screenshots
| Commit: | 65c5db8 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Merge pull request #470 from lmnr-ai/screenshots Screenshots
| Commit: | a35eba1 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Python agent manager (#461) * docker-compose. TODO: test after releasing changes * build agent-manager for container registry * add info in README
| Commit: | 97f1662 | |
|---|---|---|
| Author: | skull8888888 | |
| Committer: | GitHub | |
control (#457)
| Commit: | d5fc901 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
add steps limits (#455) * control * add cookies, write timestamp, skip serializing state * write action_result to db on assistant messages * minor: changed actionResult key to camelCase * fix to stream cancelling when leaving page * trace_id and session_id * separate table for agent_chats * cancel agent session * trace cancel session * fixes to cancel * fix * add steps limits * add step count, fix frontent build * updates to trace_id proto * user id and stop session --------- Co-authored-by: Robert Kim <skull8888888@gmail.com>
| Commit: | b2c139d | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Feat/agent manager (#448)
| Commit: | b2c42c7 | |
|---|---|---|
| Author: | Robert Kim | |
refactor
| Commit: | 049f87a | |
|---|---|---|
| Author: | Din | |
cookies and cdp_url
| Commit: | 480aea2 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Agent manager (#436) * wip: agent-manager call * change to mpsc (single-consumer mode) and fix stream * add project id + further fixes * move channel, remove message-history * add retry on sending chunk to channel * add message id to stream * close stream on error, fix empty channel, update state management * allow passing old agent state in API as well
| Commit: | 23b1d83 | |
|---|---|---|
| Author: | Din | |
close stream on error, fix empty channel, update state management
| Commit: | 6ce24a7 | |
|---|---|---|
| Author: | Din | |
move channel, remove message-history
| Commit: | 77b72ef | |
|---|---|---|
| Author: | Din | |
wip: still figuring out rabbit
| Commit: | 33e25cf | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
wip: agent-manager call
| Commit: | c138f51 | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
Search (#375) * tmp * update clickhouse init sql * wip: trying search * update indices and implement frontend search * remove bm25 and sparse embeddings * add default limit on search --------- Co-authored-by: Robert Kim <skull8888888@gmail.com>
| Commit: | 2ac996e | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
store spans in qdrant + search (#321) * wip: store spans in qdrant * lint, fix build
| Commit: | c17ca7c | |
|---|---|---|
| Author: | Dinmukhamed Mailibay | |
| Committer: | GitHub | |
store only metadata in qdrant (#316) * wip: store only metadata in qdrant * further fixes * add filter by metadata to api request
| Commit: | 44e69e3 | |
|---|---|---|
| Author: | skull8888888 | |
| Committer: | GitHub | |
Machine (#292) new dockerfile + machine api
| Commit: | 9cce384 | |
|---|---|---|
| Author: | Robert Kim | |
added sandbox api
| Commit: | 52a8964 | |
|---|---|---|
| Author: | Robert Kim | |
tmp
| Commit: | 00fc811 | |
|---|---|---|
| Author: | Robert Kim | |
v0 of jupyter sandbox
| Commit: | b10be47 | |
|---|---|---|
| Author: | skull8888888 | |
| Committer: | GitHub | |
Sync changes (#53) synced changes --------- Co-authored-by: Din <dinmukhamed.mailibay@gmail.com>
| Commit: | d9cc64b | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
events dashboard, grpc ingestor, next v14.2
| Commit: | 1c79f2a | |
|---|---|---|
| Author: | Temirlan Myrzakhmetov | |
| Committer: | GitHub | |
Single user, clickhouse, docker compose (#4) * prepare front-end for single placeholder user * bring-in some changes, add rabitmq, prepare sql and compose * Remove unused grpc files * Clickhouse for docker compose * frontend changes * bring-in backend updates * bring README from other branch + some fixes to it * minor fixes in readme, newest changes for app-server, clickhouse initializer script --------- Co-authored-by: Din <dinmukhamed.mailibay@gmail.com> Co-authored-by: Robert Kim <skull8888888@gmail.com>
| Commit: | ac24e94 | |
|---|---|---|
| Author: | Din | |
| Committer: | Din | |
initial commit