diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -378,7 +378,6 @@
     'DifferentialFieldParseException' => 'applications/differential/exception/DifferentialFieldParseException.php',
     'DifferentialFieldValidationException' => 'applications/differential/exception/DifferentialFieldValidationException.php',
     'DifferentialFindConduitAPIMethod' => 'applications/differential/conduit/DifferentialFindConduitAPIMethod.php',
-    'DifferentialFinishPostponedLintersConduitAPIMethod' => 'applications/differential/conduit/DifferentialFinishPostponedLintersConduitAPIMethod.php',
     'DifferentialGetAllDiffsConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetAllDiffsConduitAPIMethod.php',
     'DifferentialGetCommitMessageConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetCommitMessageConduitAPIMethod.php',
     'DifferentialGetCommitPathsConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetCommitPathsConduitAPIMethod.php',
@@ -495,7 +494,6 @@
     'DifferentialUnitStatus' => 'applications/differential/constants/DifferentialUnitStatus.php',
     'DifferentialUnitTestResult' => 'applications/differential/constants/DifferentialUnitTestResult.php',
     'DifferentialUpdateRevisionConduitAPIMethod' => 'applications/differential/conduit/DifferentialUpdateRevisionConduitAPIMethod.php',
-    'DifferentialUpdateUnitResultsConduitAPIMethod' => 'applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php',
     'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php',
     'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php',
     'DiffusionAuditorsAddAuditorsHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsAddAuditorsHeraldAction.php',
@@ -4001,7 +3999,6 @@
     'DifferentialFieldParseException' => 'Exception',
     'DifferentialFieldValidationException' => 'Exception',
     'DifferentialFindConduitAPIMethod' => 'DifferentialConduitAPIMethod',
-    'DifferentialFinishPostponedLintersConduitAPIMethod' => 'DifferentialConduitAPIMethod',
     'DifferentialGetAllDiffsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
     'DifferentialGetCommitMessageConduitAPIMethod' => 'DifferentialConduitAPIMethod',
     'DifferentialGetCommitPathsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
@@ -4138,7 +4135,6 @@
     'DifferentialUnitStatus' => 'Phobject',
     'DifferentialUnitTestResult' => 'Phobject',
     'DifferentialUpdateRevisionConduitAPIMethod' => 'DifferentialConduitAPIMethod',
-    'DifferentialUpdateUnitResultsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
     'DifferentialViewPolicyField' => 'DifferentialCoreCustomField',
     'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
     'DiffusionAuditorsAddAuditorsHeraldAction' => 'DiffusionAuditorsHeraldAction',
diff --git a/src/applications/differential/conduit/DifferentialFinishPostponedLintersConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialFinishPostponedLintersConduitAPIMethod.php
deleted file mode 100644
--- a/src/applications/differential/conduit/DifferentialFinishPostponedLintersConduitAPIMethod.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-final class DifferentialFinishPostponedLintersConduitAPIMethod
-  extends DifferentialConduitAPIMethod {
-
-  public function getAPIMethodName() {
-    return 'differential.finishpostponedlinters';
-  }
-
-  public function getMethodDescription() {
-    return pht(
-      'Update diff with new lint messages and mark postponed '.
-      'linters as finished.');
-  }
-
-  protected function defineParamTypes() {
-    return array(
-      'diffID'   => 'required diffID',
-      'linters'  => 'required dict',
-    );
-  }
-
-  protected function defineReturnType() {
-    return 'void';
-  }
-
-  protected function defineErrorTypes() {
-    return array(
-      'ERR-BAD-DIFF'   => pht('Bad diff ID.'),
-      'ERR-BAD-LINTER' => pht('No postponed linter by the given name.'),
-      'ERR-NO-LINT'    => pht('No postponed lint field available in diff.'),
-    );
-  }
-
-  protected function execute(ConduitAPIRequest $request) {
-    $diff_id = $request->getValue('diffID');
-    $linter_map = $request->getValue('linters');
-
-    $diff = id(new DifferentialDiffQuery())
-      ->setViewer($request->getUser())
-      ->withIDs(array($diff_id))
-      ->executeOne();
-    if (!$diff) {
-      throw new ConduitException('ERR-BAD-DIFF');
-    }
-
-    // Extract the finished linters and messages from the linter map.
-    $finished_linters = array_keys($linter_map);
-    $new_messages = array();
-    foreach ($linter_map as $linter => $messages) {
-      $new_messages = array_merge($new_messages, $messages);
-    }
-
-    // Load the postponed linters attached to this diff.
-    $postponed_linters_property = id(
-      new DifferentialDiffProperty())->loadOneWhere(
-        'diffID = %d AND name = %s',
-        $diff_id,
-        'arc:lint-postponed');
-    if ($postponed_linters_property) {
-      $postponed_linters = $postponed_linters_property->getData();
-    } else {
-      $postponed_linters = array();
-    }
-
-    foreach ($finished_linters as $linter) {
-      if (!in_array($linter, $postponed_linters)) {
-        throw new ConduitException('ERR-BAD-LINTER');
-      }
-    }
-
-    foreach ($postponed_linters as $idx => $linter) {
-      if (in_array($linter, $finished_linters)) {
-        unset($postponed_linters[$idx]);
-      }
-    }
-
-    // Load the lint messages currenty attached to the diff. If this
-    // diff property doesn't exist, create it.
-    $messages_property = id(new DifferentialDiffProperty())->loadOneWhere(
-      'diffID = %d AND name = %s',
-      $diff_id,
-      'arc:lint');
-    if ($messages_property) {
-      $messages = $messages_property->getData();
-    } else {
-      $messages = array();
-    }
-
-    // Add new lint messages, removing duplicates.
-    foreach ($new_messages as $new_message) {
-      if (!in_array($new_message, $messages)) {
-        $messages[] = $new_message;
-      }
-    }
-
-    // Use setdiffproperty to update the postponed linters and messages,
-    // as these will also update the lint status correctly.
-    $call = new ConduitCall(
-      'differential.setdiffproperty',
-      array(
-        'diff_id' => $diff_id,
-        'name' => 'arc:lint',
-        'data' => json_encode($messages),
-      ));
-    $call->setUser($request->getUser());
-    $call->execute();
-    $call = new ConduitCall(
-      'differential.setdiffproperty',
-      array(
-        'diff_id' => $diff_id,
-        'name' => 'arc:lint-postponed',
-        'data' => json_encode($postponed_linters),
-      ));
-    $call->setUser($request->getUser());
-    $call->execute();
-  }
-}
diff --git a/src/applications/differential/conduit/DifferentialSetDiffPropertyConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialSetDiffPropertyConduitAPIMethod.php
--- a/src/applications/differential/conduit/DifferentialSetDiffPropertyConduitAPIMethod.php
+++ b/src/applications/differential/conduit/DifferentialSetDiffPropertyConduitAPIMethod.php
@@ -29,72 +29,12 @@
     );
   }
 
-  private static function updateLintStatus($diff_id) {
-
-    $diff = id(new DifferentialDiff())->load($diff_id);
-    if (!$diff) {
-      throw new ConduitException('ERR_NOT_FOUND');
-    }
-
-    // Load the postponed linters attached to this diff.
-    $postponed_linters_property = id(
-      new DifferentialDiffProperty())->loadOneWhere(
-        'diffID = %d AND name = %s',
-        $diff_id,
-        'arc:lint-postponed');
-    if ($postponed_linters_property) {
-      $postponed_linters = $postponed_linters_property->getData();
-    } else {
-      $postponed_linters = array();
-    }
-
-    // Load the lint messages currenty attached to the diff
-    $messages_property = id(new DifferentialDiffProperty())->loadOneWhere(
-      'diffID = %d AND name = %s',
-      $diff_id,
-      'arc:lint');
-    if ($messages_property) {
-      $results = $messages_property->getData();
-    } else {
-      $results = array();
-    }
-
-    $has_error = false;
-    $has_warning = false;
-    foreach ($results as $result) {
-      if ($result['severity'] === ArcanistLintSeverity::SEVERITY_ERROR) {
-        $has_error = true;
-        break;
-      } else if ($result['severity'] ===
-                 ArcanistLintSeverity::SEVERITY_WARNING) {
-        $has_warning = true;
-      }
-    }
-
-    if ($has_error) {
-      $diff->setLintStatus(DifferentialLintStatus::LINT_FAIL);
-    } else if ($has_warning) {
-      $diff->setLintStatus(DifferentialLintStatus::LINT_WARN);
-    } else if (!empty($postponed_linters)) {
-      $diff->setLintStatus(DifferentialLintStatus::LINT_POSTPONED);
-    } else if ($diff->getLintStatus() != DifferentialLintStatus::LINT_SKIP) {
-      $diff->setLintStatus(DifferentialLintStatus::LINT_OKAY);
-    }
-    $diff->save();
-  }
-
   protected function execute(ConduitAPIRequest $request) {
     $diff_id = $request->getValue('diff_id');
     $name = $request->getValue('name');
     $data = json_decode($request->getValue('data'), true);
 
     self::updateDiffProperty($diff_id, $name, $data);
-
-    if ($name === 'arc:lint' || $name == 'arc:lint-postponed') {
-      self::updateLintStatus($diff_id);
-    }
-
-    return;
   }
 
   private static function updateDiffProperty($diff_id, $name, $data) {
diff --git a/src/applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php
deleted file mode 100644
--- a/src/applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-final class DifferentialUpdateUnitResultsConduitAPIMethod
-  extends DifferentialConduitAPIMethod {
-
-  public function getAPIMethodName() {
-    return 'differential.updateunitresults';
-  }
-
-  public function getMethodDescription() {
-    return pht('Update arc unit results for a postponed test.');
-  }
-
-  protected function defineParamTypes() {
-    return array(
-      'diff_id'   => 'required diff_id',
-      'file'      => 'required string',
-      'name'      => 'required string',
-      'link'      => 'optional string',
-      'result'    => 'required string',
-      'message'   => 'required string',
-      'coverage'  => 'optional map<string, string>',
-    );
-  }
-
-  protected function defineReturnType() {
-    return 'void';
-  }
-
-  protected function defineErrorTypes() {
-    return array(
-      'ERR_BAD_DIFF'   => pht('Bad diff ID.'),
-      'ERR_NO_RESULTS' => pht('Could not find the postponed test'),
-    );
-  }
-
-  protected function execute(ConduitAPIRequest $request) {
-    $diff_id = $request->getValue('diff_id');
-    if (!$diff_id) {
-      throw new ConduitException('ERR_BAD_DIFF');
-    }
-
-    $file = $request->getValue('file');
-    $name = $request->getValue('name');
-    $link = $request->getValue('link');
-    $message = $request->getValue('message');
-    $result = $request->getValue('result');
-    $coverage = $request->getValue('coverage', array());
-
-    $diff_property = id(new DifferentialDiffProperty())->loadOneWhere(
-      'diffID = %d AND name = %s',
-      $diff_id,
-      'arc:unit');
-
-    if (!$diff_property) {
-      throw new ConduitException('ERR_NO_RESULTS');
-    }
-
-    $diff = id(new DifferentialDiffQuery())
-      ->setViewer($request->getUser())
-      ->withIDs(array($diff_id))
-      ->executeOne();
-
-    $unit_results = $diff_property->getData();
-    $postponed_count = 0;
-    $unit_status = null;
-
-    // If the test result already exists, then update it with
-    // the new info.
-    foreach ($unit_results as &$unit_result) {
-      if ($unit_result['name'] === $name ||
-          $unit_result['name'] === $file ||
-          $unit_result['name'] === $diff->getSourcePath().$file) {
-        $unit_result['name'] = $name;
-        $unit_result['link'] = $link;
-        $unit_result['file'] = $file;
-        $unit_result['result'] = $result;
-        $unit_result['userdata'] = $message;
-        $unit_result['coverage'] = $coverage;
-        $unit_status = $result;
-        break;
-      }
-    }
-    unset($unit_result);
-
-    // If the test result doesn't exist, just add it.
-    if (!$unit_status) {
-      $unit_result = array();
-      $unit_result['file'] = $file;
-      $unit_result['name'] = $name;
-      $unit_result['link'] = $link;
-      $unit_result['result'] = $result;
-      $unit_result['userdata'] = $message;
-      $unit_result['coverage'] = $coverage;
-      $unit_status = $result;
-      $unit_results[] = $unit_result;
-    }
-    unset($unit_result);
-
-    $diff_property->setData($unit_results);
-    $diff_property->save();
-
-    // Map external unit test status to internal overall diff status
-    $status_codes =
-      array(
-        DifferentialUnitTestResult::RESULT_PASS =>
-          DifferentialUnitStatus::UNIT_OKAY,
-        DifferentialUnitTestResult::RESULT_UNSOUND =>
-          DifferentialUnitStatus::UNIT_WARN,
-        DifferentialUnitTestResult::RESULT_FAIL =>
-          DifferentialUnitStatus::UNIT_FAIL,
-        DifferentialUnitTestResult::RESULT_BROKEN =>
-          DifferentialUnitStatus::UNIT_FAIL,
-        DifferentialUnitTestResult::RESULT_SKIP =>
-          DifferentialUnitStatus::UNIT_OKAY,
-        DifferentialUnitTestResult::RESULT_POSTPONED =>
-          DifferentialUnitStatus::UNIT_POSTPONED,
-      );
-
-    // These are the relative priorities for the unit test results
-    $status_codes_priority =
-      array(
-        DifferentialUnitStatus::UNIT_OKAY => 1,
-        DifferentialUnitStatus::UNIT_WARN => 2,
-        DifferentialUnitStatus::UNIT_POSTPONED => 3,
-        DifferentialUnitStatus::UNIT_FAIL => 4,
-      );
-
-    // Walk the now-current list of status codes to find the overall diff
-    // status
-    $final_diff_status = DifferentialUnitStatus::UNIT_NONE;
-    foreach ($unit_results as $unit_result) {
-      // Convert the text result into a diff unit status value
-      $status_code = idx($status_codes,
-                         $unit_result['result'],
-                         DifferentialUnitStatus::UNIT_NONE);
-
-      // Convert the unit status into a relative value
-      $diff_status_priority = idx($status_codes_priority, $status_code, 0);
-
-      // If the relative value of this result is "more bad" than previous
-      // results, use it as the new final diff status
-      if ($diff_status_priority > idx($status_codes_priority,
-                                      $final_diff_status, 0)) {
-        $final_diff_status = $status_code;
-      }
-    }
-
-    // Update our unit test result status with the final value
-    $diff->setUnitStatus($final_diff_status);
-    $diff->save();
-  }
-
-}
diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php
--- a/src/applications/differential/controller/DifferentialRevisionViewController.php
+++ b/src/applications/differential/controller/DifferentialRevisionViewController.php
@@ -191,16 +191,6 @@
           $visible_changesets[$changeset_id] = $changesets[$changeset_id];
         }
       }
-
-      if (!empty($props['arc:lint'])) {
-        $changeset_paths = mpull($changesets, null, 'getFilename');
-        foreach ($props['arc:lint'] as $lint) {
-          $changeset = idx($changeset_paths, $lint['path']);
-          if ($changeset) {
-            $visible_changesets[$changeset->getID()] = $changeset;
-          }
-        }
-      }
     } else {
       $warning = null;
       $visible_changesets = $changesets;