Skip to content

GitLab Issues for Agents

SafeCall’s GitLab project holds work items created by the bug collector and manual issues. Use this page when planning or fixing a GitLab issue from Cursor.

Ariadne / Theseus program (inventory, milestones, work-item map): Ariadne and Theseus inventory, roadmap, operator actions. Do not attach those items to the Keryx public launch milestone.

Project

FieldValue
Hosthttps://gitlab.com
Pathsourcecontrollers/safecall
API basehttps://gitlab.com/api/v4
Git remote nameorigin
Remote URLgit@gitlab.com:sourcecontrollers/safecall.git

Human URLs:

  • Work item: https://gitlab.com/sourcecontrollers/safecall/-/work_items/<iid>
  • Issue: https://gitlab.com/sourcecontrollers/safecall/-/issues/<iid>

The iid is the number users mean by #35. Bug-collector issues often include server_id, local_bug_id, and a screenshot in the description.

Auth (no token in the repo)

The project is private. A working token lives only on the update host in the bug-collector env file (never commit it):

/home/thomas/bug-collector/bug-collector.env

Relevant vars: GITLAB_TOKEN, GITLAB_PROJECT_ID (usually sourcecontrollers/safecall), optional GITLAB_API_URL.

Fetch one issue

Run from a machine that can SSH to mnew.ssh. Do not print the token.

bash
IID=35   # replace

ssh -o BatchMode=yes -o ConnectTimeout=8 mnew.ssh "bash -s" <<EOF
set -euo pipefail
set -a
. /home/thomas/bug-collector/bug-collector.env
set +a
API_URL="\${GITLAB_API_URL:-https://gitlab.com/api/v4}"
API_URL="\${API_URL%/}"
ENCODED=\$(python3 -c 'import urllib.parse,os; print(urllib.parse.quote(os.environ["GITLAB_PROJECT_ID"], safe=""))')
curl -sS --header "PRIVATE-TOKEN: \$GITLAB_TOKEN" \
  "\$API_URL/projects/\$ENCODED/issues/${IID}"
EOF

Useful follow-ups:

text
GET /projects/:id/issues/:iid/notes

Screenshot paths in the description look like /uploads/<hash>/filename.png. Prefer using title, description text, and metadata JSON over downloading images unless the UI region is unclear.

Commit and close

After implementing an issue, commit with a closing keyword GitLab recognizes, then push to origin:

bash
git commit -m "$(cat <<'EOF'
Add custom sensor chart time range.

Closes #35
EOF
)"

git push origin HEAD

Repo conventions already in history: Closes #N, Fix #N, Fixes #N, Refs #N. Prefer Closes #N for completed work items and Fixes #N / Fix #N for bug fixes.

Agent checklist

  1. Resolve #N → fetch issue JSON via mnew.ssh + collector env (above).
  2. Plan from title, description, kind, and metadata (document_title, capture region, versions).
  3. Implement and validate (typecheck / tests for touched components).
  4. On user request to commit: include Closes #N (or Fixes #N) and push origin.