Skip to content

Releases: silex-tec/silex

Silex 0.12.1

Choose a tag to compare

@iasaol iasaol released this 07 Sep 04:07

Silex 0.12.1

Recommended install (official channel):

pip install --upgrade silex-archaeology

The wheel attached to this release is an alternative path when pip install from PyPI is not available to you. PyPI is always the source of truth: https://pypi.org/project/silex-archaeology/

pip install https://github.com/silex-tec/silex/releases/latest/download/silex_archaeology-py3-none-any.whl

Fixed

  • silex.business_logic.submit now verifies the anchor against the workspace's chunks. The "anti-hallucination lock" only checked that provenance fields were present; a rule whose file:line did not exist in the workspace was persisted (real case: PaymentMethod.cs:75-88 in a 43-line file). Unknown file (anchor_file_not_in_workspace), ambiguous suffix (anchor_file_ambiguous), lines outside every chunk (anchor_outside_chunks, with the file's known ranges returned so the agent can fix it) and evidence not found in the file (evidence_not_in_file) are now rejected atomically. When no mirror can be resolved, verification is skipped with a visible mark (anchor_verification: skipped_no_mirror), never a silent accept and never a block.
  • The silex.community.code_pack budget now applies to the whole envelope. Budget selection only shrank members; edges and scope.classes were sent in full on every page, so a large community returned 102,882 chars for max_total_chars=6000. Edges now paginate with their source member (the union of all pages still rebuilds every edge, no loss, no duplicates) and scope.classes lists only the members served on that page. Measured on Silex itself: page 1 went from 102,882 to 4,327 chars.

Added

  • Optional db_path on silex.business_logic.submit; a verified rule carries provenance.anchor {verified, chunk_id, method, file}; the response carries report.anchor_verification and n_anchor_verified.
  • order (relevance = intra-scope degree, the default | name) and member_filter (member name or file suffix; unmatched values reported in filter_unmatched) on silex.community.code_pack, so the file you are asking about lands on page 1.
  • The freshness git hook now ingests new, renamed and deleted files (--name-status; explicit allow_unknown opt-in in mark_paths_stale).

Changed

  • community_code_pack/v5: edges_in_scopeedges_total_in_scope plus edges_in_page; default member order is by relevance (entity_pack keeps name order).

Since v0.12.0

Patch release. The free MCP kit keeps the same 12 tools; two tools gained optional parameters (db_path on submit; order and member_filter on code_pack) and the public tool reference was regenerated.

Site & docs: https://silex.tec.br

Silex 0.12.0

Choose a tag to compare

@iasaol iasaol released this 06 Sep 20:57

Silex 0.12.0

Recommended install (official channel):

pip install silex-archaeology

The wheel attached to this release is an alternative path when pip install from PyPI is not available to you. PyPI is always the source of truth: https://pypi.org/project/silex-archaeology/

pip install https://github.com/silex-tec/silex/releases/latest/download/silex_archaeology-py3-none-any.whl

Fixed

  • The free tier never reaches Neo4j, Qdrant or a paid LLM (Azure APIM) by accident of environment. The decision is now made by tier, before any driver import or socket. Previously a .env plus a reachable endpoint made a free scan write to the graph (hours of linking) and community detection call a paid model once per class/module. Heavy stages now report skipped: true, reason: "tier_free"; progress-event shape unchanged. An unknown SILEX_TIER value is treated as free everywhere.
  • The community map now covers procedural code. Module-level functions join the map through the module identity (the file is the "class" for Python/JS). On Silex itself, Python chunks outside any community dropped from 70% to 0.05%, and silex.community.code_pack reaches that code with file:line anchors. Edges with ambiguous names are dropped and counted, never guessed.
  • Chunking faithful to the code. Decorated functions and classes become chunks; build/lib, *.egg-info, caches and Silex's own artifacts stay out of the scan; a full scan purges ghost chunks and canonicalizes the workspace id in the mirror (on Silex: 84,134 → 40,755 chunks, zero ghosts); god functions/methods land as a parent plus cohesive blocks (symbol_block, id {parent}#bNNN), and the code pack returns blocks instead of a single 15k-token chunk.
  • Freshness covers new, renamed and deleted files. The git hook now reads --name-status, so a newly committed file is ingested by the partial rescan without a full scan; renamed files leave no ghost chunks on the old path; deleted files are removed together with their edges. The hook reports added= renamed= deleted= modified= counts.

Added

  • SILEX_EXTRA_STORES=neo4j,qdrant — explicit, declared opt-in that re-enables the heavy stores on the free tier (comma-separated). It never enables the paid LLM provider. result["heavy_stores"] reports the decision.
  • Freshness git hook (silex-fresh-hook-install): post-commit/post-merge mark touched files as stale and re-ingest only those into the mirror. Works with a workspace rooted in a monorepo subdirectory.
  • scripts/measure_map_coverage.py — community-map coverage per language.
  • Smoke scenarios smoke-chunk/chunk-01..04, smoke-mcp/mcp-06 (procedural map), smoke-mcp/mcp-07 (free tier under a hostile environment with a network sentinel) and smoke-fresh/fresh-04 (hook ingests new/renamed/deleted files).

Changed

  • community_code_pack/v4: module members, god-symbol header plus ordered blocks; entity_pack and get_structural_findings resolve member → chunks through the same helper.
  • CONTRACT_DEVICE unset now means auto: cuda when a GPU is available, otherwise cpu; an explicit value always wins.
  • get_provider("azure") outside legacy/pro/enterprise raises LLMProviderBlockedInTier (code: "llm_provider_unavailable_in_tier"). Operations note: server-side enrichment and scripts that used APIM without declaring a tier now fall back to Ollama or a structured error — set SILEX_TIER=pro.
  • SqliteExtractorInput filters symbol_block; list_chunks(include_blocks=False) by default, so extractors, communities and retrieval receive the same set as before.

Since v0.11.42

0.12.0 is the first minor bump since 0.11.42. It is fully backward compatible for the free MCP kit (12 tools, same names and schemas); tool descriptions were regenerated for the public reference.

Site & docs: https://silex.tec.br

Silex 0.11.42

Choose a tag to compare

@iasaol iasaol released this 30 Aug 17:02

Silex 0.11.42

Instalação recomendada (canal oficial desde 0.11.37):

pip install silex-archaeology

O wheel neste release existe como caminho alternativo enquanto o pip install
não estiver disponível para você; a fonte da verdade é sempre o PyPI:
https://pypi.org/project/silex-archaeology/

Desde o v0.11.36

  • 0.11.37 — publicação automática no PyPI via Trusted Publishing (OIDC);
    annotations MCP de segurança em todas as tools; manifesto do MCP Registry
    oficial (io.github.silex-tec/silex).
  • 0.11.38silex.entity.pack: agregado inteiro numa chamada, atravessando
    comunidades; scan_phase no get_workspace_stats; gaps críticos honestos;
    FSM de domínio sem ruído de enums de infraestrutura.
  • 0.11.39entity.pack v2 (hop-do-repositório + fronteira declarada);
    grafo enxerga argumento genérico (DbSet<T>, IRepository<T>); packs
    devolvem JSON plano (sem re-embrulhamento).
  • 0.11.40 — cap em shared_literals para evitar payloads MCP de vários MB
    em repositórios grandes.
  • 0.11.41 — fix crítico: policy de governança do runner agora empacotada
    no wheel (FileNotFoundError no import fora do checkout de dev).
  • 0.11.42 — fix crítico: import incondicional de fcntl quebrava o boot
    do MCP server no Windows; locking de arquivo agora cross-platform.

Changelog completo: https://github.com/silex-tec/silex-monorepo/blob/main/src/Silex.Arqueologia/CHANGELOG.md

Site & docs: https://silex.tec.br

Silex 0.11.36 — first public release

Choose a tag to compare

@iasaol iasaol released this 14 Jul 15:05

First public release of the silex-archaeology wheel (free tier).

pip install https://github.com/silex-tec/silex/releases/latest/download/silex_archaeology-py3-none-any.whl

Then connect silex-mcp-server to your MCP client — full guide: https://silex.tec.br/docs/