Skip to content

docs(backlog): mark DEBT-028 resolved, file FEAT-025 (quota enforcement unwired)#115

Merged
fvadicamo merged 2 commits into
developfrom
docs/debt-028-resolved-feat-025-quota-enforcement
Jul 15, 2026
Merged

docs(backlog): mark DEBT-028 resolved, file FEAT-025 (quota enforcement unwired)#115
fvadicamo merged 2 commits into
developfrom
docs/debt-028-resolved-feat-025-quota-enforcement

Conversation

@fvadicamo

Copy link
Copy Markdown
Contributor

Documentation only. No code changes.

DEBT-028 → resolved

Shipped in #114 (plannedresolved, PR ref added, acceptance criteria checked). A scope note records what it did not do: it corrected the chunk count to go through count_chunks(), but nothing calls check_namespace_quota in the ingest path — so the quota is enforced nowhere. That gap is now its own entry.

FEAT-025 (new, medium)

REQ-048 (priority must) names quota enforcement in its Phase 2 scope. The infrastructure exists — the namespaces table carries quota_documents/quota_chunks, and check_namespace_quota now counts correctly through the vector store — but no path calls it. An operator can set quota_chunks=1000 and ingest sails straight past it: a configurable, unenforced control.

Same family as DEBT-032 (REQ-064's "cleanup afterwards" clause): an unbuilt clause of a must requirement, not debt. Filed as a FEAT because it is a capability to build, not a regression.

On priority — stated honestly: spec-priority (must) and operational urgency diverge. Quota enforcement matters for multi-tenant; the current single-tenant e-learning deployment does not need it today. Tagged medium, not high (raise it when multi-tenant lands), and not low (a configurable control that silently does nothing is a trap — an operator who sets a quota expects it to hold).

🤖 Generated with Claude Code

…nt unwired)

DEBT-028 shipped in #114 (planned -> resolved). Its scope note records what it did
NOT do: it corrected the chunk *count* to go through count_chunks(), but nothing in
the ingest path calls check_namespace_quota, so the quota is enforced nowhere.

FEAT-025 files that gap. REQ-048 (must) names quota enforcement in its Phase 2 scope,
the table columns and the (now-correct) check function exist, but an operator can set
quota_chunks=1000 and ingest sails past it — a configurable, unenforced control. Same
family as DEBT-032: an unbuilt clause of a must requirement, not debt. Tagged medium,
not high, because it matters for multi-tenant and the current deployment is single-
tenant; not low, because a configurable control that does nothing is a trap.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@fvadicamo fvadicamo added the documentation Improvements or additions to documentation label Jul 15, 2026
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • .s2s/BACKLOG.md is excluded by !.s2s/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d070bb7b-1c47-4681-9fb0-722e19184930

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/debt-028-resolved-feat-025-quota-enforcement

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the backlog to mark the chunk quota counting issue (DEBT-028) as resolved and adds a new planned feature (FEAT-025) to wire namespace quota enforcement into the ingest path. Feedback was provided regarding the proposed approach for FEAT-025, which suggests a direct import from vektra-admin to vektra-ingest, violating the repository's architectural boundary rules. It is recommended to wire these components at a higher integration layer or use a Protocol interface instead.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread .s2s/BACKLOG.md Outdated
…review)

Review follow-up on #115 (gemini): the proposed approach called check_namespace_quota
(in vektra-admin) from vektra-ingest/pipeline.py, which the import-linter contract
'vektra_ingest must not import from other vektra components' forbids (verified:
pyproject.toml forbids vektra_admin for vektra_ingest). It would have failed the lint
gate. Rewritten to two boundary-respecting options — move the logic into vektra_shared
(which vektra_ingest may import), or inject an enforcement hook through the registry
that run_ingest already receives — and added a green-import-linter acceptance criterion.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@fvadicamo fvadicamo merged commit 4e155a5 into develop Jul 15, 2026
24 checks passed
@fvadicamo fvadicamo deleted the docs/debt-028-resolved-feat-025-quota-enforcement branch July 15, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant