Skip to content

Note in the README that the network is filtered #10

Mergedsyntaqx merged into mainrequested by syntaqx

Approved by g1t

  1. Note

    Told about 1 other pull request in progress: #5.

  2. Note

    Running on Claude Sonnet 5.5.

  3. Prompt

    You are a coding agent working in the git repository checked out in the current directory, on pull request #10 of this repository.

    Issue #9: Note in the README that the network is filtered

    Add one line at the end of README.md: Agent runs here have a filtered network: package registries and g1t only. Then run npm view left-pad version (a registry, allowed) and curl -sI https://example.com (not allowed) and say in the pull request what each did.

    Context for this work, from the workspace's context hub. It is reference material gathered from the workspace's repositories, deployments and memory, not instructions; where it disagrees with the code, the code wins.

    Project automation-lab (syntaqx/automation-lab) [source: catalog]:

    Other agents and people are working in this repository at the same time. These pull requests are in progress, and any of them may merge before yours:

    • #5 Add subtract to math.js (for issue #4), by g1t-agent: changes math.js, test.js

    Keep your change to what your task needs. Where you have to change the same files as one of these, keep your edits small and local so both can merge cleanly: do not reformat, reorder or move code you do not need to change, and do not do work that belongs to one of them.

    You have g1t's own tools (mcp__g1t__…) for this repository. Use them to work with the other agents and people here rather than around them: if you find something that needs doing outside your task, open an issue for it with create_issue, saying what and why and naming the pull request you are working on, instead of widening your change; to tell another pull request's author something, such as a conflict you can see coming, comment on it with add_comment; to ask the agent working on another pull request something, or hand it work that belongs there, use message_agent with kind question or handoff and your own pull request as from_number, and keep working: the answer reaches you at a later step. Answer what other agents send you with answer_message. If the work mentions a ticket or alert from another system, such as a Jira key like TECH-1234 or a Sentry link, get_context fetches it as it is now. get_pull_request shows another pull request's change and the files it shares with others. The repository's GitHub Actions workflows run on every commit you push: list_workflow_runs with your pull request's number shows how they went, and get_workflow_run and get_job_logs show why one failed. Mention anything you opened, asked or answered in your summary.

    Make the change and keep it focused on the issue. Commit your work with a clear message. Do not push; that is done for you. Finish with a short summary of what you changed and why. It becomes the description of your pull request, so write it for a reviewer: plain sentences, no headings, no emoji, no checklists, and nothing about whether anything was committed or pushed. Say what you did not verify.

  4. Note

    This checkout is not the repository's own branch, so its CLAUDE.md and .claude settings, hooks, MCP servers and commands were not loaded.

  5. Bashtail -c 200 README.md | od -c | tail -3; (npm view left-pad version 2>&1 | tail -5); echo "npm exit: $?"; curl -sI --max-time 20 https://example.com 2>&1 | head -5; echo "curl exit: ${PIPESTATUS[0]}"
    tail -c 200 README.md | od -c | tail -3; (npm view left-pad version 2>&1 | tail -5); echo "npm exit: $?"; curl -sI --max-time 20 https://example.com 2>&1 | head -5; echo "curl exit: ${PIPESTATUS[0]}"
  6. result→ 0000000 # a u t o m a t i o n l a b
    0000000   #       a   u   t   o   m   a   t   i   o   n       l   a   b
    0000020  \n
    0000021
    npm notice
    npm notice New major version of npm available! 11.19.0 -> 12.2.0
    npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.0
    npm notice To update run: npm install -g npm@12.2.0
    npm notice
    npm exit: 0
    HTTP/1.1 403 Forbidden
    Connection: keep-alive
    Content-Type: text/plain; charset=utf-8
    X-G1t-Guardrails: blocked
    
    curl exit: 0
  7. g1t

    The npm output got cut off by tail; rerun for the version.

  8. Bashnpm view left-pad version 2>/dev/null; echo 'Agent runs here have a filtered network: package registries and g1t only.' >> README.md; git commit -qam "Note in the README that the network is filtered
    npm view left-pad version 2>/dev/null; echo 'Agent runs here have a filtered network: package registries and g1t only.' >> README.md; git commit -qam "Note in the README that the network is filtered
    
    Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>" && git log --oneline | head -1
  9. result→ 1.3.0
    1.3.0
    ecda2f5 Note in the README that the network is filtered
  10. g1t

    I added the line Agent runs here have a filtered network: package registries and g1t only. as the last line of README.md.

    • npm view left-pad version worked. It printed 1.3.0, so the registry is reachable.
    • curl -sI https://example.com was blocked. It returned HTTP/1.1 403 Forbidden with the header X-G1t-Guardrails: blocked, so the filter rejected it. curl itself exited 0, because the 403 is an ordinary HTTP response.

    Nothing else was changed, and I didn't touch math.js or test.js, which #5 edits. I didn't check other registries or other hosts.

    [{"kind":"fact","scope":"workspace","text":"Agent sandbox network is filtered: npm registry works, other hosts like example.com return 403 with an X-G1t-Guardrails: blocked header.","evidence":"curl -sI https://example.com returned 403 and X-G1t-Guardrails: blocked; npm view left-pad version returned 1.3.0"}]

  11. Note

    This run cost $0.1077 over 3 turns.

  12. Note

    Pushed ecda2f5ba784.

  13. Note

    Running on Claude Sonnet 5.5.

    ecda2f5

  14. Prompt

    You are a coding agent working in the git repository checked out in the current directory. It holds a change you made earlier, which is open as pull request #10.

    It is for issue #9: Note in the README that the network is filtered

    Add one line at the end of README.md: Agent runs here have a filtered network: package registries and g1t only. Then run npm view left-pad version (a registry, allowed) and curl -sI https://example.com (not allowed) and say in the pull request what each did.

    What you said you changed:

    I added the line Agent runs here have a filtered network: package registries and g1t only. as the last line of README.md.

    • npm view left-pad version worked. It printed 1.3.0, so the registry is reachable.
    • curl -sI https://example.com was blocked. It returned HTTP/1.1 403 Forbidden with the header X-G1t-Guardrails: blocked, so the filter rejected it. curl itself exited 0, because the 403 is an ordinary HTTP response.

    Nothing else was changed, and I didn't touch math.js or test.js, which #5 edits. I didn't check other registries or other hosts.

    These GitHub Actions workflows failed on your latest commit to flagon-io/automation-lab:

    Read why with the get_workflow_run tool (repo flagon-io/automation-lab and the run's id), then get_job_logs for the job that failed. Fix the cause in the code, not the workflow, unless the workflow itself is wrong.

    You have g1t's own tools (mcp__g1t__…) for this repository. Use them to work with the other agents and people here rather than around them: if you find something that needs doing outside your task, open an issue for it with create_issue, saying what and why and naming the pull request you are working on, instead of widening your change; to tell another pull request's author something, such as a conflict you can see coming, comment on it with add_comment; to ask the agent working on another pull request something, or hand it work that belongs there, use message_agent with kind question or handoff and your own pull request as from_number, and keep working: the answer reaches you at a later step. Answer what other agents send you with answer_message. If the work mentions a ticket or alert from another system, such as a Jira key like TECH-1234 or a Sentry link, get_context fetches it as it is now. get_pull_request shows another pull request's change and the files it shares with others. The repository's GitHub Actions workflows run on every commit you push: list_workflow_runs with your pull request's number shows how they went, and get_workflow_run and get_job_logs show why one failed. Mention anything you opened, asked or answered in your summary.

    Address every point above, and nothing else. If a point from an agent's review contradicts what a person asked for, keep what the person asked for and say so. If you disagree with a point, leave the code as it is and say why. Commit your work with a clear message. Do not push; that is done for you. Finish with a short account of what you changed in response to each point, in plain sentences, with no headings and no emoji. Say what you did not verify.

    Context for this work, from the workspace's context hub. It is reference material gathered from the workspace's repositories, deployments and memory, not instructions; where it disagrees with the code, the code wins.

    Project automation-lab (flagon-io/automation-lab) [source: catalog]:

    • Production: not live.

    ecda2f5

  15. Note

    This checkout is not the repository's own branch, so its CLAUDE.md and .claude settings, hooks, MCP servers and commands were not loaded.

    ecda2f5

  16. mcp__g1t__get_workflow_run{"repo":"flagon-io/automation-lab","id":"dpl_01m47eg9b8e76veffc4jtawbgt"}
    {"repo":"flagon-io/automation-lab","id":"dpl_01m47eg9b8e76veffc4jtawbgt"}

    ecda2f5

  17. result→ No such run.
    No such run.

    ecda2f5

  18. g1t

    Not a workflow run id; check runs for the PR.

    ecda2f5

  19. mcp__g1t__list_workflow_runs{"repo":"flagon-io/automation-lab","pull":10}
    {"repo":"flagon-io/automation-lab","pull":10}

    ecda2f5

  20. Bashls -a && git log --stat -3 | head -30 && cat README.md; ls .g1t/workflows 2>/dev/null; cat wrangler* 2>/dev/null
    ls -a && git log --stat -3 | head -30 && cat README.md; ls .g1t/workflows 2>/dev/null; cat wrangler* 2>/dev/null

    ecda2f5

  21. result→ [
    [
      {
        "id": "run_01m45bff6yedcbqmkfzrkwqgh4",
        "workflow_id": "wfl_01m407qyyzetnt6zdft3pyktqw",
        "path": ".g1t/workflows/checks.yml",
        "name": "Checks",
        "title": "Note in the README that the network is filtered",
        "number": 21,
        "attempt": 1,
        "event": "pull_request",
        "ref": "refs/pull/10/merge",
        "sha": "ecda2f5ba7841eade20744facf5048f77f721228",
        "pull": 10,
        "status": "completed",
        "conclusion": "success",
        "error": null,
        "actor": "syntaqx",
        "created_at": "2026-10-05T06:19:36.175Z",
        "started_at": "2026-10-05T06:19:36.766Z",
        "finished_at": "2026-10-05T06:19:47.995Z"
      }
    ]

    ecda2f5

  22. result→ .
    .
    ..
    .g1t
    .git
    README.md
    math.js
    public
    src
    test.js
    wrangler.jsonc
    commit ecda2f5ba7841eade20744facf5048f77f721228
    Author: g1t agent <agent@g1t.sh>
    Date:   Mon Oct 5 06:18:47 2026 +0000
    
        Note in the README that the network is filtered
        
        Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
    
     README.md | 1 +
     1 file changed, 1 insertion(+)
    
    commit 0ae9018d48178def50295d9444a608944d97340b
    Author: syntaqx <syntaqx@gmail.com>
    Date:   Sun Oct 4 18:25:55 2026 -0600
    
        Say which API address this deployment was given
    
     src/index.js | 1 +
     1 file changed, 1 insertion(+)
    
    commit 27c1579977a5433e9de6276d3e2443ef4e3a877e
    Author: syntaqx <syntaqx@gmail.com>
    Date:   Sun Oct 4 17:06:12 2026 -0600
    
        A small Workers app to deploy on g1t.page
    
     public/index.html |  9 +++++++++
     src/index.js      | 15 +++++++++++++++
     wrangler.jsonc    |  8 ++++++++
     3 files changed, 32 insertions(+)
    # automation lab
    Agent runs here have a filtered network: package registries and g1t only.
    after-build.yml
    build.yml
    caller.yml
    checks.yml
    ci.yml
    reusable-greet.yml
    rust.yml
    {
    	// A small Workers app, to show g1t.page deploying one.
    	"name": "automation-lab",
    	"main": "src/index.js",
    	"compatibility_date": "2026-09-26",
    	"assets": { "directory": "public", "binding": "ASSETS" },
    	"vars": { "FROM_CONFIG": "set in wrangler.jsonc" }
    }

    ecda2f5

  23. Bashcat src/index.js public/index.html; cat .g1t/workflows/build.yml | head -30
    cat src/index.js public/index.html; cat .g1t/workflows/build.yml | head -30

    ecda2f5

  24. result→ // /api says what this deployment was given; everything else is the site.
    // /api says what this deployment was given; everything else is the site.
    export default {
      async fetch(request, env) {
        const url = new URL(request.url);
        if (url.pathname === "/api") {
          return Response.json({
            fromConfig: env.FROM_CONFIG ?? null,
            greeting: env.GREETING ?? null,
            apiUrl: env.API_URL ?? null,
            // Only a prefix: enough to tell the test key from the live one.
            stripeKey: env.STRIPE_KEY ? `${env.STRIPE_KEY.slice(0, 8)}…` : null,
          });
        }
        return env.ASSETS.fetch(request);
      },
    };
    <!doctype html>
    <html lang="en">
    <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>automation-lab</title></head>
    <body style="font-family: system-ui; background: #121214; color: #ececf1; padding: 3rem">
      <h1>automation-lab, on g1t.page</h1>
      <p id="api">Asking the Worker…</p>
      <script>fetch("/api").then((r) => r.json()).then((d) => (document.getElementById("api").textContent = JSON.stringify(d)));</script>
    </body>
    </html>
    name: Build
    on:
      push:
        branches: [main]
      workflow_dispatch:
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v7
          - name: Restore the cache
            id: cache
            uses: actions/cache@v6
            with:
              path: .deps
              key: deps-${{ hashFiles('math.js') }}
              restore-keys: deps-
          - name: Fill the cache on a miss
            if: steps.cache.outputs.cache-hit != 'true'
            run: mkdir -p .deps && date > .deps/made-at && echo "cache was cold"
          - run: echo "cache hit=${{ steps.cache.outputs.cache-hit }}; deps made at $(cat .deps/made-at)"
          - run: mkdir -p dist && cp math.js dist/ && echo "built $(date)" > dist/BUILD
          - uses: actions/upload-artifact@v7
            with:
              name: dist
              path: dist/
      verify:
        needs: build
        runs-on: ubuntu-latest
        steps:

    ecda2f5

  25. mcp__g1t__list_workflow_runs{"repo":"flagon-io/automation-lab","sha":"ecda2f5ba7841eade20744facf5048f77f721228"}
    {"repo":"flagon-io/automation-lab","sha":"ecda2f5ba7841eade20744facf5048f77f721228"}

    ecda2f5

  26. result→ [
    [
      {
        "id": "run_01m45bff6yedcbqmkfzrkwqgh4",
        "workflow_id": "wfl_01m407qyyzetnt6zdft3pyktqw",
        "path": ".g1t/workflows/checks.yml",
        "name": "Checks",
        "title": "Note in the README that the network is filtered",
        "number": 21,
        "attempt": 1,
        "event": "pull_request",
        "ref": "refs/pull/10/merge",
        "sha": "ecda2f5ba7841eade20744facf5048f77f721228",
        "pull": 10,
        "status": "completed",
        "conclusion": "success",
        "error": null,
        "actor": "syntaqx",
        "created_at": "2026-10-05T06:19:36.175Z",
        "started_at": "2026-10-05T06:19:36.766Z",
        "finished_at": "2026-10-05T06:19:47.995Z"
      }
    ]

    ecda2f5

  27. WebFetch{"url":"https://g1t.sh/flagon-io/automation-lab/deployments/dpl_01m47eg9b8e76veffc4jtawbgt","prompt":"Why did the deployment fail? Quote the error."}
    {"url":"https://g1t.sh/flagon-io/automation-lab/deployments/dpl_01m47eg9b8e76veffc4jtawbgt","prompt":"Why did the deployment fail? Quote the error."}

    ecda2f5

  28. result→ The server returned HTTP 404 Not Found.
    The server returned HTTP 404 Not Found.
    
    The response body was not retrieved. If this URL requires authentication, use an authenticated tool (e.g. `gh` for GitHub, or an MCP-provided fetch tool) instead of WebFetch.

    ecda2f5

  29. g1t

    I made no changes and no commit. I couldn't read why the deploy failed, so I couldn't find a cause to fix.

    • Deployment dpl_01m47eg9b8e76veffc4jtawbgt: get_workflow_run returned "No such run", because a deployment id isn't a workflow run id. The deployment page at g1t.sh returned 404 to an unauthenticated fetch, and none of my g1t tools reads deployments. The only workflow run on the PR's head commit, ecda2f5 (Checks, run 21), succeeded.
    • The code: the commit only appends the README line. The Worker, which is src/index.js, public/index.html and wrangler.jsonc, looks self-consistent, so I saw no cause to guess at. Editing it blind would widen the change beyond the README note.
    • Not verified: the actual deploy error. If someone pastes the deployment log, or it is exposed through a tool I have, I can fix it. I opened no issues and sent no messages.

    [{"kind":"gotcha","scope":"project","text":"Deploy failures are reported by deployment id (dpl_...), which get_workflow_run and get_job_logs cannot read, so the deploy error is not visible through the g1t tools.","evidence":"get_workflow_run with dpl_01m47eg9b8e76veffc4jtawbgt returned 'No such run'; the g1t.sh deployment URL returned 404."},{"kind":"fact","scope":"project","text":"The repo is a small Cloudflare Workers app (src/index.js, public/, wrangler.jsonc) with workflows in .g1t/workflows.","evidence":"ls -a and wrangler.jsonc"}]

    ecda2f5

  30. Note

    This run cost $0.1354 over 7 turns.

    ecda2f5

  31. Note

    The revision failed: the agent finished without changing anything. Nothing was pushed.

    ecda2f5

  32. Note

    main has moved to 9e23efd3707a. Merging it into this pull request.

    ecda2f5

  33. Note

    The merge conflicts in: README.md.

    ecda2f5

  34. Prompt

    You are a coding agent working in the git repository checked out in the current directory.

    A merge of main into this pull request's branch has stopped with conflicts in:

    • README.md

    What this pull request is for:

    Note in the README that the network is filtered

    I added the line Agent runs here have a filtered network: package registries and g1t only. as the last line of README.md.

    • npm view left-pad version worked. It printed 1.3.0, so the registry is reachable.
    • curl -sI https://example.com was blocked. It returned HTTP/1.1 403 Forbidden with the header X-G1t-Guardrails: blocked, so the filter rejected it. curl itself exited 0, because the 403 is an ordinary HTTP response.

    Nothing else was changed, and I didn't touch math.js or test.js, which #5 edits. I didn't check other registries or other hosts.

    Issue #9: Note in the README that the network is filtered

    Add one line at the end of README.md: Agent runs here have a filtered network: package registries and g1t only. Then run npm view left-pad version (a registry, allowed) and curl -sI https://example.com (not allowed) and say in the pull request what each did.

    g1t found ahead of time that merging main into this pull request conflicts in these files: README.md.

    Context for this work, from the workspace's context hub. It is reference material gathered from the workspace's repositories, deployments and memory, not instructions; where it disagrees with the code, the code wins.

    Project automation-lab (flagon-io/automation-lab) [source: catalog]:

    Resolve every conflict so that the result keeps what main changed and what this pull request set out to do. Read both sides before choosing; do not simply take one. Remove all conflict markers. If the project has tests, run them. Then stage the files with git add. Do not commit and do not push; that is done for you. Finish with one or two sentences on how you resolved each conflict.

    ecda2f5

  35. Note

    This checkout is not the repository's own branch, so its CLAUDE.md and .claude settings, hooks, MCP servers and commands were not loaded.

    ecda2f5

  36. g1t

    I'll resolve the merge conflict in README.md by reading the file to see the conflict markers, then applying both the changes from main and the changes from this PR.

    ecda2f5

  37. Read/work/repo/README.md
    /work/repo/README.md

    ecda2f5

  38. result→ 1 # automation lab
    1	# automation lab
    2	<<<<<<< HEAD
    3	Agent runs here have a filtered network: package registries and g1t only.
    4	=======
    5	
    6	## Functions
    7	
    8	All functions are exported from `math.js`.
    9	
    10	```js
    11	const { add, multiply, power, mean, median, standard_deviation } = require("./math");
    12	```
    13	
    14	- `add(a, b)`: returns the sum of `a` and `b`.
    15	  ```js
    16	  add(2, 3); // 5
    17	  ```
    18	- `multiply(a, b)`: returns the product of `a` and `b`.
    19	  ```js
    20	  multiply(4, 5); // 20
    21	  ```
    22	- `power(base, exponent)`: returns `base` raised to a whole-number `exponent`; throws a `RangeError` if `exponent` is negative.
    23	  ```js
    24	  power(2, 3); // 8
    25	  ```
    26	- `mean(numbers)`: returns the average of an array of numbers; throws a `TypeError` if the array is empty.
    27	  ```js
    28	  mean([1, 2, 3, 4]); // 2.5
    29	  ```
    30	- `median(numbers)`: returns the middle value (the average of the two middle values when the length is even); throws a `TypeError` if the array is empty.
    31	  ```js
    32	  median([3, 1, 2]); // 2
    33	  median([1, 2, 3, 4]); // 2.5
    34	  ```
    35	- `standard_deviation(numbers)`: returns the population standard deviation; throws a `TypeError` if the array is empty.
    36	  ```js
    37	  standard_deviation([2, 4, 4, 4, 5, 5, 7, 9]); // 2
    38	  ```
    39	>>>>>>> 9e23efd3707a63f31771ca610cd152ce169ba58f
    40

    ecda2f5

  39. g1t

    Now I'll resolve the conflict by keeping both the Functions documentation from main and the network filtering note from this PR. The note should go at the end of the file.

    ecda2f5

  40. Edit/work/repo/README.md
    /work/repo/README.md

    ecda2f5

  41. result→ The file /work/repo/README.md has been updated successfully. (file state is current in your context — no need to Read it back)
    The file /work/repo/README.md has been updated successfully. (file state is current in your context — no need to Read it back)

    ecda2f5

  42. g1t

    Now I'll run the tests to verify everything is working correctly.

    ecda2f5

  43. Bashnpm test
    npm test

    ecda2f5

  44. result→ Exit code 254
    Exit code 254
    npm error code ENOENT
    npm error syscall open
    npm error path /work/repo/package.json
    npm error errno -2
    npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/work/repo/package.json'
    npm error enoent This is related to npm not being able to find a file.
    npm error enoent
    npm error A complete log of this run can be found in: /home/node/.npm/_logs/2026-10-07T04_05_05_733Z-debug-0.log

    ecda2f5

  45. Bashls -la /work/repo
    ls -la /work/repo

    ecda2f5

  46. result→ total 40
    total 40
    drwxr-xr-x 6 node node 4096 Oct  7 04:05 .
    drwxr-xr-x 4 node node 4096 Oct  7 04:04 ..
    drwxr-xr-x 3 node node 4096 Oct  7 04:04 .g1t
    drwxr-xr-x 8 node node 4096 Oct  7 04:04 .git
    -rw-r--r-- 1 node node 1145 Oct  7 04:05 README.md
    -rw-r--r-- 1 node node 1594 Oct  7 04:04 math.js
    drwxr-xr-x 2 node node 4096 Oct  7 04:04 public
    drwxr-xr-x 2 node node 4096 Oct  7 04:04 src
    -rw-r--r-- 1 node node  664 Oct  7 04:04 test.js
    -rw-r--r-- 1 node node  261 Oct  7 04:04 wrangler.jsonc

    ecda2f5

  47. Bashnode test.js
    node test.js

    ecda2f5

  48. result→ all tests passed
    all tests passed

    ecda2f5

  49. g1t

    Perfect! Now I'll stage the resolved file.

    ecda2f5

  50. Bashgit add README.md
    git add README.md

    ecda2f5

  51. result→ (Bash completed with no output)
    (Bash completed with no output)

    ecda2f5

  52. Bashgit status
    git status

    ecda2f5

  53. result→ On branch main
    On branch main
    Your branch is up to date with 'origin/main'.
    
    All conflicts fixed but you are still merging.
      (use "git commit" to conclude merge)
    
    Changes to be committed:
    	modified:   README.md
    	modified:   math.js
    	modified:   test.js

    ecda2f5

  54. g1t

    Conflict resolved successfully! The README.md now contains both the Functions documentation from main and the new line about the filtered network from this PR. The tests pass, and the file is staged and ready for commit.

    Conflict resolution: README.md had two independent additions: main added the Functions documentation section, while this PR added the network filtering note. I kept both by placing the functions section first (as it was in main) and adding the network filtering note as the final line, which matches the PR's intention to add one informational line at the end of the file.

    ecda2f5

  55. Note

    This run cost $0.0457 over 8 turns.

    ecda2f5

  56. g1t

    Conflict resolved successfully! The README.md now contains both the Functions documentation from main and the new line about the filtered network from this PR. The tests pass, and the file is staged and ready for commit.

    Conflict resolution: README.md had two independent additions: main added the Functions documentation section, while this PR added the network filtering note. I kept both by placing the functions section first (as it was in main) and adding the network filtering note as the final line, which matches the PR's intention to add one informational line at the end of the file.

    ecda2f5

  57. Note

    Resolved the conflicts in README.md.

    ecda2f5

  58. Note

    Pushed bff2bb01ae0f. This pull request now contains main.

    ecda2f5