Update CODEOWNERS for studio and cli (#4266)

* Update CODEOWNERS for studio and cli

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Daniel Han 2026-03-12 15:16:38 -07:00 committed by GitHub
commit 96ff5c5f61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 9 deletions

9
.github/CODEOWNERS vendored
View file

@ -1,5 +1,14 @@
# Inspired from https://github.com/vllm-project/vllm/blob/main/.github/CODEOWNERS
/cli/ @rolandtannous @Manan17
/studio/frontend/ @Shine1i @Imagineer99 @rolandtannous @Manan17
/studio/frontend/public/ @Shine1i @Imagineer99
/studio/backend/ @rolandtannous @Manan17 @Shine1i
/studio/backend/core/data_recipe/ @Shine1i @rolandtannous
/studio/backend/tests/ @rolandtannous @danielhanchen
/tests/ @rolandtannous @danielhanchen
/scripts/ @rolandtannous @danielhanchen
/unsloth/models/loader.py @danielhanchen @mmathew23
/unsloth/models/llama.py @Datta0 @danielhanchen @mmathew23
/unsloth/models/rl.py @Datta0 @pluesclues @danielhanchen

View file

@ -298,8 +298,10 @@ def _build_llama_cpp():
def _force_remove_readonly(func, path, exc_info):
"""Clear read-only flag and retry — needed on Windows for .git pack files."""
import stat
os.chmod(path, stat.S_IWRITE)
func(path)
shutil.rmtree(llama_dir, onerror = _force_remove_readonly)
unsloth_home.mkdir(parents = True, exist_ok = True)

View file

@ -77,10 +77,10 @@ def precache_helper_gguf():
except Exception as e:
logger.warning(f"Failed to pre-cache helper GGUF: {e}")
finally:
try:
enable_progress_bars()
except Exception as e:
pass
try:
enable_progress_bars()
except Exception as e:
pass
def _run_with_helper(prompt: str, max_tokens: int = 256) -> Optional[str]:
@ -608,7 +608,6 @@ def _run_multi_pass_advisor(
# ── Pass 2: Map columns to roles ──
logger.info("Pass 2: Mapping columns to roles...")
t2 = time.monotonic()
messages2 = [
{
@ -702,7 +701,9 @@ def _run_multi_pass_advisor(
# Validate: must have at least one user AND one assistant
roles_present = set(column_roles.values())
if "user" not in roles_present or "assistant" not in roles_present:
logger.warning(f"Pass 2 sanity fail: missing user or assistant role: {column_roles}")
logger.warning(
f"Pass 2 sanity fail: missing user or assistant role: {column_roles}"
)
return None # triggers fallback to simple classification
# ── Pass 3: System prompt (non-conversational datasets only) ──
@ -752,7 +753,9 @@ def _run_multi_pass_advisor(
},
]
raw3 = _generate_with_backend(backend, messages3, max_tokens = 256)
logger.info(f"Pass 3 done ({time.monotonic() - t3:.1f}s): {raw3[:200] if raw3 else None}")
logger.info(
f"Pass 3 done ({time.monotonic() - t3:.1f}s): {raw3[:200] if raw3 else None}"
)
if raw3:
# Pass 3 returns raw text, not JSON — clean it up
@ -777,8 +780,9 @@ def _run_multi_pass_advisor(
user_notification = " ".join(note_parts)
total_time = time.monotonic() - t0
logger.info(f"Advisor complete ({total_time:.1f}s): type={dtype}, mapping={suggested_mapping}, sys_prompt={bool(sys_prompt)}, label_map={bool(label_map)}")
logger.info(
f"Advisor complete ({total_time:.1f}s): type={dtype}, mapping={suggested_mapping}, sys_prompt={bool(sys_prompt)}, label_map={bool(label_map)}"
)
return {
"success": True,