fix: correct "bugs" to "issues" in routing table and README references across multiple documentation files

This commit is contained in:
2026-06-14 07:48:10 +00:00
parent f79a427f32
commit f2b910ea75
162 changed files with 7011 additions and 1134 deletions
+29 -29
View File
@@ -885,10 +885,10 @@ ACTIONS: tuple[Action, ...] = (
requires_auth=False,
),
Action(
name="list_bugs",
name="list_issues",
method="GET",
path="/bugs",
summary="List bug tickets from the Gitea tracker",
path="/issues",
summary="List issue tickets from the Gitea tracker",
requires_auth=False,
params=(
query("state", "Filter by state: open, closed, or all."),
@@ -896,58 +896,58 @@ ACTIONS: tuple[Action, ...] = (
),
),
Action(
name="create_bug",
name="create_issue",
method="POST",
path="/bugs/create",
summary="Report a bug. It is rewritten by AI and filed on the tracker.",
path="/issues/create",
summary="Report an issue. It is rewritten by AI and filed on the tracker.",
description=(
"Queues a background bug creation job and returns {uid, status_url}. Poll the "
"status_url with bug_job_status until status is 'done', then show the user the "
"bug_url pointing at the filed ticket."
"Queues a background issue creation job and returns {uid, status_url}. Poll the "
"status_url with issue_job_status until status is 'done', then show the user the "
"issue_url pointing at the filed ticket."
),
params=(
body("title", "Bug title.", required=True),
body("description", "Bug description.", required=True),
body("title", "Issue title.", required=True),
body("description", "Issue description.", required=True),
),
),
Action(
name="bug_job_status",
name="issue_job_status",
method="GET",
path="/bugs/jobs/{uid}",
summary="Poll a bug creation job and obtain the filed bug ticket URL once finished",
path="/issues/jobs/{uid}",
summary="Poll an issue creation job and obtain the filed issue ticket URL once finished",
description=(
"Returns the job status. When status is 'done', bug_url and number are populated; "
"Returns the job status. When status is 'done', issue_url and number are populated; "
"while 'pending' or 'running', poll again shortly."
),
params=(path("uid", "Bug job uid returned by create_bug."),),
params=(path("uid", "Issue job uid returned by create_issue."),),
requires_auth=False,
),
Action(
name="view_bug",
name="view_issue",
method="GET",
path="/bugs/{number}",
summary="View a bug ticket and its developer updates",
path="/issues/{number}",
summary="View an issue ticket and its developer updates",
requires_auth=False,
params=(path("number", "The bug ticket number from a /bugs listing."),),
params=(path("number", "The issue ticket number from a /issues listing."),),
),
Action(
name="comment_bug",
name="comment_issue",
method="POST",
path="/bugs/{number}/comment",
summary="Post a comment on a bug ticket, attributed to the current user",
path="/issues/{number}/comment",
summary="Post a comment on an issue ticket, attributed to the current user",
params=(
path("number", "The bug ticket number."),
path("number", "The issue ticket number."),
body("body", "Comment text.", required=True),
),
),
Action(
name="set_bug_status",
name="set_issue_status",
method="POST",
path="/bugs/{number}/status",
summary="Change a bug ticket status (admin only)",
path="/issues/{number}/status",
summary="Change an issue ticket status (admin only)",
requires_admin=True,
params=(
path("number", "The bug ticket number."),
path("number", "The issue ticket number."),
body("status", "New status: open or closed.", required=True),
),
),
@@ -1056,7 +1056,7 @@ ACTIONS: tuple[Action, ...] = (
"Fetches the file at the given URL on the server (size-capped, SSRF-guarded) and stores it "
"as an attachment exactly like an upload, returning {uid, url, mime_type, ...}. Pass the "
"returned uid in attachment_uids when you create_post, create_project, create_gist, "
"create_comment, create_bug, or send_message to attach it. The file type is taken from the "
"create_comment, create_issue, or send_message to attach it. The file type is taken from the "
"URL or its Content-Type; supply 'filename' (with an allowed extension) when the URL has no "
"usable name. Use this to attach an image or file straight from the internet."
),
@@ -18,7 +18,7 @@ def arg(
TYPES = (
"One of: comment, reply, mention, vote, follow, message, badge, level, bug."
"One of: comment, reply, mention, vote, follow, message, badge, level, issue."
)
NOTIFICATION_ACTIONS: tuple[Action, ...] = (
+2 -2
View File
@@ -160,10 +160,10 @@ SYSTEM_PROMPT = (
"loopback addresses are refused.\n\n"
"ATTACHING FILES FROM THE INTERNET\n"
"To attach an image or file that lives at a public URL to something you create (a post, project, "
"gist, comment, bug report, or direct message), call attach_url with that URL. It downloads the "
"gist, comment, issue report, or direct message), call attach_url with that URL. It downloads the "
"file on the server and stores it as a real attachment, returning a uid. Then pass that uid in the "
"attachment_uids field when you call create_post, create_project, create_gist, create_comment, "
"create_bug, or send_message, and the file is attached. Collect several uids to attach more than "
"create_issue, or send_message, and the file is attached. Collect several uids to attach more than "
"one. Do not paste the raw URL into the body when the user wants it attached - use attach_url so it "
"becomes a proper hosted attachment with a thumbnail. The file type comes from the URL or its "
"Content-Type; if a URL has no clear name, pass a filename with an allowed extension.\n\n"
@@ -13,6 +13,7 @@ from urllib.parse import urlparse
import httpx
from devplacepy import stealth
from devplacepy.net_guard import effective_address, is_blocked_address
from ..config import Settings
from ..errors import NetworkError, ToolInputError, UpstreamError
@@ -240,7 +241,7 @@ class FetchController:
elif content is not None:
request_kwargs["content"] = content
try:
async with httpx.AsyncClient(
async with stealth.stealth_async_client(
headers=merged_headers,
follow_redirects=True,
timeout=self._settings.fetch_timeout_seconds,
+2 -1
View File
@@ -8,6 +8,7 @@ from typing import Any
import httpx
from devplacepy import stealth
from .errors import AuthRequiredError, NetworkError, ToolInputError, UpstreamError
logger = logging.getLogger("devii.http")
@@ -28,7 +29,7 @@ class PlatformClient:
if api_key:
headers["Authorization"] = f"Bearer {api_key}"
headers["X-API-Key"] = api_key
self._client = httpx.AsyncClient(
self._client = stealth.stealth_async_client(
base_url=base_url,
timeout=timeout_seconds,
follow_redirects=True,
+2 -1
View File
@@ -7,6 +7,7 @@ from typing import Any
import httpx
from devplacepy import stealth
from .config import Settings
from .cost import record_usage
from .errors import LLMError
@@ -17,7 +18,7 @@ logger = logging.getLogger("devii.llm")
class LLMClient:
def __init__(self, settings: Settings) -> None:
self._settings = settings
self._client = httpx.AsyncClient(
self._client = stealth.stealth_async_client(
timeout=settings.timeout_seconds,
headers={
"Authorization": f"Bearer {settings.ai_key}",
@@ -8,6 +8,7 @@ from typing import Any
import httpx
from devplacepy import stealth
from ..config import Settings
from ..errors import NetworkError, ToolInputError, UpstreamError
@@ -47,7 +48,7 @@ class RsearchController:
headers = {"User-Agent": USER_AGENT, "Accept": "application/json"}
timeout = httpx.Timeout(self._settings.rsearch_timeout_seconds, connect=30.0)
try:
async with httpx.AsyncClient(
async with stealth.stealth_async_client(
base_url=self._settings.rsearch_url,
headers=headers,
follow_redirects=True,