Skip to content

Commit a3a1e06

Browse files
fix: trim CODEOWNERS reviewers and stabilize search benchmark
1 parent ac2c4c0 commit a3a1e06

4 files changed

Lines changed: 19 additions & 17 deletions

File tree

.github/CODEOWNERS

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
# Code owners — auto-requested as reviewers on matching paths.
22
# Last match wins; see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
33
#
4-
# Roles:
5-
# Development + code review: @clean6378-max-it (Chen), @timon0305 (Zilin)
6-
# Final approval + merge: @wpak-ai (Will Pak)
4+
# Review owners (development + code review): @clean6378-max-it (Chen), @timon0305 (Zilin)
75
#
8-
# PR authors do not self-merge. Get a code review from Chen or Zilin, then final
9-
# approval from Will before merge.
6+
# Final approval, merge sequencing, and no-self-merge rules are enforced by branch
7+
# protection / automation, not by listing additional owners here.
108

119
# Default owners for the repository.
12-
* @clean6378-max-it @timon0305 @wpak-ai
10+
* @clean6378-max-it @timon0305
1311

1412
# Docs and contributor process
15-
/docs/ @clean6378-max-it @timon0305 @wpak-ai
16-
/CONTRIBUTING.md @clean6378-max-it @timon0305 @wpak-ai
17-
/README.md @clean6378-max-it @timon0305 @wpak-ai
13+
/docs/ @clean6378-max-it @timon0305
14+
/CONTRIBUTING.md @clean6378-max-it @timon0305
15+
/README.md @clean6378-max-it @timon0305
1816

1917
# CI and workflow changes
20-
/.github/ @clean6378-max-it @timon0305 @wpak-ai
18+
/.github/ @clean6378-max-it @timon0305

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ claude-code-chat-browser/
145145

146146
See **[`CONTRIBUTING.md`](CONTRIBUTING.md)** for full setup, conventions, and where to change each layer. New contributors should follow **[`docs/onboarding.md`](docs/onboarding.md)** for a first-PR walkthrough and reading order.
147147

148-
**Maintainer coverage:** commit activity is currently concentrated on a small set of identities (bus-factor risk). Mitigations: [`.github/CODEOWNERS`](.github/CODEOWNERS) splits development/code review (@clean6378-max-it, @timon0305) from final approval and merge (@wpak-ai), plus [`docs/onboarding.md`](docs/onboarding.md) for contributor ramp-up.
148+
**Maintainer coverage:** commit activity is currently concentrated on a small set of identities (bus-factor risk). Mitigations: [`.github/CODEOWNERS`](.github/CODEOWNERS) routes code review to @clean6378-max-it and @timon0305; final merge approval (@wpak-ai) is enforced via branch protection, plus [`docs/onboarding.md`](docs/onboarding.md) for contributor ramp-up.
149149

150150
Quick start:
151151

docs/onboarding.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Recent commit history is concentrated on a small set of identities. If those mai
125125

126126
**Mitigations in this repo:**
127127

128-
- **[`.github/CODEOWNERS`](../.github/CODEOWNERS)**@clean6378-max-it and @timon0305 for development and code review; @wpak-ai for final approval and merge.
128+
- **[`.github/CODEOWNERS`](../.github/CODEOWNERS)**@clean6378-max-it and @timon0305 for code review routing. Final merge approval (@wpak-ai) is enforced via branch protection.
129129
- **This onboarding path** — lowers the ramp for additional contributors to run gates and ship safely.
130130

131131
If you are joining as a reviewer, read the [suggested reading order](#suggested-reading-order) and run the [full local gate](#5-run-the-full-local-gate) once on `master` before approving your first PR.

tests/benchmarks/conftest.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,14 @@ def tracemalloc_peak() -> TracemallocPeak:
5151
def write_jsonl(path: Path, line_count: int, *, first_timestamp: str | None = None) -> Path:
5252
"""Write a JSONL session file with *line_count* rows derived from the template fixture."""
5353
template = json.loads(TEMPLATE_LINE)
54+
if first_timestamp is not None:
55+
base_dt = datetime.fromisoformat(first_timestamp.replace("Z", "+00:00"))
56+
else:
57+
base_dt = _EXPORT_SESSION_BASE.replace(hour=10)
5458
with path.open("w", encoding="utf-8") as f:
5559
for i in range(line_count):
5660
entry = deepcopy(template)
57-
if i == 0 and first_timestamp is not None:
58-
entry["timestamp"] = first_timestamp
59-
else:
60-
entry["timestamp"] = f"2026-06-12T10:{i % 60:02d}:00Z"
61+
entry["timestamp"] = (base_dt + timedelta(minutes=i)).strftime("%Y-%m-%dT%H:%M:%SZ")
6162
if i % 3 == 1:
6263
msg = entry.setdefault("message", {})
6364
if isinstance(msg, dict) and "content" in msg:
@@ -79,8 +80,11 @@ def seed_search_corpus(
7980
"""Create a multi-session project tree under *base_dir* for search benchmarks."""
8081
project = base_dir / "bench-project"
8182
project.mkdir(parents=True, exist_ok=True)
83+
# Keep every message inside the default 30-day search window (see DEFAULT_SEARCH_WINDOW_DAYS).
84+
anchor = datetime.now(UTC) - timedelta(days=1)
8285
for i in range(session_count):
83-
write_jsonl(project / f"session_{i:04d}.jsonl", lines_per_session)
86+
first_ts = (anchor + timedelta(minutes=i * 30)).strftime("%Y-%m-%dT%H:%M:%SZ")
87+
write_jsonl(project / f"session_{i:04d}.jsonl", lines_per_session, first_timestamp=first_ts)
8488
return base_dir
8589

8690

0 commit comments

Comments
 (0)